他のアルゴリズムの代わりにk-meansを使用するのはなぜですか?


14

私はk-meansについて調査しましたが、これらは私が得たものです。k-meansは、教師なし学習法を使用して既知のクラスタリングの問題を解決する最も単純なアルゴリズムの1つです。大規模なデータセットで非常にうまく機能します。

ただし、K-Meansには次の欠点もあります。

  • 外れ値とノイズに対する強い感度
  • 非円形のクラスター形状ではうまく機能しません-クラスターの数と初期シード値を事前に指定する必要があります
  • 局所最適を渡す低い能力。

欠点はk-meansの良いところを超えているように見えるので、k-meansには素晴らしいことはありますか。

教えて下さい。


3
それはで使用されている問題の文脈のない良い方法や優れたアルゴリズムのようなものはありませんK-手段に問題があるので、このように私たちが使用k平均を行い、最適なソリューションです(;

回答:


8

より優れた機能を備えた他のクラスタリングアルゴリズムは、より高価になる傾向があります。この場合、k-meansは事前クラスタリングの優れたソリューションとなり、スペースを他のクラスタリングアルゴリズムを適用できるばらばらの小さなサブスペースに削減します。


プログラムのコストのように高価ですか?または?
パターン付きゴールドスカル

5
低速でメモリ集約型の場合よりも高価です。
マーティンオレアリー

ああなるほど。高速で堅牢で理解しやすい以外の利点はありますか?とにかく@ MartinO'Learyと@ zeferinoの回答に感謝します
パターン付きゴールドスカル

6

K-meansは最も単純です。実装して実行します。必要なことは、「k」を選択して何度も実行することだけです。

最も優れたアルゴリズム(特に優れたアルゴリズム)は、効率的に実装するのがはるかに難しく(実行時の差が100倍になる)、さらに多くのパラメーターを設定する必要があります。

さらに、ほとんどの人は高品質のクラスターを必要としません。彼らは実際に彼らのためにリモートで働くものに満足しています。加えて、彼らはより複雑なクラスターがあったときに何をすべきかを本当に知りません。K-meansは、これまでで最も単純なモデル-重心-を使用してクラスターをモデル化するもので、まさに必要なものです:重心への大量のデータ削減。


0

K-meansは、Exchange Sortアルゴリズムに似ています。理解しやすく、トピックを理解するのに役立ちますが、決して現実のものには使用しないでください。Exchange Sortの場合、配列が部分的にソートされると早期に停止する可能性があるため、Bubble Sortの方が優れています。K-meansの場合、EMアルゴリズムは同じアルゴリズムですが、K-meansの均一分布の仮定ではなく、クラスターのガウス分布を仮定します。K-meansは、すべてのクラスターに対角共分散行列がある場合のEMのエッジケースです。ガウス構造は、クラスターがデータに非常に良い方法でシュリンクラップすることを意味します。これは、あなたが質問で正しく提起する深刻な異議を回避します。また、EMはK-meansよりもそれほど高価ではありません。(Excelスプレッドシートに両方を実装できます。)しかし、本格的なクラスタリングアプリケーションの場合、

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.