2016-10-22 6 views
2

データセット(x)の3つのコンポーネントを使用してEMクラスタリングを行っています。つまり、15個の機能を持つデータフレームだけです。EMクラスタリングアルゴリズムで追加されるラベル

from sklearn import mixture 
import pandas as pd 

x=pd.read_csv('tr.csv', sep=';') 
em = mixture.GMM(n_components=3) 
em.fit(x) 

それから私は、クラスタのための私のデータフレーム内に追加の列を作成し、(例えば、k平均でlabels_を使用してのようなアプローチ)各変数のために、各クラスタのラベルにに追加します。しかし、私が持っている最高の重みであり、それは非常に正確ではないようだ:それは私にエラーを与える

x['CLUSTER'] = pd.Series(em.weights_, index=x.index).astype(str) 

(あなたのデータで100000行があるようですが、あなただけの3を追加してみてください)。

どのようにしてEMアルゴリズムのクラスターのラベルを使用することができますか?最初のdfの各変数の列にはどのように挿入できますか?

ありがとうございます!

答えて

2

「ラベル」を取得するには、.predict(x)ではなく、.weights,.weightsというラベルを付ける必要があります(点のラベルではなく)!

x['CLUSTER'] = em.predict(x) 
関連する問題