輸入:簇的數目k和包含n個物件的資料庫。
輸出:k個簇,使平方誤差準則最小。
演算法步驟:
1.為每個聚類確定乙個初始聚類中心,這樣就有k 個初始聚類中心。
2.將樣本集中的樣本按照最小距離原則分配到最鄰近聚類
3.使用每個聚類中的樣本均值作為新的聚類中心。
4.重複步驟2.3直到聚類中心不再變化。
5.結束,得到k個聚類
偽**
建立k個點作為起始質心(經常隨機選擇)
當任意乙個點的簇分配結果發生改變時
對於資料集中的每個資料點
對每個質心
計算質心於資料點之間的距離
將資料點分配到距其最近的簇
對於每個簇,計算簇中所有點的均值並將均值作為質心
優點:容易實現
缺點:
k 是事先給定的,這個 k 值的選定是非常難以估計,常採用遺傳演算法(ga)進行初始化來改進
存在噪點時,可能收斂到區域性最小值
在大規模的資料集上收斂較慢
適用資料型別:數值型資料
假設資料探勘的任務是將如下的八個點(用(x,y)代表位置)聚類為三個類。
a1(2,10), a2(2,5), a3(8,4), b1(5,8), b2(7,5), b3(6,4), c1(1,2), c2(4,9)
距離函式是euclidean函式。假設初始我們選擇a1,b1,和c1為每個簇的中心,用k-means演算法來給出
在第一次迴圈執行後的三個簇中心
最後的三個簇
1、計算各點到初始聚類中心的距離,劃分到距離最近的簇中去。
2、第一輪執行後的三個簇:
則其聚類中心為:
(2,10)(6,6)(1.5,3.5)
3、最後的三個簇為:
K 均值聚類演算法
from numpy import 建立元組 dataset 與我們所熟悉的矩陣類似,最終我們將獲得n 2的矩陣,filein open home zengxl pycharmprojects test3 機器學習實戰 ch10 testset.txt 是正斜槓 for line in filein...
K 均值聚類演算法
k means演算法是最簡單的一種聚類演算法。演算法的目的是使各個樣本與所在類均值的誤差平方和達到最小 這也是評價k means演算法最後聚類效果的評價標準 k means聚類演算法的一般步驟 初始化。輸入基因表達矩陣作為物件集x,輸入指定聚類類數n,並在x中隨機選取n個物件作為初始聚類中心。設定迭...
聚類,K 均值演算法
聚類是將資料集中的樣本劃分為若干個不相交的子集,每個子集稱為乙個 簇 通過這樣的劃分可能對應於一些潛在的類別。聚類即能作為乙個單獨過程,用於尋找資料內在的分布結構,也可作為分類等學習任務的前驅過程。聚類的過程通常會把一些具有相似特徵或者潛在聯絡的樣本劃分為乙個簇,那麼應該怎樣劃分簇呢,k means...