k-means vs k-means ++


10

私の知る限り、k-meansは初期の中心をランダムに選択します。彼らは純粋な運に基づいているので、それらは本当にひどく選択される可能性があります。K-means ++アルゴリズムは、初期中心を均等に広げることによって、この問題を解決しようとします。

  • 2つのアルゴリズムは同じ結果を保証しますか?または、適切に選択されていない初期重心が、反復回数に関係なく、悪い結果をもたらす可能性があります。

  • 与えられたデータセットと与えられた数の望ましいクラスターがあるとしましょう。収束する限り(中心が移動しない限り)、k平均アルゴリズムを実行します。このクラスターの問題(SSEが与えられている)に対する正確な解決策はありますか、またはk平均は再実行時に時々異なる結果を生成しますか?

  • クラスタリングの問題に対する解決策が複数ある場合(与えられたデータセット、特定の数のクラスター)、K-means ++はより良い結果を保証しますか?より良い意味で私は低いSSEを意味します。

私がこれらの質問をしているのは、巨大なデータセットをクラスタリングするためのk-meansアルゴリズムを探しているからです。私はいくつかのk-means ++を見つけましたが、いくつかのCUDA実装もあります。ご存知のように、CUDAはGPUを使用しており、何百ものスレッドを並列に実行できます。(つまり、プロセス全体を本当にスピードアップできます)。しかし、これまでに見つけたCUDA実装には、k-means ++初期化がありません。


5
k-means picks the initial centers randomly。初期中心の選択は、k-meansアルゴリズム自体の一部ではありません。センターは任意に選択できます。k-meansの適切な実装は、初期中心を定義する方法(ランダム、ユーザー定義、k
極大

回答:


9

K平均法は、クラスターの中心をランダムに割り当てることから始まり、次に「より良い」ソリューションを探します。K-means ++は、ランダムに1つのクラスターセンターを割り当てて開始し、最初のセンターを指定して他のセンターを検索します。両方のアルゴリズムは、開始点として、ランダムな初期化を使用するので、そうすることができます異なる実行に異なる結果を与えます。例として、この講義を確認することができます:推論問題の例としてのクラスタリング、40分あたりにk平均実行の例がありますが、講義全体は興味深いものです。

だから、あなたの質問に答える:

  • いいえ、ランダムな初期化があるため、実行ごとに結果が異なる可能性があります(講義の例を参照)。それら同等の結果与えるはずですが、これは保証されません。また、すべての中心はk-meansでランダムに初期化されるため、k-means ++とは異なる結果が得られる可能性があります。
  • K平均法は、実行ごとに異なる結果を与える可能性があります。
  • K-手段++紙は、両方の高速であること++ k平均を表示モンテカルロシミュレーション結果を提供し、優れたパフォーマンスを提供し、その保証はありませんが、それは良いかもしれません。

あなたの問題について:どのk-means ++が中心を選択し、次に「クラシック」k-meansを開始するか。したがって、実行できることは、(1)中心を選択するアルゴリズムの一部を使用し、(2)k平均のGPU実装でそれらの中心を使用することです。この方法では、問題の少なくとも一部がGPUベースのソフトウェアで解決されるため、より高速になるはずです。


4

K-meansおよびK-means ++の開始セントロイドの表示

2つのアルゴリズムの開始重心の違いの直感的なビューを追加するには、3つの均一に生成された正方形で構成される次のおもちゃのデータセットを検討してください。

ここに画像の説明を入力してください

以下は、k-meansおよびk-means ++アルゴリズムが開始セントロイドを初期化する場所を示す2Dヒストグラムです(2000シミュレーション)。

ここに画像の説明を入力してください

明らかに、標準のk-meansは点を均一に初期化しますが、k-means ++は正方形の中心近くで初期化する傾向があります


2

多くの場合、KMeansランダム初期化はKMeans ++よりも時間がかかりませんが、結果は良くありません。ランダムな初期化により、最初の中心セットがデータセット全体に分散されないため、ローカル最適化が何度も行われます。

だから、あなたの質問に答える:

  1. いいえ、KMeans ++センターはデータ全体に分散されているため、ランダムな初期化よりもコストが低い(クラスター二乗和以内)可能性が高くなります。
  2. KMeansでのランダムな初期化であるため、初期の中心セットによって異なる結果が得られます
  3. まず第一に、KMeansは教師なし学習であるため、明確な解決策はありません。KMeansのコスト(SSE)を削減することです。KMeansは初期中心をスマートに選択します。収束するまでの反復回数が少なく、ランダムよりも良い結果が得られます
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.