機器學習 利用K 均值聚類演算法對未標註資料分組

2022-07-26 20:54:13 字數 883 閱讀 5299

聚類是一種無監督的學習,它將相似的物件歸到同乙個簇中。有點像全自動分類。聚類方法幾乎可以應用於所有物件,簇內的物件越相似,聚類的效果越好。聚類分析試圖將相似物件歸入同一簇,將不相似物件歸到不同簇。相似這一概念取決於所選的相似度計算方法。

優點:易於實現。

缺點:可能收斂到區域性最小值,在大規模資料集上收斂較慢。

適用於:數值型資料。

k-均值是發現給定資料集的k個簇的演算法。簇的個數k是使用者給定的,每乙個簇通過其質心,即簇的所有點的中心來描述。

工作流程:首先,隨機確定k個初始點作為質心。然後將資料集中的每個點分配到乙個簇中,具體來講,為每個點找距離最近的質心,並將其分配給該質心所對應的簇。這一步完成之後,每個簇的質心更新為該簇所有點的質心。

計算質心——分配——重新計算,反覆迴圈,直到所有資料點的簇分配結果不再改變。

k-均值演算法收斂但是聚類效果較差的原因是:收斂到了區域性最小值,而非全域性最小值。

一種用於度量聚類效果的指標是sse(誤差平方和)。sse越小,表示資料點越接近它們的質心,聚類效果也越好。

增加簇的數目肯定可以降低sse值,但是這違背了聚類目標(在保持簇數目不變的情況下提高簇的質量)。

另一種方法是將具有最大sse值得簇劃分為兩個簇。在這些點上再進行k-均值演算法。

為了保持簇總數不變,可將某兩個簇合併:合併最近的質心,或者合併兩個使得sse增幅最小的質心。

為克服k-均值演算法收斂於區域性最小解的問題,提出二分k-均值演算法。

首先,將所有點作為乙個簇,然後將該簇一分為二。之後,選擇其中乙個簇繼續劃分。選擇哪乙個簇取決於對其劃分是否可以最大程度降低sse值。上述基於sse劃分過程不斷重複,直到得到使用者指定的簇數目為止。(另一種是選擇sse最大的簇進行劃分。)

利用K 均值聚類演算法對未標註資料分組

kmean.py usr bin python coding utf 8 coding utf 8 from numpy import 匯入資料 defloaddataset filename datamat fr open filename for line in fr.readlines cur...

機器學習實戰 K均值聚類

1.概述 聚類是一種無監督學習,它將相似的物件歸到同乙個簇中。聚類方法幾乎可以應用於所有物件,簇內的物件越相似,聚類的效果越好。k 均值聚類之所以稱為是因為它可以發現k個不同的簇,且每個簇的中心採用簇中所含值的均值計算而成。2.簇識別 cluster identification 簇識別給出聚類結果...

k均值聚類演算法

輸入 簇的數目k和包含n個物件的資料庫。輸出 k個簇,使平方誤差準則最小。演算法步驟 1.為每個聚類確定乙個初始聚類中心,這樣就有k 個初始聚類中心。2.將樣本集中的樣本按照最小距離原則分配到最鄰近聚類 3.使用每個聚類中的樣本均值作為新的聚類中心。4.重複步驟2.3直到聚類中心不再變化。5.結束,...