私はクラスタを計算するためにsklearnのを使用しますが、> 1000クラスタのシルバースコープを計算する> 10.000サンプルは非常に遅いです。sklearnクラスタリング:大規模なデータセットで最適なクラスタ数を決定する最速の方法
- 最適なクラスタ数を決定する方法はありますか?
- クラスタリングアルゴリズムを変更する必要はありますか? Yesの場合、300,000以上のサンプルと多数のクラスタを持つデータセットのための最良の(そして最速の)アルゴリズムですか?
私はクラスタを計算するためにsklearnのを使用しますが、> 1000クラスタのシルバースコープを計算する> 10.000サンプルは非常に遅いです。sklearnクラスタリング:大規模なデータセットで最適なクラスタ数を決定する最速の方法
クラスタの数を見つける最も一般的な方法は、エルボー曲線法です。ただし、KMeansアルゴリズムを複数回実行してグラフをプロットする必要があります。 https://en.wikipedia.org/wiki/Determining_the_number_of_clusters_in_a_data_set wikiページには、クラスタの数を決定するいくつかの一般的な方法が記載されています。
より魅力的な指標の1つであるシルエットスコアは、O(n^2)です。つまり、スコアの計算は、k平均クラスタリングを計算するよりもはるかに高価です。
さらに、これらのスコアはヒューリスティックです。彼らはどんな手段でも「最適な」クラスタリングをもたらすことはありません。彼らはヒントをどのように選択するかについてだけ与えますが、非常に頻繁にあなたは他のkがはるかに優れていることがわかります!だからは盲目的にこれらのスコアを信用しない。
また、入力としてクラスタの数を必要としないアルゴリズムを使用することもできます。 DBSCANまたはHDBSCANは、データセットのサイズに合わせて細かく調整する必要があります。 – rth
エルボー曲線法でクラスタ数を自動的に求める方法はありますか? –
私の理解によれば、プログラムは、エルボー曲線ヒューリスティックに基づいてクラスタの数を提供することができるはずです。 –