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個訓練物件,作為測試物...