kmeans聚類演算法解密

2021-08-16 02:29:19 字數 1337 閱讀 6406

前面我們了解了很多有監督學習相關的知識,相信大家一定對其中的精彩還回味無窮呢(原諒我就是這麼臭不要臉,哈哈哈),最近閒來無事,看了看無監督學習相關的資料和知識,今天我們就先來看看無監督學習之kmenas演算法,從名字可以看到兩個資訊:1)k個簇;2)每個簇的質心是它的means,即均值。我們先來看看kmeans的思路:

1)確定k個中心表示k個簇(方法各異);

2)對n個樣本,找到距離其最近的簇,重新計算每個簇的中心;

3)重複2)知道簇中心不發生變化或者達到最大迭代次數!

對於1)中k的確定以及對應的簇的中心選擇,我們對症下藥設計了不同的方法:

k的確定:如果問題中沒有給定k值,我們需要自己確定k的大小,可以選用的方法很多很多,包括:

1)肘部法則:選用不同的k值,得到其對應的畸變度量(sse),然後選擇變化最大(由迅猛轉化為緩慢)的那乙個k值;

2)與層次聚類結合:先用層次聚類確定乙個大體的k值,然後找到乙個初始聚類,然後用迭位重定位來改進該聚類;

3)穩定性方法:

初始質心選擇:

1)隨機選取質心:這種方法的隨機性很大,這樣簇的質量往往很差,一種改進方法為:隨機選取質心,多次執行,選取具有最小sse的簇集(這需要執行到1)+2)的前部分);

2)取乙個樣本,使用層次聚類技術對其進行聚類,從層次聚類中提取k個簇,並用這些簇的質心作為初始質心;

3)選擇第乙個點(隨機地選擇或者選取所有點的質心),然後對於**每個後繼初始質心**,選擇距離已經選取過的初始質心最遠的點,求距當前質心距離最遠的點時計算成本很高,而且這種方法可能選中離群點。

對於2)中的第二個步驟(重新計算每個簇的中心),我們為其設計的目標函式為sum of squared error(sse),即平方誤差和:

最小化目標函式,可得:

因此我們可以得到更新每乙個簇的質心即為該簇的均值!

kmeans方法的缺點:

1)k值需要預先確定;

2)kmeans演算法對於初始質心的選擇超級敏感,不同的初始質心的選擇得到的聚類結果完全不同;

3)kmeans演算法適應的資料型別:球形簇,圓形簇。對於不同簇的規模差距較大或者分布屬於長條形等時,不適合使用kmeans演算法;

4)對離群點很敏感。

如果後面有時間的話,我們再來看看其對應的改進演算法!

K Means聚類演算法

k means聚類演算法 intergret kmeans演算法的基本思想是初始隨機給定k個簇中心,按照最鄰近原則把待分類樣本點分到各個簇。然後按平均法重新計算各個簇的質心,從而確定新的簇心。一直迭代,直到簇心的移動距離小於某個給定的值。k means聚類演算法主要分為三個步驟 1 第一步是為待聚類...

聚類演算法 K means

演算法接受引數 k 然後將事先輸入的n個資料物件劃分為 k個聚類以便使得所獲得的聚類滿足 同一聚類中的物件相似度較高 而不同聚類中的物件相似度較小。聚類相似度是利用各聚類中物件的均值所獲得乙個 中心物件 引力中心 來進行計算的。k means演算法是最為經典的基於劃分的聚類方法,是十大經典資料探勘演...

k means聚類演算法

說到聚類,得跟分類區別開來,分類是按人為給定的標準將樣本歸到某個類別中去,在機器學習中多是監督學習,也就是訓練樣本要給標籤 正確的類別資訊 而聚類是在某種規則下自動將樣本歸類,在機器學習中是無監督學習,不需要提前給樣本打標籤。k means聚類演算法,就是在某種度量方式下,將樣本自動劃分到k個類別中...