2017-11-04 11 views
-1

K-means法は異方性点を扱うことができません。 DBSCANとGaussian Mixtureモデルは、scikit-learnに従ってこれを扱うことができます。私は両方のアプローチを使用しようとしましたが、彼らは私のdatasetのために働いていません。異方性点クラスタリング

db = DBSCAN(eps=0.1,min_samples=5).fit(X_train,Y_train) 
labels_train=db.labels_ 
# Number of clusters in labels, ignoring noise if present. 
n_clusters_ = len(set(labels_train)) - (1 if -1 in labels_train else 0) 
print('Estimated number of clusters: %d' % n_clusters_) 

のみ1クラスタ(クラスタの推定数:1)hereに示すように検出された

DBSCAN

私は、次のコードを使用します。

gmm = mixture.GaussianMixture(n_components=2, covariance_type='full') 
gmm.fit(X_train,Y_train) 
labels_train=gmm.predict(X_train) 
print(gmm.bic(X_train)) 

hereに示すように、2つのクラスタが識別できませんでした:次のように

ガウス混合モデル

コードがありました。

どのように2つのクラスタを検出できますか?

答えて

0

ドキュメントをお読みください。

フィット

X(X、Yなし、sample_weight =なし=):形状のアレイ又は疎(CSR)マトリックス(n_samples、n_features) [...]

を。 ..

Y:

を無視だからあなたの呼び出しは、y座標を無視します。

私たちは皆、python/sklearnを気に入らないのですが、それはあなたにも警告しないので、黙ってyを無視しますか?

Xは、x座標だけでなく、データ全体でなければなりません。

"train"と "predict"という概念はクラスタリングには意味がありません。それを使用しないでください。 fit_predictのみを使用してください。

関連する問題