主要内容

このペジの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。

kmeans

K-meansクラスタリング

説明

idx= kmeans (XkK-meansクラスタリングを実行してn行p列のデタ行列Xの観測をkクラスタに分割し,観測ごとにクラスタn行1列のベクトル(idxを返します。Xの行は観測に対応し,列は変数に対応します。

既定の設定では,kmeansはクラスタ中心の初期化に二乗ユクリッド距離計量とk-means++アルゴリズムを使用します。

idx= kmeans (Xk名称,值は,1以上の名称,值のペア引数により指定された追加オプションを使用しクラスタンデックスを返します。

たとえば,コサイン距離,新たな初期値を使用するクラスタリングの反復回数または並列計算の使用回数を指定します。

idxC= kmeans(___は,k個のクラスタ重心位置をk行p列の行列Cに返します。

idxCsumd= kmeans(___は,点と重心間距離のクラスタ内合計をk行1列のベクトルsumdで返します。

idxCsumdD= kmeans(___は,各点からすべての重心までの距離をn行k列の行列Dで返します。

すべて折りたたむ

k-表示クラスタリングを使用してデタをクラスタ化し,クラスタ領域をプロットします。

フィッシャのアヤメのデタセットを読み込みます。花弁の長さと幅を予測子として使用します。

负载fisheririsX = meas(:,3:4);图;情节(X (: 1) X (:, 2),“k *’“MarkerSize”5);标题“费雪虹膜数据”;包含“花瓣长度(厘米)”;ylabel“花瓣宽度(厘米)”

图中包含一个坐标轴。标题为Fisher’s Iris Data的轴包含一个类型为line的对象。

大きいクラスタは,分散がより低い領域とより高い領域に分割されているように見えます。2 .。

デタをクラスタリングします。k= 3クラスタを指定します。

rng (1);%用于重现性[idx,C] = kmeans(X,3);

idxは,Xに含まれている観測値に対応する,予測したクラスタンデックスのベクトルです。Cは,最終的な重心位置が格納される3行2列の行列です。

kmeansを使用して各重心からグリッド上の点までの距離を計算します。これを行うには,重心(Cおよびグリッド上の点をkmeansへ渡し,そのアルゴリズムの1反復を実装します。

x1 = min(X(:,1)):0.01:max(X(:,1));X = min(X(:,2)):0.01:max(X(:,2))[x1G,x2G] = meshgrid(x1,x2);XGrid = [x1G(:),x2G(:)];%在图形上定义精细网格idx2Region = kmeans(XGrid,3,“麦克斯特”,1,“开始”C);
警告:在1次迭代中未能收敛。
将网格中的每个节点分配到最近的质心

kmeansは,アルゴリズムが収束しないことを示す警告を表示します。これは,反復が1回のみ実行されることから予想できます。

クラスタの領域をプロットします。

图;gscatter (XGrid (: 1) XGrid (:, 2), idx2Region,...[0, 0.75, 0.75, 0.75, 0, 0.75, 0.75, 0.75, 0],“. .”);持有;情节(X (: 1) X (:, 2),“k *’“MarkerSize”5);标题“费雪虹膜数据”;包含“花瓣长度(厘米)”;ylabel“花瓣宽度(厘米)”;传奇(“地区1”《区域2》区域3的“数据”“位置”“东南”);持有

图中包含一个坐标轴。标题为Fisher’s Iris Data的轴包含4个类型为line的对象。这些对象表示区域1、区域2、区域3、数据。

標本デタを無作為に生成します。

rng默认的%用于重现性X = [randn(100,2)*0.75+ones(100,2);randn(100 2) * 0.5的(100 2)];图;情节(X (: 1) X (:, 2),“。”);标题“随机生成数据”

图中包含一个坐标轴。标题为random Generated Data的轴包含一个类型为line的对象。

デタ内に2のクラスタが存在するように見えます。

デタを2に分割し,5。最終出力を表示します。

Opts = statset(“显示”“最后一次”);[idx,C] = kmeans(X,2,)“距离”“cityblock”...“复制”5,“选项”、选择);
重复1,3次迭代,总距离之和= 201.533。重复2,5次迭代,总距离之和= 201.533。重复3,3次迭代,总距离之和= 201.533。重复4,3次迭代,总距离之和= 201.533。重复5,2次迭代,总距离之和= 201.533。最佳总距离= 201.533

既定では,k-意味着++を使用して複製が個別に初期化されます。

クラスタとクラスタ重心をプロットします。

图;情节(X (idx = = 1,1) X (idx = = 1、2),“r”。“MarkerSize”, 12)情节(X (idx = = 2, 1), X (idx = = 2, 2),“b”。“MarkerSize”12)情节(C (: 1), C (:, 2),“kx”...“MarkerSize”15岁的“线宽”3)传说(“集群1”《集群2》“重心”...“位置”“西北”)标题“集群分配和质心”持有

图中包含一个坐标轴。标题为Cluster Assignments和centrroids的轴包含3个line类型的对象。这些对象代表第一组,第二组,中心。

idx轮廓へ渡すことで,クラスタがどの程度適切に分離されたかを判断できます。

大きなデータセットのクラスタリングでは,特にオンライン更新(既定で設定されている)を使用すると時間がかかる場合があります。并行计算工具箱™のライセンスがある場合に並列計算のオプションを設定すると,kmeansは各クラスタリングタスク(または複製)を並列的に実行します。さらに,复制> 1である場合,並列計算により収束までの時間が短くなります。

混合ガウスモデルから大きなデタセットを無作為に生成します。

Mu = bsxfun(@times,ones(20,30),(1:20)');%高斯混合平均值Rn30 = randn(30,30);Sigma = rn30'*rn30;%对称和正定协方差Mdl = gmdistribution(Mu,Sigma);定义高斯混合分布rng (1);%用于重现性X =随机(Mdl,10000);

Mdlは,20個の成分をも30次元のgmdistributionモデルです。Xは,Mdlから生成されたデタが含まれている10000行30列の行列です。

並列計算のオプションを指定します。

流= RandStream(“mlfg6331_64”);%随机数流选项= statset(“UseParallel”,1,“UseSubstreams”,1,...“流”、流);

RandStreamの入力引数“mlfg6331_64”は,乗法ラグフィボナッチ発生器アルゴリズムを使用するよう指定します。选项は,推定を制御するためのオプションを指定するフィ。

k-表示クラスタリングを使用してデタをクラスタ化します。デタにk= 20個のクラスタがあることを指定し,反復回数を増やします。通常,目的関数には局所的最小値が含まれます。10個の複製を指定して、より低い局所的最小値の検出に役立てます。

抽搐;启动秒表计时器[idx,C,sumd,D] = kmeans(X,20,)“选项”选项,“麦克斯特”, 10000,...“显示”“最后一次”“复制”10);
使用“本地”配置文件启动并行池(parpool)…连接6个工人。重复5,72次迭代,总距离之和= 7.73161e+06。复制1,64次迭代,总距离之和= 7.72988e+06。复制3,68次迭代,总距离之和= 7.72576e+06。复制4,84次迭代,总距离之和= 7.72696e+06。复制6,82次迭代,总距离之和= 7.73006e+06。重复7,40次迭代,总距离之和= 7.73451e+06。复制2,194次迭代,总距离之和= 7.72953e+06。复制9,105次迭代,总距离之和= 7.72064e+06。 Replicate 10, 125 iterations, total sum of distances = 7.72816e+06. Replicate 8, 70 iterations, total sum of distances = 7.73188e+06. Best total sum of distances = 7.72064e+06
toc终止秒表计时器
运行时间为61.915955秒。

6のワカが利用可能であることがコマンドウィンドウに示されます。ワカの数はシステムにより異なる場合があります。コマンドウィンドウは,各複製の反復回数および最終的な目的関数値を表示します。複製9は距離の総和が最小なので,その結果が出力引数に含まれます。

kmeansは,k-表示クラスタリングを実行して,デ,タをk個のクラスタに分割します。新しいデタセットをクラスタ化するときに,kmeansを使用して,既存のデタと新しいデタが含まれる新しいクラスタを作成できます。関数kmeansはC / c++コード生成をサポートするので,学習データを受け入れてクラスター化の結果を返すコードを生成してから,コードをデバイスに展開できます。このワクフロでは学習デタを渡さなければなりませんが,サ。デバスのメモリを節約するため,kmeanspdist2をそれぞれ使用して,学習と予測を分離することができます。

kmeansを使用してmatlab®でクラスタを作成し,生成されたコドでpdist2を使用して新しいデタを既存のクラスタに割り当てます。コード生成用に,クラスターの重心位置と新しいデータセットを受け入れて最も近いクラスターのインデックスを返すエントリポイント関数を定義します。次に、エントリポ。

C/ c++コドの生成にはMATLAB®Coder™が必要です。

k-意思是クラスタリングの実行

3の分布を使用して,学習デタセットを生成します。

rng (“默认”%用于重现性X = [randn(100,2)*0.75+ones(100,2);randn(100 2) * 0.5的(100 2);randn (100 2) * 0.75);

kmeansを使用して,学習デタを3のクラスタに分割します。

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

クラスタとクラスタ重心をプロットします。

图gscatter (X (: 1), (:, 2), idx,“bgm”)举行情节(C (: 1), C (:, 2),“kx”)传说(“集群1”《集群2》“集群3”聚类质心的

图中包含一个坐标轴。坐标轴包含4个line类型的对象。这些对象表示群集1、群集2、群集3、群集中心。

既存クラスタへの新しいデタの割り当て

検定デタセットを生成します。

Xtest = [randn(10,2)*0.75+ones(10,2);randn(10, 2) * 0.5的(10,2);randn (10, 2) * 0.75);

既存のクラスタを使用して,検定デタセットを分類します。pdist2を使用して,各検定デタ点から最も近い重心を求めます。

[~,idx_test] = pdist2(C,Xtest,“欧几里得”“最小”1);

gscatterを使用して検定デタをプロットします。idx_testを使用して検定デタにラベルを付けます。

gscatter (Xtest (: 1) Xtest (:, 2), idx_test,“bgm”“哦”)传说(“集群1”《集群2》“集群3”聚类质心的...“数据分类到群集1”“数据分类到群集2”...“数据分类到第三组”

图中包含一个坐标轴。坐标轴包含7个line类型的对象。这些对象代表集群1、集群2、集群3、集群中心、分类到集群1的数据、分类到集群2的数据、分类到集群3的数据。

コドの生成

新しいデタを既存のクラスタに割り当てるcコドを生成します。C/C++ コードの生成には MATLAB® Coder™ が必要であることに注意してください。

重心位置と新しいデタを受け入れてから,pdist2を使用して最も近いクラスタを求める,findNearestCentroidという名前のエントリポ邮箱ント関数を定義します。

MATLABのアルゴリズムについてのコードを生成しようとしていることを指示するため,コンパイラ命令% # codegen(またはプラグマ)をエントリポe e eント関数のシグネチャの後に追加します。この命令を追加すると,コード生成時にエラーになる違反の診断と修正をMATLAB代码分析器が支援します。

类型findNearestCentroid显示findNearestCentroid.m的内容
function idx = findNearestCentroid(C,X) %#codegen [~,idx] = pdist2(C,X,'euclidean',' minimum ',1);找到最近的质心

メモ:このページの右上にあるボタンをクリックしてこの例をMATLAB®で開くと,MATLAB®で例のフォルダーが開きます。このフォルダには,エントリポ。

codegen(MATLAB编码器)を使用してコドを生成します。CおよびC++ は静的な型の言語なので、エントリポイント関数内のすべての変数のプロパティをコンパイル時に決定しなければなりません。findNearestCentroidの入力のデタ型と配列サズを指定するため,arg游戏オプションを使用して,特定のデータ型および配列サイズをもつ一連の値を表すMATLAB式を渡します。詳細にいては,コド生成用の可変サを参照してください。

codegenfindNearestCentroidarg游戏{C, Xtest}
代码生成成功。

codegenは,プラットフォfindNearestCentroid_mexを生成します。

生成されたコドを検証します。

myIndx = findNearestCentroid(C,Xtest);myIndex_mex = findNearestCentroid_mex(C,Xtest);verifyMEX = isequal(idx_test,myIndx,myIndex_mex)
verifyMEX =逻辑1

isequalは,すべての入力が等しいことを意味する逻辑1 (真正的を返します。この比較により、同じ以及ンデックスを関数pdist2、関数findNearestCentroid,およびmex関数が返すことを確認します。

GPU Coder™を使用して,最適化されたCUDA®コドを生成することもできます。

cfg = code .gpu config (墨西哥人的);codegen配置cfgfindNearestCentroidarg游戏{C, Xtest}

コド生成の詳細にいては,一般的なコド生成のワクフロを参照してください。GPU编码器の詳細にいては,GPU编码入門(GPU编码器)サポトされる関数(GPU编码器)を参照してください。

入力引数

すべて折りたたむ

デタ。数値行列として指定します。Xの行は観測値に対応し,列は変数に対応します。

Xが数値ベクトルの場合,kmeansはこれを向きに関係なくn行1列のデタ行列として扱います。

Xは欠損デタとして扱われ,最低1を含むXの任意の行を削除します。Xの行を削除することで標本サ邮箱ズが減少します。関数kmeansは,出力引数idxの対応する値に対してを返します。

デタ型:|

デタ内のクラスタの数。正の整数として指定します。

デタ型:|

名前と値のペアの引数

オプションの名称,值引数のコンマ区切りペアを指定します。的名字は引数名で,价值は対応する値です。的名字は引用符で囲まなければなりません。Name1, Value1,…,的家のように,複数の名前と値のペアの引数を,任意の順番で指定できます。

例:“距离”、“余弦”,“复制”,10日,“选项”,statset (UseParallel, 1)は,コサeン距離,開始値の異なる10の複製クラスタおよび並列計算の使用を指定します。

コマンドウィンドウで表示する出力レベル。“显示”と次のいずれかのオプションから構成されるコンマ区切りのペアとして指定します。

  • “最后一次”-最後の反復の結果の表示

  • “通路”-反復の結果の表示

  • “关闭”-表示しない

例:“显示”、“最后”

最小化に使用するp次元空間内の距離計量。“距离”“sqeuclidean”“cityblock”的余弦“相关”または“汉明”から構成されるコンマ区切りのペアとして指定します。

kmeansは,サポトされている距離計量ごとに異なる方法で重心クラスタを計算します。次の表は,使用可能な距離計量をまとめたものです。式では,xは観測(まりXの行),cは重心(行ベクトル)です。

距離計量 説明
“sqeuclidean”

2乗ユクリッド距離(既定の設定)。各重心は,そのクラスタの点の平均です。

d x c x c x c

“cityblock”

L1距離など,差の絶対値の総和。各重心は,そのクラスタの点の成分単位の中央値です。

d x c j 1 p | x j c j |

的余弦

1から,ベクトルとして扱われる点の間の夾角の余弦を引いた値。各重心は,そのクラスタの点を単位ユクリッド長に正規化した後の平均です。

d x c 1 x c x x c c

“相关”

1から,値の系列として扱われる点の間の標本相関を引いた値。各重心は,そのクラスターの点を中心にシフトしてゼロ平均と単位標準偏差に正規化した後の,それらの点の成分単位の平均です。

d x c 1 x x ¯ c c ¯ x x ¯ x x ¯ c c ¯ c c ¯

ここで

  • x ¯ 1 p j 1 p x j 1 p

  • c ¯ 1 p j 1 p c j 1 p

  • 1 p はp個の1から構成される行ベクトルです。

“汉明”

この尺度はバ邮箱ナリデ邮箱タのみに適しています。

これは異なるビットの比率です。各重心は,そのクラスタの点の成分単位の中央値です。

d x y 1 p j 1 p x j y j

我は邮箱ンジケ邮箱タ邮箱関数です。

例:“距离”、“cityblock”

クラスタがそのメンバである観測値をすべて失う場合に実行するアクション。“EmptyAction”と次のいずれかのオプションから構成されるコンマ区切りのペアとして指定します。

説明
“错误”

空のクラスタを誤差として処理します。

“下降”

空になったすべてのクラスタを削除します。kmeansは,CおよびD内の対応する戻り値をに設定します。

“单”

その重心から最も遠くに位置する1の点で構成される新しいクラスタを作成します(既定値)。

例:“EmptyAction”、“错误”

最大反復回数。“麦克斯特”と正の整数で構成されるコンマ区切りのペアとして指定します。

例:麦克斯特,1000年

デタ型:|

オンラ邮箱ン更新フラグ。“OnlinePhase”および“关闭”または“上”のいずれかで構成されるコンマ区切りのペアとして指定します。

OnlinePhaseの場合,kmeansはバッチ更新フェズだけでなくオンラズも実行します。オンラインフェーズは,大規模なデータセットでは時間がかかる場合がありますが,距離基準の局所的最小値になる解が保証されます。任意の1点を他のクラスタ。

例:“OnlinePhase”,“上”

近似基準を最小化する反復アルゴリズムの制御オプション。statsetにより返される“选项”と構造体配列で構成されるコンマ区切りのペアとして指定します。構造体配列のサポトされているフィルドで,反復アルゴリズムを制御するオプションを指定します。

次の表は,サポトされているフィルドをまとめています。サポトされているフィールドでは Parallel Computing Toolbox™ が必要であることに注意してください。

フィルド 説明
“流”

RandStreamオブジェクトまたはそのようなオブジェクトのcell配列。を指定しないと,kmeansには既定のストリムが使用されます。を指定する場合,以下の条件がすべて満たされている場合を除き,単一オブジェクトを使用します。

  • 開いている並列プルがある。

  • UseParallel真正的

  • UseSubstreams

この場合は,並列プズのcell配列を使用します。並列プルが開いていない場合,は単一の乱数ストリムを提供しなければなりません。

“UseParallel”
  • 真正的かつ复制> 1である場合,kmeansは各複製に対して並列的にk-意思是アルゴリズムを実装します。

  • 并行计算工具箱がインストールされていない場合,計算は逐次モードで行われます。既定の設定は(逐次計算)です。

“UseSubstreams” 再生成可能な方法で並列計算する場合に真正的に設定します。既定の設定はです。再現性のある計算を行うには,をサブストリムを許可する型,“mlfg6331_64”または“mrg32k3a”に設定します。

予測結果をより確実にするために,parpool(并行计算工具箱)を使用し,並列プルを明示的に作成してからkmeansを呼び出し“选项”,statset (UseParallel, 1)を設定します。

例:“选项”,statset (UseParallel, 1)

デタ型:结构体

新規の初期クラスタ重心位置を使用するクラスタリングの反復回数。“复制”と整数で構成されるコンマ区切りのペアとして指定します。kmeansは最低のsumdをも解を返します。

3d配列を名前と値のペアの引数“开始”の値として指定することで,“复制”を暗黙的に設定できます。

例:“复制”,5

デタ型:|

初期クラスタ重心位置(または“シド”を選択する方法。“开始”“集群”“+”“样本”“统一”,数値行列または数値配列から構成されるコンマ区切りのペアとして指定します。次の表は,シドの選択に使用可能なオプションをまとめています。

説明
“集群”

Xから10%の副標本を無作為に抽出し,副標本内の観測値の個数がkより大きい場合は副標本に対して予備クラスタリングフェズを実行します。この予備フェズは“样本”を使用して初期化されます。

無作為な10%の副標本内の観測値の個数がkより小さい場合,k個の観測値がXから無作為に選択されます。

“+”(既定の設定) クラスタ中心の初期化にk-means++アルゴリズムを実装してkシドを選択します。
“样本” k観測値をXから無作為に選択します。
“统一” k点を一様に無作為にXの範囲から選択します。ハミング距離には無効です。
数値行列 k行p列の行列の重心開始位置。开始の行はシドに対応します。开始の最初の次元からkが推測されるので,kに対して[]を渡すことができます。
数値配列 kX p X rの重心開始位置の配列。各ペジの行はシドに対応します。3番目の次元がクラスタリングルチンの複製を呼び出します。ペジjには複製jのシドのセットが含まれています。3番目次元の大きさから複製(名前と値のペアの引数.“复制”により指定される)の数が推測されます。

例:“开始”、“样本”

デタ型:字符|字符串||

出力引数

すべて折りたたむ

クラスタンデックス。数値列ベクトルとして返されます。idxにはXと同数の行があり,各行は対応する観測のクラスタ割り当てを示します。

クラスタ重心位置。数値行列として返します。Ck行p列の行列です。ここで、行 j はクラスター j の重心です。

クラスタ内での点から重心までの距離の合計。数値行ベクトルとして返されます。sumdk行1列のベクトルです。ここで要素 j はクラスター j 内の点と重心までの距離の合計です。既定の設定では、kmeansは二乗ユクリッド距離を使用します(“距离”メトリクスを参照)。

各点からそれぞれの重心までの距離。数値行列として返されます。Dはn行k列の行列です。ここで、要素 (j、m) は観測 j から重心 m までの距離です。既定の設定では、kmeansは二乗ユクリッド距離を使用します(“距离”メトリクスを参照)。

詳細

すべて折りたたむ

K-meansクラスタリング

“k-meansクラスタリング”つまり,ロイドのアルゴリズム[2]は,データを分割する反復アルゴリズムであり,重心によって定義されたkクラスターのうち1つにn個の観測値をそれぞれ割り当てます。ここで,アルゴリズムを開始する前にkを選択します。

アルゴリズムは,以下のように実行されます。

  1. K初期クラスタ中心("重心"を選択します。たとえば,観測 k を (“开始”、“样本”を使用して)無作為に選択するか,クラスタ中心の初期化(既定の設定)にk-means++アルゴリズムを使用します。

  2. すべての観測にいて各重心までの,点とクラスタ重心間の距離を計算します。

  3. 以下の2の進め方があります(OnlinePhaseにより指定)。

    • バッチの更新—各観測を最も重心の近いクラスタに割り当てる。

    • オンライン更新——再割り当てによりクラスター内合計,点とクラスター重心間の距離が減少する場合,観測を異なる重心に個別に割り当てる。

    詳細は,アルゴリズムを参照してください。

  4. 各クラスタ内の観測の平均を計算し,新規の重心位置kを取得します。

  5. クラスター割り当ての変化がなくなるか,反復回数が最大になるまで,手順2から4を繰り返します。

k-means++アルゴリズム

“k-means++アルゴリズム"は,経験則を使用してk-的意思是クラスタリングの重心シドを検出します。亚瑟および瓦西里维茨基[1]によると,k-means++はロe +ドのアルゴリズムの実行時間および最終的な解の質を改善します。

k-means++アルゴリズムはクラスタの数をkと仮定して以下のようにシドを選択します。

  1. 観測を一様に無作為にデタセットxから選択します。選択された観測値は最初の重心であり,c1で示されます。

  2. 各観測からc1までの距離を計算します。cjと観測値mの間の距離を d x c j と表します。

  3. 次の重心c2を次の確率でxから無作為に選択します。

    d 2 x c 1 j 1 n d 2 x j c 1

  4. 中心jを選択するには,以下を行います。

    1. 各観測から各重心までの距離を計算します。各観測を最も近い重心に割り当てます。

    2. M = 1,…、nおよびp=1、..., j - 1にいて,重心jを次の確率でXから無作為に選択します。

      d 2 x c p h x h C p d 2 x h c p

      ここで,cpは重心cpに最も近いすべての観測値の集合です。xはCpに属します。

      つまり,それ自体から,既に選択されたなかで最も近い中心までの距離に比例する確率で,次の中心を選択します。

  5. K個の重心が選択されるまでステップ4を繰り返します。

亚瑟と瓦西里维茨基[1]は,複数のクラスター傾向のシミュレーション分析を使用して,k - means + +はロイドのアルゴリズムよりも,より低いクラスター内の点とクラスター重心間の距離の二乗和への収束を迅速に達成することを実証しました。

アルゴリズム

  • kmeansは,2のフェズの反復アルゴリズムを使用して,すべてのkクラスタにわたって合計される点と重心間距離の総計を最小化します。

    1. 1番目のフェズでは,“バッチ更新”を使用します。つまり,各反復で,最も近いクラスターの重心に点を再割り当てするという操作をすべて同時に行ってから,クラスターの重心を再計算します。このフェズでは,局所的最小値となる解に収束されないこともあります。。これは,規模の小さなデタセットでよく発生します。バッチフェズは高速ですが,2番目のフェズの開始点となる解だけが概算される可能性があります。

    2. 2番目のフェズでは,“オンラ邮箱ン更新”を使用します。この更新では,点を個別に再割り当てし,再割り当てすることで距離の合計が減少する場合は,各再割り当ての後にクラスター重心を再計算します。このフェズでの各反復は,すべての点を経過する1。このフェズは局所的最小値に収束されます。ただし,距離の総和がより低い局所的最小値が他にある可能性もあります。一般に大域的最小値の検出は,開始点を網羅的に選択することで解決します。しかし,通常は無作為な開始点をも複製を複数使用すると,結果的に解は大域的最小値になります。

  • 复制= r > 1および开始+(既定値)の場合,k-means++アルゴリズムに従って,さまざまなシドの集合rが選択される可能性もあります。

  • 选项UseParallelオプションを有効にし,复制> 1とした場合、各ワカはシドの選択とクラスタ化を並列で行います。

参照

[1]亚瑟,大卫,塞尔吉·瓦西里维茨基。《k -means++:谨慎播种的优势》SODA ' 07:第18届离散算法ACM-SIAM年会论文集。2007,第1027-1035页。

[2] Lloyd, Stuart P. < PCM中的最小二乘量化>。《IEEE信息论汇刊》。1982年第28卷,第129-137页。

[3] Seber, g.a.f.多元观测。霍博肯,新泽西州:约翰·威利父子公司,1984。

聚类解剖与分析:理论,FORTRAN程序,例子。J. Goldschmidt译。纽约:霍尔斯特德出版社,1985年。

拡張機能

R2006aより前に導入