k-means クラスタリング
は k-means クラスタリングを実行して n 行 p 列のデータ行列 idx
= kmeans(X
,k
)X
の観測を k
クラスターに分割し、観測ごとにクラスター インデックスを含む n 行 1 列のベクトル (idx
) を返します。X
の行は観測に対応し、列は変数に対応します。
既定の設定では、kmeans
はクラスター中心の初期化に二乗ユークリッド距離計量と k-means++ アルゴリズムを使用します。
は、1 つ以上の idx
= kmeans(X
,k
,Name,Value
)Name,Value
のペア引数により指定された追加オプションを使用しクラスター インデックスを返します。
たとえば、コサイン距離、新たな初期値を使用するクラスタリングの反復回数または並列計算の使用回数を指定します。
kmeans
は、2 つのフェーズの反復アルゴリズムを使用して、すべての k
クラスターにわたって合計される点と重心間距離の総計を最小化します。
1 番目のフェーズでは、"バッチ更新" を使用します。つまり、各反復で、最も近いクラスターの重心に点を再割り当てするという操作をすべて同時に行ってから、クラスターの重心を再計算します。このフェーズでは、局所的最小値となる解に収束されないこともあります。つまり、1 つの点を他のクラスターに移動するデータ分割がと距離の総和を増大させます。これは、規模の小さなデータセットでよく発生します。バッチ フェーズは高速ですが、2 番目のフェーズの開始点となる解だけが概算される可能性があります。
2 番目のフェーズでは、"オンライン更新" を使用します。この更新では、点を個別に再割り当てし、再割り当てすることで距離の合計が減少する場合は、各再割り当ての後にクラスター重心を再計算します。このフェーズでの各反復は、すべての点を経過する 1 つの引き渡しで構成されます。このフェーズは局所的最小値に収束されます。ただし、距離の総和がより低い局所的最小値が他にある可能性もあります。一般に大域的最小値の検出は、開始点を網羅的に選択することで解決します。しかし、通常は無作為な開始点をもつ複製を複数使用すると、結果的に解は大域的最小値になります。
Replicates
= r > 1 および Start
が plus
(既定値) の場合、k-means++ アルゴリズムに従って、さまざまなシードの集合 r が選択される可能性もあります。
Options
の UseParallel
オプションを有効にし、Replicates
> 1 とした場合、各ワーカーはシードの選択とクラスター化を並列で行います。
[1] Arthur, David, and Sergi Vassilvitskii. “K-means++: The Advantages of Careful Seeding.” SODA ‘07: Proceedings of the Eighteenth Annual ACM-SIAM Symposium on Discrete Algorithms. 2007, pp. 1027–1035.
[2] Lloyd, Stuart P. “Least Squares Quantization in PCM.” IEEE Transactions on Information Theory. Vol. 28, 1982, pp. 129–137.
[3] Seber, G. A. F. Multivariate Observations. Hoboken, NJ: John Wiley & Sons, Inc., 1984.
[4] Spath, H. Cluster Dissection and Analysis: Theory, FORTRAN Programs, Examples. Translated by J. Goldschmidt. New York: Halsted Press, 1985.
clusterdata
| gmdistribution
| kmedoids
| linkage
| silhouette
| statset
| parpool
(Parallel Computing Toolbox)