0

ガウス分布を生成し、そこからデータをサンプリングするコードを以下に示します。

input = pd.read_csv("..\\data\\input.txt", sep=",", header=None).values
gmm = GMM(n_components=5).fit(input)
sampled = gmm.sample(input.shape[0], random_state=42)
original_label = gmm.predict(input)
generated_label = gmm.predict(sampled)
return sampled

original_label と generated_label を確認すると、各クラスターのサンプル数が異なります。

The number of elements in original_label: 
Cluster 1:0
Cluster 2:1761
Cluster 3:2024
Cluster 4:769
Cluster 5:0 

The number of elements in generated_label: 
Cluster 1:0
Cluster 2:1273
Cluster 3:739
Cluster 4:1140
Cluster 5:1402

元の入力と同じ分布で gmm からデータをサンプリングしたい。ここでは、サンプリングされたデータと元のデータのクラスターの間に大きな違いがあります。修正するのを手伝ってもらえますか?

4

1 に答える 1

0

ガウス混合モデルは、ソフトクラスタリング アプローチです。すべてのオブジェクトは、さまざまな程度で、すべてのクラスターに属しています。

ソフト クラスターの密度を合計すると、より厳密に一致するはずです。(これを確認することをお勧めします。クラスター 5 の大きな違いは、sklearn の問題を示している可能性があります)。

GMM 密度モデルと予測されたハード ラベルを満たすハード クラスタリングを生成することは、通常、クラスターの重複のために満足できません。これは、「ハード」ラベル付けが GMM の基礎となる仮定に当てはまらないことを示しています。

于 2018-01-07T10:05:43.133 に答える