1. 程式人生 > >matalb k-means函式使用方法(附一個很好的k-means參考部落格)

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