1

kmeans(X,k) 構文を使用せずに、Matlab で K-means アルゴリズムを実装するにはどうすればよいですか?

実際、問題はアルゴリズムを実装していません。下の画像をご覧ください。 ここに画像の説明を入力

http://en.wikipedia.org/wiki/Kmeansなど、ほとんどのサイトから提供されているアルゴリズムを実装しました

1. Give initial values to m1 .. mk
2. Assignment with closest mean
3. Update

X の 4 つの観測値 (200 サンプル) を設定しましたが、これらの 4 つの観測値が 1 つのクラスターからのものであることは既にわかっていました。したがって、アルゴリズムによれば、表示された画像の上記のクラスタリングは説明可能ですが、そうではありません。4つの初期値がランダムに選択されるべきではないと思います。

http://people.revoledu.com/kardi/tutorial/kMean/matlab_kMeans.htmなどの他のソース コードも実行します。同じ結果が導き出されます。http://www.4shared.com/get/IfwUEUBD/Observation.htmlから私の観察結果をダウンロードして、結果を自分で確認できます。

4

2 に答える 2

3

独自の k-means を実装したい場合、または (何らかの理由で) MATLAB k-means 構文を使用したくない場合は、いくつかの方法があります。

  1. 論文「効率的な k-Means クラスタリング アルゴリズム: 分析と実装」を読み、他のリソースも読み、独自のコードを記述します。

  2. コードで使用できるように、他の無料の実装が見つかるまでインターネットを検索してください。

次のリンクを参照してください。

http://people.revoledu.com/kardi/tutorial/kMean/index.html

于 2011-07-18T18:17:03.920 に答える
0

「kmeans(X,k) 構文を使用しない」とは、事前にクラスター数 k を指定しないということですか? アルゴリズムは事前にクラスターの数を知ることに依存しているため、これは不可能です。クラスターの数を事前に知らずにクラスター化を本当に実行したい場合は、DBSCAN アルゴリズムなどの別のアルゴリズムを調べます。

K-means アルゴリズムを既にソース コードを使用して実装したい場合は、VLFeatで確実な実装を確認してください。ただし、構文は正確に kmeans(X,k) です。

于 2011-07-18T18:10:24.313 に答える