【K-means算法】matlab代碼實例學習


1.

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: N*P的數據矩陣,N為數據個數,P為單個數據維度
K: 表示將X划分為幾類,為整數
Idx: N*1的向量,存儲的是每個點的聚類標號
C: K*P的矩陣,存儲的是K個聚類質心位置
sumD: 1*K的和向量,存儲的是類間所有點與該類質心點距離之和
D: N*K的矩陣,存儲的是每個點與所有質心的距離

https://blog.csdn.net/wys7541/article/details/82153844

2.
輸入:聚類的個數K,數據集,樣本距離計算依據
輸出:K個聚類

https://blog.csdn.net/sinat_38648388/article/details/83896131

 

3.

1.僅適合於數值屬性的數據。
2.對正態分布(高斯分布)數據聚類效果最佳。


方法:
1. 從D中N個對象任意選擇k個對象作為初始簇中心;
2. 根據歐氏距離,依次比較其余每個對象與各個簇中心的距離;選擇距離最近的簇,依次把N個對象划分到k個簇中;
3. 完成第一次划分后,重新計算新的簇中心即均值,然后重新划分數據對象,直到新的簇中心不再發生變化。

https://blog.csdn.net/qiu1440528444/article/details/80611942

 

4.% 輸入: data, 為一個 矩陣 M×N, 表示樣本集,其中M表示共有M個樣本, N表示每一個樣本的維度;5.% k_value, 表示聚類的類別數目;

% 輸出: output, 是一個列向量 M×1,表示每一個樣本屬於的類別編號;
https://www.cnblogs.com/yinheyi/p/6132362.html

5.

https://www.cnblogs.com/tiandsp/p/3040883.html

6
.

https://blog.csdn.net/qq_20936739/article/details/78342882

7
.

1,kmeans的k是必須已知的,也就是我必須預先知道分成幾類

 2,雖然你給定的是K類,但是我最終是有可能跑出來的類數小於初始設定的k,雖然每一個聚類中心都經過初始化,但是最終有的聚類中心可能會不包含一個點,那么這個聚類中心相當於可以省去,即分成k-1類(講道理這是一件好事,說明原來我認為需要分5類,現在程序跑出來發現4類是最好的,這就達到了處理數據的目的,但是這並不是說我k隨便給,最終結果就是最優解,很可能3類是最優,但是4類也能分,但是5類就很難分了,具體比如下面的一個例子) 。

             (后來的注釋: 但是空聚類也有處理方法,就是聚類中心替換為當前距離任意聚類中心最遠的點)

 3,數據可以是任意維度,修改的僅僅是求距離的方式。
https://blog.csdn.net/fengsigaoju/article/details/52167802


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM