無監督學習 K means聚類

2022-08-24 20:39:09 字數 1688 閱讀 6665

先用圖來描述k-means怎麼做的

對於如下資料

如果你想分成2類(k=2),演算法會隨機生成兩個聚類中心

然後會分別計算每個資料(綠點)與聚類中心的距離(一般是歐式距離),來決定屬於哪個類(距離哪個聚類中心近)

這樣,就得到了資料的第一次分類,接下來演算法會計算已分類的資料的「中心」,將它們作為新的聚類中心

這時,重新計算所有資料(紅點和藍點)與新的聚類中心的距離,並判斷屬於哪個類

然後,重新計算新的分類的聚類中心

然後,重新計算資料點與新的聚類中心的距離,並決定屬於哪個類

然後,重新計算聚類中心

總結k-means演算法

輸入:演算法步驟:

隨機選擇k個「初始聚類中心」(μ1, μ2,..., μk)(每個聚類中心都是n維向量)

重複_},...,},,...,}j\left( },...,},,...,} \right) = \frac\sum\limits_^m } - }}}} \right\|}^2}} \]

意思是:最小化所有「資料與其所屬類別中心距離的平均值」

我們可以用這個算是函式判斷演算法是否正常執行。

關於隨機選取

首先,k < m

一種方法是隨機選取k個樣本作為「初始聚類中心」

注意:如果隨機算則的初始聚類中心不當,就可能陷入區域性最小。

為了避免這種情況,可以嘗試多次隨機選取初始聚類中心的方法(比如50-1000次),然後選取其中「損失函式」最小的那個

如何選擇k(聚類數)

一種方法是:「elbow method」

畫出k-means的代價函式隨k值變化的曲線,選擇「elbow」所在位置的k(這裡選擇3)

但是這種方法很少用,因為,通常情況下得到的圖會是如下情況,這樣就很難作出判斷

有些時候,你運用k-means方法聚類是為了之後的目的,而不是聚多少類在數學意義上最合理。(比如,衣服的尺碼是分為3類還是5類,那就看那種分類賣得好,更符合市場需求)

無監督學習 K Means聚類

無監督學習 通過無標籤的資料,學習資料的分布或資料與資料之間的關係。1定義 根據資料的 相似性 將資料分為多類的過程。1.1.演算法模組 k means 近鄰傳播演算法 dbscan演算法,高斯混合模型 gmm 等。1.2.python庫 sklearn.cluster 1.3.k means聚類演...

無監督學習 聚類 K means聚類演算法

無監督學習 聚類 k means聚類演算法 以k為引數,把n個物件分為k個簇,使簇內具有較高相似度,簇間相似度較低 1.隨機選擇k個點作為初始聚類中心 2.根據剩下點與聚類中心的距離 預設就是歐氏距離 歸為最近的簇 3.對每個簇,計算所有點的均值作為新聚類中心 4.重複2 3直至聚類中心不變 31省...

ML演算法 無監督學習 K means聚類

這一系列文章將介紹各種機器學習演算法,部分演算法涉及公示推導,我的部落格中有另乙個板塊介紹基於python和r實現各種機器學習演算法,詳情見置頂的目錄。聚類演算法是一種無監督的機器學習演算法,通過距離測度實現樣本點的歸類,演算法的最終目的是使得聚簇內部樣本點相似度最大,聚簇間樣本點相似度最小,常見的...