matlabでkmeans関数の使い方は?

MATLABでは、kmeans関数がk-meansクラスタリングアルゴリズムを実行するために用いられます。その構文は以下のとおりです。

[idx, C] = kmeans(X, k);

Xとはサイズm×nの行列で、m個サンプルのデータ集合を表し、各サンプルにはn個の特徴があります。kとはクラスタに分割する数です。idxとはサイズm×1のベクトルで、各サンプルが属するクラスターのインデックスを表します。Cとはサイズk×nの行列で、各クラスタの中心を表します。

k-means法とは、データセットをk個のクラスタに分割する反復的なアルゴリズムです。各クラスタは重心で表されます。サンプル間の類似性を測定するためにユークリッド距離が使用され、サンプルとその所属するクラスタの重心までの距離の合計を最小化しようとします。

k-means 法を使用する手順は次のとおりです。

  1. データセットX と k 分割するクラスターの数を指定します。
  2. データセットのXとkをパラメータとしてkmeans関数に呼び出し、渡します。
  3. 関数は2つの結果、idxとCを返します。idxはベクトルで、各サンプルが属するクラスタのインデックスを表し、Cは行列で、各クラスタの中心を表します。
  4. 必要に応じて結果をさらに処理・分析できます。

以下を例に挙げます。

data = [1,2; 2,1; 4,5; 5,4; 8,9; 9,8];
k = 2;
[idx, C] = kmeans(data, k);

この例では、データセット data には 6 つのサンプルがあり、各サンプルには 2 つの特徴があります。このデータセットを 2 つのクラスタに分割します。最後に、idx には各サンプルが属するクラスタインデックスが含まれ、C には 2 つのクラスタの重心が含まれます。

bannerAds