機器學習筆記 k means演算法

2021-10-04 20:12:51 字數 988 閱讀 2515

k-means是一種無監督的聚類演算法,也就是不給標籤,演算法自動來進行分類,最終分成k個簇。

輸入:k(簇的個數),訓練集(無標籤的樣本集合)

輸出:k個簇(k應該比樣本數量小)

1、隨機初始化k個均值向量(代表k個簇的中心),可以隨機選取k個訓練樣本作為初始均值向量。

2、開始迴圈:

1)對每個樣本進行遍歷,對於某乙個樣本x

ix_i

xi​,分別求出到k個均值向量的距離,看離誰最近,就劃入那個簇中

2)然後重新計算每個簇的均值向量,得到新的簇中心,重複迴圈

3、直至簇不再發生變化

使得j最小。c

ic^i

ci表示第i

ii個樣本所屬簇的編號,μ

i\mu_i

μi​表示第i

ii個簇的均值向量(簇中心)。

因此j就是求m個樣本離他們各自所屬簇的均值向量的距離,的和的平均值。

其實一種,演算法迴圈的第一步就是在minj,第二步就是在移動簇中心。

對於一開始的隨機初始化均值向量,可以多次執行,這樣就能避免陷入區域性最優。

這裡迴圈100次。最後在100次中,選擇代價最小的。

肘部法則:

隨著k的增大,相應cost的變化曲線,這樣可以得出在「肘部」,也就是k=3時,cost下降最快,之後的cost變化不明顯,就取k=3。

但是也有缺點,

曲線太平滑,找不到哪個是「肘部」。

或者就是根據經驗而定,例如t恤尺寸,看看是3類(s,m,l)還是5類(xs,s,m,l,xl)。

機器學習 K Means演算法

簡介 又叫k 均值演算法,是非監督學習中的聚類演算法。基本思想 k means演算法比較簡單。在k means演算法中,用cluster來表示簇 容易證明k means演算法收斂等同於所有質心不再發生變化。基本的k means演算法流程如下 選取k個初始質心 作為初始cluster,每個初始clus...

機器學習 KMeans學習筆記

機器學習 kmeans學習筆記 coding utf 8 spyder editor this is a temporary script file.from numpy import def loaddataset filename file open filename datamat for l...

(機器學習筆記2)K means演算法

k means演算法 機器學習常用的方法分為監督學習 非監督學習 分類 監督學習 已有的訓練樣本 得到訓練後的模型 未知資料輸入模型得到分類結果 knn 非監督學習 無訓練樣本 構建分類模型 k means k均值是發現給定資料集的k個簇的演算法。k為手動設定 可能不是最合適的,需要調整 每個簇用其...