聚類(Clustering)
在非監(jiān)督學(xué)習(xí)中,訓(xùn)練樣本的標(biāo)記信息是未知的套蒂,目標(biāo)通過對無標(biāo)記訓(xùn)練樣本的學(xué)習(xí)來揭示數(shù)據(jù)的內(nèi)在性質(zhì)及規(guī)律,為進一步的數(shù)據(jù)分析提供基礎(chǔ)。此類學(xué)習(xí)任務(wù)中研究最多坪它、應(yīng)用最廣的是聚類(Clustering)。
聚類試圖將數(shù)據(jù)集中的樣本劃分為若干個通常是不相交的子集帝牡,每個子集稱為一個簇(Cluster)往毡。通過這樣的劃分,每個簇可能對應(yīng)一些潛在的概念(類別)靶溜。需說明的是开瞭,這些概念對聚類算法而言事先是未知的,聚類過程僅能自動形成簇結(jié)構(gòu)罩息,簇所對應(yīng)的概念語義需由使用者來把握命名嗤详。
由于在課程中,吳恩達(dá)教授對這些概念沒有明確定義扣汪。故從周志華教授的《機器學(xué)習(xí)》一書中摘取相關(guān)部分断楷。
K均值算法(K-means algorithm)
K均值算法是聚類算法中最常用的算法,該算法能將一個無標(biāo)記的數(shù)據(jù)集聚類成不同的簇崭别。
K均值算法是一個迭代算法冬筒,現(xiàn)假設(shè)訓(xùn)練集為{x(1), x(2), ... , x(m)},即x(i) ∈ Rn茅主;K表示簇的個數(shù)舞痰,則K均值算法的運行步驟如下:
- 隨機選擇K個點作為聚類中心,記為μ1, μ2, ... , μk诀姚,其中μi ∈Rn响牛;
- 對于訓(xùn)練集中的每一個數(shù)據(jù),按照其至聚類中心的距離的大小劃分赫段,將離某一個聚類中心距離最小的一系列數(shù)據(jù)歸為一類呀打;
- 計算每個簇的平均值并將聚類中心移至平均值處;
- 重復(fù)步驟2~4直至聚類中心不再移動糯笙。
優(yōu)化目標(biāo)(Optimization Objective)
K均值算法最小化問題是將數(shù)據(jù)點與其所屬的聚類中心之間的距離最小化贬丛,因此其代價函數(shù)J(θ)為:
其中μc^(i)表示與數(shù)據(jù)點x(i)距離最小的聚類中心。該代價函數(shù)也稱為Distortion Function给涕。
最小化代價函數(shù)的表達(dá)式為:
在最小化代價函數(shù)的過程中豺憔,每一次迭代都在使得代價函數(shù)值減小额获,否則其便是出現(xiàn)了錯誤。
隨機初始化(Random Initialization)
在使用K均值算法之前恭应,我們應(yīng)隨機初始化K個聚類中心抄邀,其中聚類中心個數(shù)K要小于訓(xùn)練集數(shù)據(jù)個數(shù)m,即K < m昼榛。
- 隨機選擇K個訓(xùn)練集中的數(shù)據(jù)
- 將被選擇的K個數(shù)據(jù)作為聚類中心
K均值算法在運行過程中可能會停留在一個局部最小值處境肾,而這與初始化相關(guān),因此我們要多次運行選擇代價函數(shù)最小的結(jié)果褒纲。
對于K值較凶家摹(如K = 2~10)時,這種方法是可行的莺掠,其通過能夠保證得到較好的局部最優(yōu)解衫嵌;但K值較大時,該方法效果不明顯彻秆。
選擇聚類個數(shù)(Choosing the Number of Cluster)
實際上楔绞,我們并沒有所謂最好的選擇聚類個數(shù)的方法。我們通常是根據(jù)實際情況唇兑,人工選擇聚類個數(shù)酒朵。