深入剖析K均值聚類核心原理,算法優(yōu)勢與局限全解讀(2024全新版)
- 風(fēng)輕云淡
- 激光知識
- 2024-11-17 15:56:02
- 1
K-Means聚類算法,作為一種廣泛應(yīng)用且易于理解的聚類手段,以其快速的計算速度和適用于連續(xù)型數(shù)據(jù)的特性而廣受歡迎,其應(yīng)用過程中需預(yù)先設(shè)定的類別數(shù)量,為算法帶來了一定的局限性。
當(dāng)我們面對一組分布在直線上的數(shù)據(jù)點(diǎn),需要進(jìn)行聚類分析時,首先面臨的便是如何確定分類的數(shù)量,我們可能希望將這些點(diǎn)劃分為三類,算法的初始步驟是從這些點(diǎn)中隨機(jī)選擇三個點(diǎn)作為簇中心,隨后計算每個點(diǎn)到這三個中心的距離,并根據(jù)距離的遠(yuǎn)近將點(diǎn)劃歸到相應(yīng)的簇中。
這一過程不斷重復(fù),直至所有點(diǎn)都被歸類,計算每個簇的中心點(diǎn),即均值,并根據(jù)新的中心點(diǎn)重新判斷每個點(diǎn)的歸屬,直至聚類結(jié)果穩(wěn)定不再變化。
盡管這一聚類方法簡潔直觀,但效果并不總是理想,如何評估聚類結(jié)果的好壞成為了一個關(guān)鍵問題,一種常用的方法是計算每個簇的總變差,通過多次迭代選擇不同初始簇中心,從而確定總變差最小的聚類結(jié)果。
在實際情況中,我們往往難以確定最佳的K值,這時,可以嘗試不同的K值進(jìn)行聚類,并繪制elbow plot圖來觀察隨著K值變化的聚類效果,當(dāng)K值大于3時,變差的降低速度明顯放緩,這時的K值可能是一個較好的選擇。
對于二維平面上的點(diǎn),我們通常通過計算歐式距離來進(jìn)行聚類,類似地,對于熱圖數(shù)據(jù),也可以采用這種方法,值得注意的是,系統(tǒng)聚類法和K均值聚類法雖然同屬聚類分析,但它們的適用條件和步驟各有不同,系統(tǒng)聚類法更適合樣品個數(shù)均勻的情況,而K均值聚類法則在大數(shù)據(jù)量的快速聚類中表現(xiàn)出色。
聚類算法作為一種無監(jiān)督學(xué)習(xí)方法,其目的是將具有相似特征的數(shù)據(jù)自動劃分到多個類別中,在聚類過程中,相似度高的樣本會被歸為一類,從而形成內(nèi)部相似度高、外部差異度高的多個簇。
下面,我們將詳細(xì)解釋聚類算法的基本概念和算法流程:
基本概念
1、K值:即我們希望將數(shù)據(jù)集經(jīng)過聚類得到的簇的數(shù)量。
2、質(zhì)心:每個簇的均值向量,也就是將各維度的數(shù)值取平均后得到的中心點(diǎn)。
3、距離量度:常用的有歐幾里得距離和余弦相似度,其中余弦相似度在計算前通常需要對數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)化處理。
算法流程詳解
1、確定K值:首先確定我們希望將數(shù)據(jù)集聚類成的簇的數(shù)量。
2、初始化質(zhì)心:從數(shù)據(jù)集中隨機(jī)選擇K個數(shù)據(jù)點(diǎn)作為初始的質(zhì)心。
3、計算距離:對數(shù)據(jù)集中的每一個點(diǎn),計算其與每一個質(zhì)心的距離(通常使用歐式距離),每個點(diǎn)會歸屬于離它最近的質(zhì)心所在的簇。
4、重新計算質(zhì)心:將所有數(shù)據(jù)點(diǎn)分配到相應(yīng)的簇后,重新計算每個簇的質(zhì)心,即該簇內(nèi)所有點(diǎn)的均值。
5、判斷收斂:如果新計算的質(zhì)心與原質(zhì)心的位置變化不大,趨于穩(wěn)定,即認(rèn)為聚類已經(jīng)達(dá)到期望的結(jié)果,算法終止,如果變化很大,則需要重復(fù)步驟3至步驟5,直到滿足收斂條件。
K-Means聚類的圖解說明
以六個點(diǎn)的聚類為例,假設(shè)k值設(shè)為2,我們隨機(jī)選擇兩個點(diǎn)作為初始的質(zhì)心,然后通過計算其他點(diǎn)到這兩個質(zhì)心的距離,將其歸類到最近的質(zhì)心所代表的簇中,接著重新計算每個簇的質(zhì)心,并不斷重復(fù)這一過程,直到質(zhì)心的變化趨于穩(wěn)定。
具體操作步驟及示例
1、分組與選擇質(zhì)心:將數(shù)據(jù)點(diǎn)分為兩組,并隨機(jī)選擇兩個點(diǎn)作為質(zhì)心P1和P2。
2、計算距離與分組:通過計算其他點(diǎn)到這兩個點(diǎn)的距離進(jìn)行第一次分組。
3、計算新的質(zhì)心:分別計算兩組的質(zhì)心坐標(biāo)。
4、重復(fù)計算:再次計算每個點(diǎn)到新質(zhì)心的距離,并進(jìn)行重新分組。
5、判斷收斂性:比較新老質(zhì)心的位置變化,如果變化不大則認(rèn)為已收斂,聚類結(jié)束;否則繼續(xù)重復(fù)步驟3至步驟5。
K-Means聚類的優(yōu)點(diǎn)
1、原理簡單:K-Means算法的原理相對簡單明了,易于實現(xiàn)。
2、收斂速度快:當(dāng)數(shù)據(jù)集的簇是密集的且簇間區(qū)別明顯時,K-Means算法的收斂速度較快。
3、參數(shù)少:K-Means算法主要需要調(diào)整的參數(shù)是簇的數(shù)量K,操作相對簡單。
K-Means聚類作為一種啟發(fā)式方法,也存在一些缺點(diǎn),如對初始質(zhì)心的敏感性、對噪音和異常值的敏感性以及可能陷入局部最優(yōu)解等問題,針對這些問題,我們可以采取一些優(yōu)化措施,如多次隨機(jī)選擇初始質(zhì)心、去除異常值或進(jìn)行數(shù)據(jù)標(biāo)準(zhǔn)化等,確定合適的K值也是關(guān)鍵,可以通過嘗試多個K值、計算損失函數(shù)或結(jié)合實際業(yè)務(wù)需求來進(jìn)行選擇。