K means演算法的原理 優缺點

2021-10-08 18:01:12 字數 1332 閱讀 7553

k-means方法是一種非監督學習的演算法,它解決的是聚類問題
1、演算法簡介:k-means方法是聚類中的經典演算法,資料探勘十大經典演算法之一;演算法接受引數k,然後將事先輸入的n個資料物件劃分為k個聚類以便使得所獲得的聚類滿足聚類中的物件相似度較高,而不同聚類中的物件相似度較小。

2、演算法思想:以空間中k個點為中心進行聚類,對最靠近他們的物件歸類,通過迭代的方法,逐次更新各聚類中心的值,直到得到最好的聚類結果。

3、演算法描述:

(1)適當選擇c個類的初始中心;

(2)在第k次迭代中,對任意乙個樣本,求其到c個類的各中心的距離,將該樣本歸到距離最短的那個中心所在的類(也成為簇);

(3)利用均值等方法更新該類的中心值;

(4)對於所有的c個聚類中心,如果利用(2)(3)的迭代法更新後,值保持不變,則迭代結束;否則繼續迭代。

注:對於距離函式和中心型別的某些組合,演算法總是收斂到乙個解,即k均值到達一種狀態,聚類結果和中心都不再改變。但為了避免過度迭代所導致的時間消耗,實踐中,也常用乙個較弱的條件替換掉「中心不再發生變化」這個條件。例如,使用「直到僅有1%的點改變簇」。

4、演算法舉例:

詳細內容參看:
5、優、缺點:

優點:1、該演算法時間複雜度為o(tkmn),(其中,t為迭代次數,k為簇的數目,m為記錄數,n為維數)與樣本數量線性相關,所以,對於處理大資料集合,該演算法非常高效,且伸縮性較好;

2、原理簡單,實現容易。

缺點:1、聚類中心的個數k 需要事先給定,但在實際中這個 k 值的選定是非常難以估計的,很多時候,事先並不知道給定的資料集應該分成多少個類別才最合適;

2、kmeans需要人為地確定初始聚類中心,不同的初始聚類中心可能導致完全不同的聚類結果。(可以使用k-means++演算法來解決);

3、結果不一定是全域性最優,只能保證區域性最優;

4、對雜訊和離群點敏感;

5、該方法不適於發現非凸面形狀的簇或大小差別很大的簇;

6、需樣本存在均值(限定資料種類)。

6、演算法改進

針對上述第2個缺陷,可以使用kmeans++演算法來解決。 k-means++演算法選擇初始seeds的基本思想就是:初始的聚類中心之間的相互距離要盡可能的遠。wiki上對該演算法的描述是如下:

從輸入的資料點集合中隨機選擇乙個點作為第乙個聚類中心;

對於資料集中的每乙個點x,計算它與最近聚類中心(指已選擇的聚類中心)的距離d(x);

選擇乙個新的資料點作為新的聚類中心,選擇的原則是:d(x)較大的點,被選取作為聚類中心的概率較大;

重複2和3直到k個聚類中心被選出來;

利用這k個初始的聚類中心來執行標準的k-means演算法。

K means演算法原理以及其缺點

k means是一種經典unsupervised的聚類演算法。其演算法描述如下 輸入 聚類個數 k,n個資料物件 輸出 每個資料物件所屬的聚類label 滿足方差最小 從n個資料物件中挑選出k個質心。計算n個資料物件距離不同質心的距離,並將n個資料物件劃分到與之距離最小的質心,形成新的k個聚類。重新...

演算法的優缺點 邏輯回歸演算法的優缺點

邏輯回歸演算法是最經典的幾個機器學習演算法之一,本文對它的優點,缺點進行總結。sigmoid函式 表示式如下 1.實現簡單,廣泛的應用於工業問題上 2.分類時計算量非常小,速度很快,儲存資源低 3.便利的觀測樣本概率分數 4.對邏輯回歸而言,多重共線性並不是問題,它可以結合l2正則化來解決該問題 5...

KMEANS的優缺點 密度等的指令碼

優點 k 平均演算法是解決聚類問題的一種經典演算法,演算法簡單 快速。對處理大資料集,該演算法是相對可伸縮的和高效率的,因為它的複雜度大約是o nkt 其中n是所有物件的數目,k是簇的數目,t是迭代的次數。通常k 演算法嘗試找出使平方誤差函式值最小的k個劃分。當簇是密集的 球狀或團狀的,而簇與簇之間...