MATLAB的Kmeans函式實現聚類

2021-09-01 06:35:07 字數 875 閱讀 9967

**

使用方法:

idx=kmeans(x,k)

[idx,c]=kmeans(x,k) 

[idx,c,sumd]=kmeans(x,k) 

[idx,c,sumd,d]=kmeans(x,k) 

[…]=kmeans(…,』param1』,val1,』param2』,val2,…)

各輸入輸出引數介紹:

x :n*p的資料矩陣

k: 表示將x劃分為幾類,為整數

idx :n*1的向量,儲存的是每個點的聚類標號

c: k*p的矩陣,儲存的是k個聚類質心位置

sumd :1*k的和向量,儲存的是類間所有點與該類質心點距離之和

d :n*k的矩陣,儲存的是每個點與所有質心的距離

[…]=kmeans(…,'param1',val1,'param2',val2,…)

這其中的引數param1、param2等,主要可以設定為如下:

1.『distance』(距離測度)

『sqeuclidean』 歐式距離(預設時,採用此距離方式)

『cityblock』 絕度誤差和,又稱:l1

『cosine』 針對向量

『correlation』  針對有時序關係的值

『hamming』 只針對二進位制資料

2.『start』(初始質心位置選擇方法)

『sample』 從x中隨機選取k個質心點

『uniform』 根據x的分布範圍均勻的隨機生成k個質心

『cluster』 初始聚類階段隨機選擇10%的x的子樣本(此方法初始使用』sample』方法)

matrix 提供一k*p的矩陣,作為初始質心位置集合

3. 『replicates』(聚類重複次數)  整數

Matlab實現K means聚類函式

function label my kmeans x,k m,n size x label zeros m,1 初始化label向量 u index randperm m,k 生成k個 1,m 範圍的隨機的不重複的正整數 u x u index,初始化均值向量 while true 迭代操作 dis...

matlab實現kmeans演算法

kmeans是一種聚類演算法 無監督學習 演算法分為兩步 1.隨機選取k個聚類中心。2.計算每個樣本點離哪個聚類中心最近 距離計算 就將該樣本分為這個類。3.重新計算這k個類的聚類中心。一種簡單的計算方法為 計算每個類的平均值即為新的聚類中心。重複執行步驟2,直到聚類中心的變化小於給定閾值,或者達到...

matlab中kmeans簡單使用

idx,c,sumd,d kmeans data,3,dist sqeuclidean rep 4 等號右邊 kmeans k 均值聚類 data是你自己的輸入資料 3 是你要聚成3類 rep 4 聚類重複次數4次。因為要反覆算直到選出最好的結果,至多反覆算4次 等號左邊 idx 是你聚類的標號 c...