2

weka SimpleKMeans実装では、ユーザーはオプション -s で「シード値」を指定できます。私はそれが何を意味するのか理解していません。このリンクで、weka アーキテクトの Mark Hall は、乱数を生成することになっていると述べています。

Weka の実装は、KMenas++に関する論文(ドキュメントに記載されているとおり) に従うことになっています。私がそれを理解していれば、前述の論文のセクション 2.2 の 3 ページの方程式 1b を使用してクラスターの重心点が決定され、他にソースはありません。ランダム性の。

誰が私が間違っているのか指摘してもらえますか?

4

1 に答える 1

5

k-means アルゴリズムの一般的なベスト プラクティスです (注: k-means には複数のアルゴリズムがあります。最適解を見つけることは NP 困難であると報告されているため、これらはヒューリスティックです)。異なるランダムな初期中心で複数の反復を実行します。 .

そのため、ランダム性は通常、最初の中心の選択に関係しています。K-means++ は、幸いなことにまだランダム化されている初期シードを選択する別の方法です(ランダム化されていないものもあるため、複数回実行して結果を改善しようとすることはできません) が、より良い開始状況を選択しようとします。

最初の手段以外のランダム性の別のソースを探しているのはなぜですか?

クラスタリングに Weka はお勧めしません。分類には問題ありませんが、クラスタリングやその他の教師なしメソッドのサポートはかなり制限されています。代わりに、ELKI を見てください。たとえば、彼らのk-meansパッケージは非常に網羅的です。初期手段を選択するための最大6つの異なる方法があります。ほとんどがランダム化されています。最も単純で最も一般的な初期化は、おそらくデータベースから k 個のランダムなオブジェクトから開始することです。IIRC、MacQueen は最初の k 個のオブジェクトを使用したため、バリアントはランダム化されません (最初にデータ セットをシャッフルしない限り、これはかなりの数のアルゴリズムにとって実際には良い考えです - ソートされたデータを使用しないでください!) したがって、これらのイニシャライザのほとんどには-kmeans.seed再現性のある結果を得るために、乱数発生器のシードを制御できるパラメーターです。

于 2013-05-23T09:03:52.530 に答える