K-means:実際の状況での反復回数は?


10

私はデータマイニングやビッグデータの業界での経験がないので、いくつかの経験を共有してほしいと思います。

人々は実際に本当に大きなデータセットでk-means、PAM、CLARAなどを実行していますか?または、ランダムにサンプルをランダムに選択しますか?データセットのサンプルを取得するだけの場合、データセットが正常に分散されていなければ、結果は信頼できますか?

これらのアルゴリズムを実行する実際の状況では、収束が発生するまでに通常何回の反復が必要かを知ることができますか?または、反復の数は常にデータサイズとともに増加しますか?

収束する前に反復アルゴリズムを終了するアプローチを開発しようと考えていますが、結果はまだ許容範囲なので、これを求めています。計算のコストと時間を節約できるように、反復数が1,000を超える場合は、試してみる価値があると思います。どう思いますか?


number of iterations always grow with the data size必ずしも。
ttnphns 2017

K平均法で反復を停止するためのさまざまな基準が存在します。興味深いことに、反復回数を固定値(たとえば、10または20)に設定することは、合理的な方法の1つです。K-meansは高速な方法に特化しています。そのため、収束のたびに収束基準をチェックする場合、その基準は計算が簡単/高速でなければなりません。
ttnphns 2017

1
実行される反復の最大数を決定する「科学的な」方法はありますか?
foo

あなたの最後のコメントは良い質問です。正直、わかりません。多分他の人が答えます。
ttnphns 2017

回答:


6
  1. K-meansは安いです。繰り返し実行できます。

  2. 悪いアルゴリズム(標準のアルゴリズム)と良いアルゴリズムがあります。優れたアルゴリズムの場合、後の反復のコストは多くの場合、最初の反復の1%よりはるかに低くなります。

  3. 本当に遅い実装があります。それらを使用しないでください。

  4. 「ビッグ」データのK平均は存在しません。それは低次元のベクトルデータでのみ機能するためです。このようなデータを備えた最新のサーバーのメモリを超えることはありません。はい、より大きなデータが存在します-しかし、Twitterの1か月のデータでk-meansを使用することはできません。

適切な実装により、最新のサーバーでは、k-meansが依然として有用な結果を提供する最大のデータセットを見つけることができ、収束までの計算に1分もかかりません。では、なぜイタレーションの制限について考える必要があるのでしょうか。


1
同意します。この論文(ランク付けされた検索によるスケーラブルなK平均)では、著者らは、テストされた高次元のデータセットであっても、すべての実際的な状況で20〜50回の反復後に収束することを述べました。K-means以外に、収束するまでに膨大な数の反復を必要とするアルゴリズムを知っていますか?
foo

SVMをトレーニングしているのでしょうか?私はそれが反復的であり、サポートベクトルの最良の(そして予測はこれに依存するため、最小の)セットを見つけることを試みることを信じています。
QUITあり--Anony-Mousse 2017年

高次元のデータセットでk平均を実行する明白な解決策は、最初にPCAまたは他の次元削減方法を実行してから、k平均を実行することです
nico
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.