Python で k-means クラスタリングの実装に取り組んでいます。データセットの初期重心を選択する良い方法は何ですか? 例:次のデータセットがあります:
A,1,1
B,2,1
C,4,4
D,4,5
2 つの異なるクラスターを作成する必要があります。重心から始めるにはどうすればよいですか?
Python で k-means クラスタリングの実装に取り組んでいます。データセットの初期重心を選択する良い方法は何ですか? 例:次のデータセットがあります:
A,1,1
B,2,1
C,4,4
D,4,5
2 つの異なるクラスターを作成する必要があります。重心から始めるにはどうすればよいですか?
標準の初期化は単純に
他にも多くの方法 (k-means++ など) がありますが、多くの場合、このベースラインよりもはるかに優れた結果が一貫して得られるわけではありません。k-means++ などの方法はうまく機能する場合もありますが、ほとんどの場合、改善は見られません。しかし、計算には多くの余分な時間がかかります。
あなたのケースのようにデータセットが小さい場合、K- はそれ自体がランダムな異なるクラスターを選択し、重心を繰り返し計算して、重心と点の間の距離を最適化します。
ただし、データセットが大きい場合、クラスターの最初のランダム化の代わりに、シャーディングと呼ばれる単純なアプローチがあります。これは、クラスター化を最適化するために必要な反復回数を減らし、それによって時間を節約するために実行できます。
ここで詳しく説明されているように、シャーディングを適用できます