k均值演算法的計算過程非常直觀:
1、從d中隨機取k個元素,作為k個簇的各自的中心。
2、分別計算剩下的元素到k個簇中心的相異度,將這些元素分別劃歸到相異度最低的簇。
3、根據聚類結果,重新計算k個簇各自的中心,計算方法是取簇中所有元素各自維度的算術平均數。
4、將d中全部元素按照新的中心重新聚類。
5、重複第3,4步,直到聚類結果不再變化。
6、將結果輸出。
相似度計算:
方法1:歐式距離
方法2:曼哈頓距離
方法3:閔可夫斯基距離
這裡有乙個問題,就是不同維度的屬性取值範圍不同,對於最終結果的計算結果影響有偏差,所以需要進行規格化。所謂規格化就是將各個屬性值按比例對映到相同的取值區間,這樣是為了平衡各個屬性對距離的影響。通常將各個屬性均對映到[0,1]區間
對映公式:
其中max(ai)和min(ai)表示所有元素項中第i個屬性的最大值和最小值
機器學習之聚類演算法 K Means
參考 聚類演算法可以分為 中心點方法 層次聚類方法 基於密度方法 基於網格 基於模型方法。其中最為經典的是k means演算法 k means屬於中心點方法 也有叫劃分方法 演算法經典簡單。演算法 人工選取k值,並選取k個點作為k個簇的質心 對所有樣本分別計算到k個簇的質心的距離 歐式或者曼哈頓 取...
機器學習演算法 之K means聚類
1.模型 k means演算法並沒有顯式的數學模型,演算法的目的是從資料集中得到k個中心點,每個中心點及其周圍的點形成乙個聚簇。k means是一種無監督的學習模型。k means的學習目標如下圖所示 2.策略 k mean演算法採用的損失函式是平方損失函式。每個簇的點距離中心的平方距離之和構成損失...
機器學習之K Means聚類演算法
python 實現k means演算法和二分k means聚類演算法 用到的資料集testset2.txt from numpy import defloaddataset filename datamat fr open filename for line in fr.readlines curl...