データセットのランダムサブサンプルを使用してK平均センターを初期化していますか?


13

特定のデータセットがある場合、そのデータセットのランダムサンプルを使用してクラスターセンターを初期化するのはどれくらい賢明でしょうか。

たとえば、が欲しいとし5 clustersます。私は取る5 random samples、と言うのsize=20%元のデータセットで。次に、これら5つのランダムサンプルのそれぞれの平均を取り、それらの平均を5つの初期クラスターセンターとして使用できますか?私はこれをどこで読んだのか分かりませんが、皆さんがアイデアについてどう思うか知りたいと思いました。


更新:このスレッドを参照してくださいK-meansクラスタリングの初期化:既存のメソッドは何ですか?さまざまな初期化方法についての一般的な議論。


11
サンプルをランダムに5つのサブサンプルに分割すると、5つの平均はほぼ一致します。そのような近い点を最初のクラスター中心にする意味は何ですか?ほとんどのK-means実装では、初期クラスター中心のデフォルト選択は反対の考えに基づいています:最も離れている5つの点を見つけて、それらを初期中心にします。
ttnphns

2
@ttnphnsこれはいい答えでしょう。

2
全体の平均を1つの点として選択し、その中心からさまざまな方向に離れた他の点を選択する方がはるかに良いと思います。
マイケルR.チャーニック

1
理にかなっています。遠く離れているこれらの5つのポイントを見つけるにはどうすればよいですか?ありがとうございました!
-JEquihua

@JEquihua、私は答えとしてコメントを投稿し、あなたが要求している詳細を追加しました。
ttnphns

回答:


16

サンプルをランダムに5つのサブサンプルに分割すると、5つの平均はほぼ一致します。そのような近接点を最初のクラスター中心にする意味は何ですか?

多くのK-means実装では、初期クラスター中心のデフォルトの選択は反対の考えに基づいています:最も遠く離れている5つの点を見つけて、それらを初期中心にします。あなたはそれらの遠く離れた点を見つける方法は何であると尋ねるかもしれませんか?SPSSのK-meansがそのために行っていることは次のとおりです。

どのテイクk個の初期センターなどのデータセットの例(ポイント)。すべての残りのケースは、次の条件によって、それらを初期センターとして置き換える能力についてチェックされています。

  • a)ケースが最も近い中心から、互いに最も近い2つの中心間の距離よりも遠い場合、ケースは、近い2つの中心を置き換えます。
  • b)ケースが最も近い中心から2番目に近い中心と、後者に最も近い中心との間の距離よりも遠い場合、ケースはそれに最も近い中心を置き換えます。

条件(a)が満たされない場合、条件(b)がチェックされます。それが満たされない場合、どちらの場合もセンターになりません。そのような実行ケースの結果として、クラウド内の最初の中心となるk個のケースを取得します。このアルゴリズムの結果は、十分に堅牢ではありますが、「任意のkケース」の最初の選択やデータセット内のケースの並べ替え順序に完全には影響されません。そのため、K-meansの場合は常にそうであるように、いくつかのランダムな開始試行が依然として歓迎されます。

k-meansの一般的な初期化方法のリストで私の答えご覧ください。ランダムなサブサンプルに分割する方法(ここで私と他の人によって批判されています)と、SPSSで使用される説明された方法もリストにあります。


1
あなたが説明したことを行ったら、どの初期化ポイントがより良いパーティションにつながるかを判断するためにどの統計を使用できますか?すべてをありがとう。
JEquihua

最初の拠点として最大限のポイントを使用した後、最終的には最高のパーティションを取得し、(ランダムな初期のセンターと比較して)「局所最適」にトラップされたばかりの機会を減少させる行う、と彼らは収束のプロセスをスピードアップし、それらを考え保証するものではありません。ケースの順序を変えて、k-meansパーティション全体を2〜5回行い、得られた最終中心を保存し、それらを平均して、1つの最終クラスター化の初期中心として入力します。このパーティションは間違いなく最高です。異なる kのパーティシオンを比較する場合を除き、実際にチェックするために特別な統計は必要ありません。
ttnphns

1
異なるkのパーティションを比較したいです。何が使えますか?良いアイデアは何ですか?私をとても助けてくれてありがとう。@ttnphns。
-JEquihua

そこに存在する偉大な多くの「内部」クラスタリングの規準を。k-meansに最も適切なものの1つは、Calinski-Harabasz(多変量フィッシャーのF)です。それまたは他のためのGoogle。
ttnphns

7

手段はあまりにも似すぎます。データセットの平均を見つけて、この平均の周りの小さな円/球に初期重心を配置することもできます。

k-meansのサウンド初期化スキームをもっと見たい場合は、k-means ++をご覧ください。彼らはk-meansをシードするための非常に賢い方法を考案しました。

  • アーサー、D。およびヴァシルヴィツキー、S。(2007)。
    k-means ++:慎重なシードの利点」。
    離散アルゴリズムに関する第18回ACM-SIAMシンポジウムの議事録

著者のスライド:http : //www.ima.umn.edu/~iwen/REU/BATS-Means.pdf


私はこれを読んで、それは非常に直感的に有利に見えますが、単に多くのランダムな初期化ポイントを取るよりも優れていることはまだ証明されていないと思います。試してみたい場合にこの簡単なコードを見つけました:kmpp <-function(X、k){n <-nrow(X)C <-numeric(k)C [1] <-sample(1:n、 1)for(i in 2:k){dm <-distmat(X、X [C、])pr <-apply(dm、1、min); pr [C] <-0 C [i] <-sample(1:n、1、prob = pr)} kmeans(X、X [C、])}
JEquihua

収束するまで反復回数を大幅に減らし、平均してより良い結果を生成することが知られています。私自身の実験では、kmeans ++が道であることを確認できます。ELKI実装を使用しています。
QUITがあります--Anony-Mousse

ELKI実装とは何ですか?どこで調べられますか?あいさつ!
-JEquihua


4

ttnphnsが彼のコメントで指摘したように、ランダムサンプルの手段を使用すると、必要なものとは逆の結果が得られます。必要なのは、互いにかなり離れているデータポイントを見つける方法です。

理想的には、すべてのポイントを反復処理し、それらの間の距離を見つけ、距離が最大である場所を特定することができます...

OPの意図を回避することではありませんが、「解決策」はk-meansアルゴリズムに組み込まれていると思います。複数の反復を実行し、以前の反復に基づいてクラスター重心を再計算します。通常、kmeansアルゴリズムを(ランダムな初期値で)数回実行し、結果を比較します。

先験的な知識、ドメインの知識を持っている場合、初期クラスター中心がどこにあるべきかを特定する優れた方法につながる可能性があります。それ以外の場合は、おそらく初期値としてランダムなデータポイントを選択してから、複数の実行と実行ごとの複数の反復を使用する問題です。


あなたが説明したことを行ったら、どの初期化ポイントがより良いパーティションにつながるかを判断するためにどの統計を使用できますか?すべてをありがとう。
JEquihua

2

k


とても理にかなっています。アマンに聞いたのと同じことを聞いてもいいですか。私が無数のランダムな初期点をとると仮定します。結果のパーティションのどれが最適であるかを判断するために何を使用できますか?ご挨拶!@gmacfarlane
JEquihua

k

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