matalb k-means函式使用方法(附一個很好的k-means參考部落格)
首先得說,雖然matlab提供了KMeans函式,但是matlab的KMeans聚類好慢,真的好慢!
K-means演算法是硬聚類演算法,是典型的基於原型的目標函式聚類方法的代表,它是資料點到原型的某種距離作為優化的目標函式,利用函式求極值的方法得到迭代運算的調整規則。K-means演算法以偶是距離作為相似度測度,它是求對應某一初始聚類中心向量V最優分類,使得評價指標J最小。演算法採用誤差平方和準則函式作為聚類準則函式
K-means聚類演算法採用的是將N*P的矩陣X劃分為K個類,使得類內物件之間的距離最大,而類之間的距離最小。
使用方法:
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’(聚類重複次數) 整數
這個部落格很好,忘記了就參考這個!
深入淺出K-Means演算法-CSDN.NET http://www.csdn.net/article/2012-07-03/2807073-k-means