聚類之k-means

一、介紹

k-means算法以k爲參數(所指望的簇的個數),把n個對象分紅k個簇(單層劃分),用質心(數據點的平均值)定義簇的原型。使得簇內具備較高的類似度,而簇間的類似度較低。算法

經過聚類,咱們可以發現數據對象之間的關係。簇內的類似度越高,簇間的類似度越低,聚類效果越好。優化

二、過程

①隨機選擇k個點做爲初始的聚類中心。spa

②對於剩下的點,根據其與聚類中心的距離,將其納入最近的簇,造成k個簇。對象

③對每一個簇,計算全部點的均值做爲新的聚類中心。原型

④重複②、③,直到聚類中心再也不改變。數據類型

三、缺點

①可能收斂於局部最小值,在大規模數據中收斂較慢。方法

②k值須要預先給定,屬於先驗知識。數據

③對初始選取的聚類中心敏感。這會致使①。參數

④並不適合全部的數據類型,好比不能處理非球形簇。數據處理

⑤對含離羣點的數據處理時存在問題。

爲了克服k-means收斂於局部最小值的問題,能夠採用二分k-means(bisecting K-means).

四、優化方法

一、bisecting K-means

①將全部樣本當作一個簇。

②當簇小於k時,對於每一個簇i,計算總偏差,在簇i上進行2-means聚類,再計算該簇劃分爲兩個簇後的總偏差,選擇偏差最小的簇進行劃分。

相關文章
相關標籤/搜索