引言
前幾篇文章中,小編給大家介紹了數據挖掘的幾大任務。其中聚類分析是一種無監督的學習方法,它沒有任何先驗知識可用,主要用於進行數據探索,並給出數據描述,而且還可以作為數據預測和內容檢索等其它方面應用的起點。
代表性的算法有K均值算法,是一種古老的、最廣泛是用的聚類算法。
基本算法
核心思想:首先,選擇K個初始質心,其中K是用戶指定的參數,即所期望的類的個數。每個點指派到最近的質心,而指派到一個質心的點集為一個類。然後,根據指派到類的點,更新每個類的質心。重複指派和更新步驟,直到類不發生變化,或等價地,直到質心不發生變化。
算法描述:
選取K個初始質心(K個類);
repeat:
對每個樣本點,計算得到距其最近的質心,形成K個類;
重新計算K個類對應的質心;
until 質心不再發生變化
對於歐式空間的樣本數據,以平方誤差和SSE(sum of the squared error)作為聚類的目標函數,同時也可以衡量不同聚類結果好壞的指標:
其中,disc是歐式空間中兩個對象之間的標準歐幾里德距離,最優的聚類結果應使得SSE達到最小值。
下圖中給出了一個通過4次迭代聚類3個類的例子:
存在缺點
任何算法都有使用條件,都存在缺點。
K均值算法是局部最優的,容易受到初始質心的影響;比如在下圖中,因選擇初始質心不恰當而造成次優的聚類結果:
K值的選取也會直接影響聚類結果,最優聚類的K值應與樣本數據本身的結構信息相吻合,而這種結構信息是很難去掌握,因此選取最優K值是非常困難的。
人人都是數據分析師,關注一辰君,獲取更多有用有趣的知識
相關推薦
推薦中...