對大量未進行標註(unsupervised learning)的資料集,並按照資料集本身的內部資料特徵將資料劃分為多個不同的類別,從而使得類別內的資料相似度高,而類別間的資料差異性較大。因此,它的重點就在於計算樣本間的相似度(similarity)。
輸入演算法所需資料,資料樣本集d=
,將樣本資料集分開的簇數
k ,此處用歐幾里得距離(euclidean distance)來計算樣本間相似度:
1. 選擇(選擇策略可以隨機,也可以多次選擇選最佳等)初始化的k
個類別的中心(centroids),c1
,c2,
⋯,ck
; 2. 對於每乙個樣本xi
,將其標記為距離類別中心cj
最近的類別j,
即,∀i
,lab
eli=
argmin1≤
j≤k∑
i=1n
(xi−
cji)
2−−−
−−−−
−−−−
√,cj
=1n(
cj)∑
xi∈c
jxi
3. 更新每乙個簇的質心為隸屬該簇的所有樣本的均值,當然這只是策略之一,如還可以使用中值(median)
⟹ 一定程度避免outliers;
4. 重複第2, 3步,直到滿足終止條件之一。
終止條件,達到迭代次數,所有簇中心點變化不大於指定閾值,最小平方誤差mse
最小化平方誤差mse(loss function)表示為,假設劃分的簇為 ,e
=∑i=
1k∑x
j∈ci
||xj
−ci|
|2,其
中ci=
1|ci
|∑xj
∈cix
j 推薦博文
聚類演算法之Kmeans
kmeans是聚類演算法中比較簡單的演算法,也用的非常多。這裡進行簡單的解釋,主要目的在於給自己記錄,以備以後檢視。k均值聚類的主要思想是為了使得各個類的點離聚類中心都盡可能近。k均值聚類的演算法可以描述為 輸入 資料集d d 聚類簇個數 k 演算法 從資料集d中隨機選擇k個樣本作為初始聚類中心 r...
聚類演算法之K means
k means演算法也稱k 均值聚類演算法。它試圖通過基於原型的 劃分的距離計算來發現k個使用者預先指定的簇。將一組資料劃分為預先設定好的k個簇,也可理解為隨機選擇k個向量作為初始均值向量。接下來根據均值向量將樣本劃分到距離最近的均值向量所在的簇中。這是一次迭代過程。重新計算並更新均值向量,不斷重複...
聚類演算法之K means演算法與聚類演算法衡量指標
原文出處 聚類就是按照某個特定標準 如距離準則 把乙個資料集分割成不同的類或簇,使得同乙個簇內的資料物件的相似性盡可能大,同時不在同乙個簇中的資料物件的差異性也盡可能地大。即聚類後同一類的資料盡可能聚集到一起,不同資料盡量分離。聚類演算法屬於無監督學習,即事先不會給出標記資訊,通過對無標記樣本的學習...