4

私はsklearnでGaussian Mixtureを実行しようと懸命に努力していますが、確実に機能しないため、何かが欠けていると思います。

私の元のデータは次のようになります。

Genotype LogRatio  Strength
AB       0.392805  10.625016
AA       1.922468  10.765716
AB       0.22074   10.405445
BB       -0.059783 10.625016

3 つのコンポーネント = 3 つの遺伝子型 (AA|AB|BB) で混合ガウスを実行したいと考えています。各遺伝子型の重み、各遺伝子型の対数比の平均、および各遺伝子型の強度の平均を知っています。

wgts = [0.8,0.19,0.01]  # weight of AA,AB,BB
means = [[-0.5,9],[0.5,9],[1.5,9]] # mean(LogRatio), mean(Strenght) for AA,AB,BB 

LogRatio と Strength の列を保持し、NumPy 配列を作成します。

datas = [[  0.392805  10.625016]
         [  1.922468  10.765716]
         [  0.22074   10.405445]
         [ -0.059783   9.798655]]

次に、sklearn v0.18 の混合物から関数 GaussianMixture をテストし、sklearn v0.17 の関数 GaussianMixtureModel も試しました (まだ違いがわかりません。どちらを使用すればよいかわかりません)。

gmm = mixture.GMM(n_components=3) 
OR
gmm = mixture.GaussianMixture(n_components=3)

gmm.fit(datas)

colors = ['r' if i==0 else 'b' if i==1 else 'g' for i in gmm.predict(datas)]
ax = plt.gca()
ax.scatter(datas[:,0], datas[:,1], c=colors, alpha=0.8)
plt.show()

これは私が得たものであり、これは良い結果ですが、実行ごとに初期パラメーターが異なる方法で計算されるため、毎回変化します

ここに画像の説明を入力

gaussianMixture または GMM 関数でパラメーターを初期化したいのですが、データをフォーマットする方法がわかりません: (

4

1 に答える 1