聚類演算法 K Means 簡介與入門

2021-10-11 09:52:12 字數 1193 閱讀 5863

k-means 演算法是最簡單的一種聚類演算法,屬於無監督學習演算法。

聚類和分類最大的不同在於:分類的目標是事先已知的,而聚類則不一樣,聚類事先不知道目標變數是什麼,類別沒有像分類那樣被預先定義出來。

假設我們的樣本是 ,每個 x^(i) ∈ r^n,即它是乙個維向量。現在使用者給定乙個 k 值,要求將樣本聚類成 k 個類簇。在這裡,我們把整個演算法成為聚類演算法,聚類演算法的結果是一系列的類簇。

步驟:

輸入:樣本集 d,簇的數目 k,最大迭代次數n;

輸出:簇劃分( k 個簇,使平方誤差最小)

(1)為每個聚類選擇乙個初始聚類中心;

(2)將樣本集按照最小距離原則分配到最鄰近聚類;

(3)使用每個聚類的樣本均值更新聚類中心;

(4)重複步驟(2)(3),直到聚類中心不再發生變化;

(5)輸出最終的聚類中心和 k 個簇劃分。

涉及距離的計算,最常用的距離是歐氏距離(euclidean distance),公式為:

此外,還有閔可夫斯基距離:

曼哈頓距離(也稱為城市街區距離,city block distance):

優點:

(1) 演算法簡單,容易實現

(2) 演算法速度很快

(3) 對處理大資料集,該演算法是相對可伸縮的和高效率的,因為它的複雜度大約是o(nkt),其中,n 為資料物件的數目,t 為迭代的次數。一般來說, k <缺點:

(1) k是事先給定的,乙個合適的 k 值難以估計。

(2) 在 k-means 演算法中,首先需要根據初始類簇中心來確定乙個初始劃分,然後對初始劃分進行優化。初始類簇中心的選擇對聚類結果有較大的影響。一旦選擇的不好,可能無法得到有效的聚類結果。可以使用遺傳演算法來選擇合適的初始類簇中心。

(3) 演算法需要不斷地進行樣本分類調整,不斷計算調整後的新的類簇中心,因此當資料量非常大的時,演算法的時間開銷是非常大的。可以利用取樣策略,改進演算法效率。也就是初始點的選擇,以及每一次迭代完成時對資料的調整,都是建立在隨機取樣的樣本資料的基礎之上,這樣可以提高演算法的收斂速度。

K Means聚類演算法

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

聚類演算法 K means

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

k means聚類演算法

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