K-means是一種無監督學習,對未標記的資料(即沒有定義類別或組的資料)進行分類。 該演算法的目標是在資料中找到由變數K標記的組。該演算法迭代地工作基於所提供的特徵,將每個資料點分配給K個組中的一個。 基於特徵相似性對資料點進行聚類。 K均值聚類演算法的結果是:

1。K簇的質心,可用於標記新資料

2。訓練資料的標籤(每個資料點分配給一個叢集)

一、k-means簡述

1、聚類

“類”指的是具有相似性的集合,聚類是指將資料集劃分為若干類,使得各個類之內的資料最為相似,而各個類之間的資料相似度差別儘可能的大。對資料集進行聚類劃分,屬於無監督學習。聚類分析就是以相似性為基礎,在一個聚類中的模式之間比不在同一個聚類中的模式之間具有更多的相似性。

2、K-Means

對樣本集D = {x1,x2,…,xm}。K-Means演算法就是針對聚類劃分C = {C1,C2,…,Ck}最小化平方誤差;

K-均值聚類演算法(K-Means)

其中

K-均值聚類演算法(K-Means)

是是簇Ci的均值向量。從上述公式中可以看出,該公式刻畫了簇內樣本圍繞簇均值向量的緊密程度,E值越小簇內樣本的相似度越高。

結合最小二乘法和拉格朗日原理,聚類中心為對應類別中各資料點的平均值,同時為了使演算法收斂,在迭代的過程中,應使得最終的聚類中心儘可能的不變。

三、工作流程

隨機選取K個樣本作為聚類中心;

計算各樣本與各個聚類中心的距離;

將各樣本回歸於與之距離最近的聚類中心;

求各個類的樣本的均值,作為新的聚類中心;

判定:若類中心不再發生變動或者達到迭代次數,演算法結束,否則回到第二步。

四、k-means演算法的描述如下

當任意一個點的簇分配結果發生改變時,對資料集中的每個點,對每個質心,計算質心與資料點之間的距離將資料點分配到距離其最近的簇對每一個簇,計算簇中所有點的均值並將均值作為質心。

二、wine資料集的紅酒K-Means聚類

匯入資料

K-均值聚類演算法(K-Means)

資料預處理

K-均值聚類演算法(K-Means)

資料聚類

K-均值聚類演算法(K-Means)

(1)對比真實標籤和聚類標籤求取FMI

K-均值聚類演算法(K-Means)

(2)在聚類數目為2~10類時,確定最優聚類數目

K-均值聚類演算法(K-Means)

資料越接近1更好所以由上圖可得聚類最優為3類,與k-means聚類結果相同