KMeans聚類演算法的缺陷及改進方法

2021-10-06 06:10:55 字數 1139 閱讀 4932

演算法思路

選擇k個點作為初始質心  

repeat

將每個點指派到最近的質心,形成k個簇

重新計算每個簇的質心

until 簇不發生變化或達到最大迭代次數

(1) k-means聚類演算法需要使用者事先指定聚類的個數k值.在很多時候,在對資料集進行聚類的時候,使用者起初並不清楚資料集應該分為多少類合適,對k值難以估計.

改進方法—— 安徽大學李芳的碩士**中提到了k-means演算法的k值自適應優化方法:可以通過在一開始給定乙個適合的數值給k,通過一次k-means演算法得到一次聚類中心。對於得到的聚類中心,根據得到的k個聚類的距離情況,合併距離最近的類,因此聚類中心數減小,當將其用於下次聚類時,相應的聚類數目也減小了,最終得到合適數目的聚類數。可以通過乙個評判值e來確定聚類數得到乙個合適的位置停下來,而不繼續合併聚類中心。重複上述迴圈,直至評判函式收斂為止,最終得到較優聚類數的聚類結果。

(2)對初始聚類中心敏感,選擇不同的聚類中心會產生不同的聚類結果和不同的準確率.隨機選取初始聚類中心的做法會導致演算法的不穩定性,有可能陷入區域性最優的情況.

改進方法——k-means++演算法: 假設已經選取了n個初始聚類中心(0(3)對雜訊和孤立點資料敏感,k-means演算法將簇的質心看成聚類中心加入到下一輪計算當中,因此少量的該類資料都能夠對平均值產生極大影響,導致結果的不穩定甚至錯誤.

改進方法——離群點檢測的lof演算法,通過去除離群點後再聚類,可以減少離群點和孤立點對於聚類效果的影響。

(4) 一旦集群具有複雜的幾何形狀,kmeans就不能很好地對資料進行聚類。

主要原因在於選取距離度量的方法。因為k-means演算法主要採用歐式距離函式度量資料物件之間的相似度,並且採用誤差平方和作為準則函式,通常只能發現資料物件分布較均勻的球狀簇.

改進方法:如果要處理不規則的資料,可以使用基於密度的descan聚類演算法。

K Means聚類演算法

k means聚類演算法 intergret kmeans演算法的基本思想是初始隨機給定k個簇中心,按照最鄰近原則把待分類樣本點分到各個簇。然後按平均法重新計算各個簇的質心,從而確定新的簇心。一直迭代,直到簇心的移動距離小於某個給定的值。k means聚類演算法主要分為三個步驟 1 第一步是為待聚類...

聚類演算法 K means

演算法接受引數 k 然後將事先輸入的n個資料物件劃分為 k個聚類以便使得所獲得的聚類滿足 同一聚類中的物件相似度較高 而不同聚類中的物件相似度較小。聚類相似度是利用各聚類中物件的均值所獲得乙個 中心物件 引力中心 來進行計算的。k means演算法是最為經典的基於劃分的聚類方法,是十大經典資料探勘演...

k means聚類演算法

說到聚類,得跟分類區別開來,分類是按人為給定的標準將樣本歸到某個類別中去,在機器學習中多是監督學習,也就是訓練樣本要給標籤 正確的類別資訊 而聚類是在某種規則下自動將樣本歸類,在機器學習中是無監督學習,不需要提前給樣本打標籤。k means聚類演算法,就是在某種度量方式下,將樣本自動劃分到k個類別中...