數據挖掘十大經典算法之K均值算法

數據挖掘 歐幾里得 盤點 科技 一辰的遊樂場 2017-05-11

引言

前幾篇文章中,小編給大家介紹了數據挖掘的幾大任務。其中聚類分析是一種無監督的學習方法,它沒有任何先驗知識可用,主要用於進行數據探索,並給出數據描述,而且還可以作為數據預測和內容檢索等其它方面應用的起點。

代表性的算法有K均值算法,是一種古老的、最廣泛是用的聚類算法。

基本算法

核心思想:首先,選擇K個初始質心,其中K是用戶指定的參數,即所期望的類的個數。每個點指派到最近的質心,而指派到一個質心的點集為一個類。然後,根據指派到類的點,更新每個類的質心。重複指派和更新步驟,直到類不發生變化,或等價地,直到質心不發生變化。

算法描述:

選取K個初始質心(K個類);

repeat:

  • 對每個樣本點,計算得到距其最近的質心,形成K個類;

  • 重新計算K個類對應的質心;

until 質心不再發生變化

對於歐式空間的樣本數據,以平方誤差和SSE(sum of the squared error)作為聚類的目標函數,同時也可以衡量不同聚類結果好壞的指標:

數據挖掘十大經典算法之K均值算法

其中,disc是歐式空間中兩個對象之間的標準歐幾里德距離,最優的聚類結果應使得SSE達到最小值。

下圖中給出了一個通過4次迭代聚類3個類的例子:

數據挖掘十大經典算法之K均值算法

找出樣本數據中的3個類

存在缺點

任何算法都有使用條件,都存在缺點。

  • K均值算法是局部最優的,容易受到初始質心的影響;比如在下圖中,因選擇初始質心不恰當而造成次優的聚類結果:

數據挖掘十大經典算法之K均值算法

初始質心不恰當而造成次優的聚類結果

  • K值的選取也會直接影響聚類結果,最優聚類的K值應與樣本數據本身的結構信息相吻合,而這種結構信息是很難去掌握,因此選取最優K值是非常困難的。


人人都是數據分析師,關注一辰君,獲取更多有用有趣的知識

相關推薦

推薦中...