python實現(xiàn)kmeans聚類 在Python中聚類后,如何知道哪個樣本屬于哪一類?
在Python中聚類后,如何知道哪個樣本屬于哪一類?首先可以看到聚類后的樣本如果使用Python sklearn中的K-means聚類算法,算法類本身就有一些屬性可以知道聚類后的情況。例如,有一些模型
在Python中聚類后,如何知道哪個樣本屬于哪一類?
首先可以看到聚類后的樣本
如果使用Python sklearn中的K-means聚類算法,算法類本身就有一些屬性可以知道聚類后的情況。
例如,有一些模型屬性,clusterucentersuuuuuux是聚類后得到的聚類中心,標簽uuux如上圖所示,樣本[1.4,0.2]對應(yīng)第三個類別,聚類結(jié)果還有每個類別的聚類中心和每個類別的樣本數(shù)。這種方法可以用來尋找相應(yīng)的標簽分類。
當然,還有一個predict方法,可以直接輸出輸入樣本的類標簽
~]?算法:
第1步:選擇k個初始聚類中心,Z1(1)、Z2(1)、ZK(1),其中括號內(nèi)的序列號是尋找聚類中心的迭代操作的次序列號。聚類中心的向量值可以任意設(shè)置。例如,可以選擇初始K個模式樣本的向量值作為初始聚類中心。
第二步是根據(jù)最小距離準則將模式樣本{x}分配給K個聚類中心之一。
假設(shè)I=J,則K為迭代運算的次序列號,第一次迭代K=1,SJ為第J個簇,其簇中心為ZJ。
第3步:計算每個聚類中心的新向量值ZJ(k1),j=1,2,K
找到每個聚類域中樣本的平均向量:
其中NJ是第j個聚類域中的樣本數(shù)SJ。以均值向量作為新的聚類中心,可以最小化以下聚類準則函數(shù):
在這一步中,我們需要分別計算K個聚類的樣本均值向量,因此稱為K-means算法。
第4步:如果J=1,2,K,則返回第二步,逐個重新分類模式樣本,并重復迭代操作;
如果J=1,2,則算法收斂,計算結(jié)束。