隨機選擇k個聚類中心,在每一次迭代中,先為每個點確定其最近的聚類中心,這一步稱為集群分配(cluster assignment),然後計算每個類中所有點的中心點,將該類的聚類中心移動到中心點,這一步稱為中心移動(move centroid),得到這k個聚類中心的新位置,進行下一次迭代,直到每個聚類中心點正確分布在每個類的中心。
演算法的輸入有兩個引數:聚類中心的數量k和一系列訓練集x
=x=\
x=,聚類過程如圖所示:
偽**如下:
for k=1:k
乙個推薦的隨機初始化的方法:
隨機選擇k個訓練集中的點x1,
x2,…
,xkx_1,x_2,\dots,x_k
x1,x2
,…,
xk,令他們為初始聚類中心x1=
μ1,x
2=μ2
,…,x
k=μk
x_1=\mu_1,x_2=\mu_2,\dots,x_k=\mu_k
x1=μ1
,x2
=μ2
,…,
xk=
μk.
隨機初始化的點會很大程度上影響到最終聚類的結果,如果初始化的不好,最終可能會陷入區域性最優結果(local optima),避免這種的方式是進行多次隨機初始化和聚類(一般取50到1000次),分別計算distortion,取distortion最小的一次
d is
tort
ion=
1m∑i
=1m∣
∣xi−
ci∣∣
2distortion=\frac\sum_^m ||x_i - c_i||^2
distor
tion
=m1
i=1∑
m∣∣
xi−
ci∣
∣2對於k比較小(2到10),進行多次隨機初始化可能會很有用,但是對於k很大(如100),也許一次k聚類就能達到較好的效果。
聚類演算法 近鄰聚類演算法
time is always too short for those who need it,but for those who love,it lasts forever.dracula untold 近鄰聚類法同樣是一種基於距離閾值的聚類演算法。coding utf 8 近鄰聚類演算法的pyth...
聚類演算法之K均值聚類
k means聚類方法 1.介紹 k均值聚類是基於樣本集合劃分的聚類演算法。由於每個樣本在劃分的過程中只能屬於乙個類別,所以k means演算法屬於硬聚類。2.演算法過程 k均值聚類演算法是乙個迭代的過程,每次迭代包括兩個步驟 3.複雜度 k均值聚類演算法的複雜度o mnk 其中k表示類別數,m表示...
k均值聚類演算法
輸入 簇的數目k和包含n個物件的資料庫。輸出 k個簇,使平方誤差準則最小。演算法步驟 1.為每個聚類確定乙個初始聚類中心,這樣就有k 個初始聚類中心。2.將樣本集中的樣本按照最小距離原則分配到最鄰近聚類 3.使用每個聚類中的樣本均值作為新的聚類中心。4.重複步驟2.3直到聚類中心不再變化。5.結束,...