K means和ISODATA 演算法 原理與實現

2021-10-08 05:25:52 字數 1489 閱讀 3239

k-means演算法

原理:對於給定的樣本集,按照樣本之間的距離大小,將樣本集劃分為k個簇。讓簇內的點盡量緊密的連在一起,而讓簇間的距離盡量的大。

如果用資料表示式表示,假設簇劃分為(c1,c2,…ck),則我們的目標是最小化平方誤差e:

其中μi是簇ci的均值向量,有時也稱為質心,表示式為:

一般步驟:

1.初始化。輸入基因表達矩陣作為物件集x,輸入指定聚類類數n,並在x中隨機選取n個物件作為初始聚類中心。設定迭代中止條件,比如最大迴圈次數或者聚類中心收斂誤差容限。

2.進行迭代。根據相似度準則將資料物件分配到最接近的聚類中心,從而形成一類。初始化隸屬度矩陣。

3.更新聚類中心。然後以每一類的平均向量作為新的聚類中心,重新分配資料物件。

4.反覆執行第二步和第三步直至滿足中止條件。

matlab函式中的kmeans

使用方法:

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: np的資料矩陣,n為資料個數,p為單個資料維度

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

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

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

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

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

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

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

1 . 『distance』(距離測度)

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

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

『cosine』 針對向量

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

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

強算KMeans聚類演算法演示器

這些天做c 實驗以及這個kmeans演算法演示器,學了一下opengl,感覺有待加強。point 結構體定義及實現 結構體重載了2個運算子 1.推斷兩個point的座標值是否相等 2.用於顯示 以友元函式的方式過載 ifndef point h define point h include incl...

6 什麼是K 均值聚類 K Means 算

傳統的聚類分析計算方法主要有如下幾種 劃分方法 層次方法 基於密度的方法 基於網格的方法 基於模型的方法等。其中k means演算法是劃分方法中的乙個經典的演算法。類 指的是具有相似性的集合,聚類是指將資料集劃分為若干類,使得各個類之內的資料最為相似,而各個類之間的資料相似度差別盡可能的大。對資料集...

KNN和K means深入理解

目標 1.knn 英文 2.knn的計算步驟 3.k means英文 4.k means計算步驟 1.knn knn,k nearestneighbor,k鄰近演算法 2.knn的計算步驟 1 算距離 給定測試物件,計算它與訓練集中的每個物件的距離 2 找鄰居 圈定距離最近的k個訓練物件,作為測試物...