1

シルエットスコアを使用して自分のデータセットに最適なクラスター数を選択したいと思います。私のデータセットは、このブランドを購入した顧客の数、ブランドの売上、ブランドが各カテゴリで販売する商品の数を含む2,000以上のブランドに関する情報です。同じデータとクラスタ数で異なるシルエットスコア

私のデータセットはまれであるため、クラスタ化する前にMaxAbsScalerとTruncatedSVDを使用しました。

私が使用しているクラスタリング方法はk-meansです。私はこれに最も慣れているので(他のクラスタリング方法についてのあなたの提案に感謝します)。

クラスタ番号を80に設定してk-meansを実行すると、毎回異なるシルエットスコアが得られます。それはk-meansが毎回異なるクラスターを与えるからですか? クラスタ番号80のシルエットスコアが200未満であることがありますが、時にはそれは反対です。だから私は妥当な数のクラスタを選ぶ方法について混乱しています。

さらに、私のシルエットスコアの範囲は非常に小さく、クラスタの数を増やすと大きく変化しません。範囲は0.15から0.2です。

For n_clusters=80, The Silhouette Coefficient is 0.17329035592930178 
For n_clusters=100, The Silhouette Coefficient is 0.16970208098407866 
For n_clusters=200, The Silhouette Coefficient is 0.1961679920561574 
For n_clusters=300, The Silhouette Coefficient is 0.19367019831221857 
For n_clusters=400, The Silhouette Coefficient is 0.19818865972762675 
For n_clusters=500, The Silhouette Coefficient is 0.19551544844885604 
For n_clusters=600, The Silhouette Coefficient is 0.19611760638136203 

私はあなたの提案を大幅にいただければ幸いです。ここ

は、私はシルエットスコアを実行しているからだ結果です!前もって感謝します!

答えて

1

はい、k-meansはランダム化されているため、常に同じ結果が得られるわけではありません。

通常、これはkが良くないことを意味します。

しかしは、ぼんやりとシルエットに頼っていません。それは "最高の" kを見つけるのに十分な信頼性がありません。大抵、があるので、通常、最も良いkはありません。

データを見て、わかりやすいクラスタリングを選択してください。自動的に何か良いものが出てくるとは思わないでください。

0

私はあなたがrandom_stateパラメータを数値に設定すると、同じkに対してk-meansの実行が異なるため再現性のある結果が得られるはずですので、sklearnを使用していると思います。その番号を0,42に設定することができます。コードの実行ごとに同じ番号を保持するだけで、結果は同じになります。

関連する問題