機器學習之聚類演算法 K Means

2021-07-06 04:12:14 字數 3690 閱讀 3262

參考:

聚類演算法可以分為:中心點方法、層次聚類方法、基於密度方法、基於網格、基於模型方法。

其中最為經典的是k-means演算法

k-means屬於中心點方法(也有叫劃分方法),演算法經典簡單。

演算法

人工選取k值,並選取k個點作為k個簇的質心

對所有樣本分別計算到k個簇的質心的距離(歐式或者曼哈頓),取最近距離的質心,並將該樣本歸於最近質心所在的簇。

更新k個簇的質心

until質心位置不再發生變化(也就是每個簇中的樣本不再發生變化)

演算法的複雜度為o(tnk),t代表迭代次數,n代表樣本個數,k代表簇個數。由此看來它的複雜度只和樣本大小線性相關,因此是一種非常有效的大資料聚類演算法。

問題

k-means存在幾個問題:1、對聚類中心的初始化比較敏感,不同的初始化帶來不同的聚類結果。2、k值需要首先人工確定(啟發式)。3、只能處理服從標準正太分布的聚類。4、k-means對於雜訊比較敏感。

如何設定k值和如何選擇初始簇的k個點可以參考

對於非標準正太分布和非均勻分布樣本集合聚類時,可以使用kernel k-means和譜聚類spectral clustering。

對於雜訊的處理,可以使用k-mediods。這是一種k-means的簡單改進,區別在於對於質心的選擇。k-means的質心是同簇下所有點的平均值,k-mediods則將簇中的某點選為質心,條件是此點到簇內其他點距離和最小。

**實驗

二分k-means聚類

kernel k-means

spectral clustering

機器學習演算法 之K means聚類

1.模型 k means演算法並沒有顯式的數學模型,演算法的目的是從資料集中得到k個中心點,每個中心點及其周圍的點形成乙個聚簇。k means是一種無監督的學習模型。k means的學習目標如下圖所示 2.策略 k mean演算法採用的損失函式是平方損失函式。每個簇的點距離中心的平方距離之和構成損失...

機器學習之K means聚類演算法

k均值演算法的計算過程非常直觀 1 從d中隨機取k個元素,作為k個簇的各自的中心。2 分別計算剩下的元素到k個簇中心的相異度,將這些元素分別劃歸到相異度最低的簇。3 根據聚類結果,重新計算k個簇各自的中心,計算方法是取簇中所有元素各自維度的算術平均數。4 將d中全部元素按照新的中心重新聚類。5 重複...

機器學習之K Means聚類演算法

python 實現k means演算法和二分k means聚類演算法 用到的資料集testset2.txt from numpy import defloaddataset filename datamat fr open filename for line in fr.readlines curl...