K均值聚類算法

0 評(píng)論 1264 瀏覽 0 收藏 10 分鐘

這篇文章,我們來(lái)學(xué)習(xí)無(wú)監(jiān)督學(xué)習(xí)算法中的K均值聚類算法。希望大家看完后能了解其基本原理和應(yīng)用場(chǎng)景,以便在工作中更好地應(yīng)用。

一、什么叫K均值聚類算法?

K均值聚類算法也叫K-means聚類算法,是一種無(wú)監(jiān)督學(xué)習(xí)算法。

二、基本原理

假設(shè)有一個(gè)新開(kāi)辦的大學(xué),即便還沒(méi)有開(kāi)設(shè)任何的社團(tuán),有不同興趣愛(ài)好的同學(xué)們依然會(huì)不自覺(jué)的很快聚在一起,比如喜歡打籃球的、喜歡打乒乓球的、喜歡音樂(lè)的等等。

這時(shí)候就可以順勢(shì)開(kāi)設(shè)籃球社團(tuán)、乒乓球社團(tuán)、音樂(lè)社團(tuán),再有同學(xué)想加入社團(tuán)的時(shí)候,就可以直接根據(jù)自身興趣選擇社團(tuán)了。

把這個(gè)場(chǎng)景遷移到機(jī)器學(xué)習(xí)上,擁有不同興趣的學(xué)生就是數(shù)據(jù)樣本,我們來(lái)試著來(lái)給他們歸類。

向量空間中,距離近的樣本意味著有更高的相似度,我們就把它們歸為一類,然后用該類型所有樣本的中心位置標(biāo)識(shí)這個(gè)類別,再有新樣本進(jìn)來(lái)的時(shí)候,新樣本離哪個(gè)類別的中心點(diǎn)更近,就屬于哪個(gè)類別,然后再重新計(jì)算確定新的中心點(diǎn)。

不斷重復(fù)上述操作,就能把所有的數(shù)據(jù)樣本分成一個(gè)個(gè)無(wú)交集的簇,也就是對(duì)所有數(shù)據(jù)樣本完成了歸類。

這就是K-means算法的思路及原理:將數(shù)據(jù)集劃分為K個(gè)不重疊的獨(dú)立聚類,再找出這個(gè)K個(gè)類別的中心位置,新的樣本離中心位置最近則歸屬哪個(gè)類別。

這里生成的新簇中,需重新計(jì)算每個(gè)簇的中心點(diǎn),然后在重新進(jìn)行劃分,直到每次劃分的結(jié)果保持不變。在實(shí)際應(yīng)用中往往經(jīng)過(guò)很多次迭代仍然達(dá)不到每次劃分結(jié)果保持不變,甚至因?yàn)閿?shù)據(jù)的關(guān)系,根本就達(dá)不到這個(gè)終止條件,實(shí)際應(yīng)用中往往采用變通的方法設(shè)置一個(gè)最大迭代次數(shù),當(dāng)達(dá)到最大迭代次數(shù)時(shí),終止計(jì)算。

需要注意的是,K-means算法中的K表示要分成K個(gè)聚類,那么如何確定K值就是一個(gè)繞不開(kāi)的問(wèn)題了。其實(shí)沒(méi)有統(tǒng)一的標(biāo)準(zhǔn),這里一般兩種辦法:

1、我們一般根據(jù)個(gè)人經(jīng)驗(yàn)來(lái)設(shè)定K值(可用觀察法看粗略地看有多少簇)。

2、嘗試每一個(gè)K值,然后在不同的K值情況下,通過(guò)每個(gè)待測(cè)點(diǎn)到質(zhì)心的距離之和,來(lái)計(jì)算平均距離。著K值的變化,最終會(huì)找到一個(gè)點(diǎn),讓平均距離變化放緩,這個(gè)時(shí)候基本就可以確定K值了。

如下圖劃分?jǐn)?shù)在4-15之間,簇內(nèi)間距變化很小,基本上是水平直線,因此可以選擇K=4(拐點(diǎn)附近位置)作為劃分?jǐn)?shù)。

K-Means算法涉及到簇中心的計(jì)算,對(duì)于第i個(gè)簇,其簇中心(質(zhì)心)的計(jì)算公式為:

K均值聚類的目標(biāo)是最小化簇內(nèi)平方誤差,即找到K個(gè)簇,使每個(gè)數(shù)據(jù)點(diǎn)與其所屬簇中心的距離之和最小。目標(biāo)函數(shù)的數(shù)學(xué)公式是:

從公式可見(jiàn),E值越小則簇內(nèi)數(shù)據(jù)(樣本)相似度越高。K-Means算法通過(guò)迭代更新簇中心,不斷優(yōu)化這個(gè)目標(biāo)函數(shù),來(lái)達(dá)到更好的聚類效果。

三、K均值聚類算法的步驟是什么?

  1. 初始化:隨機(jī)選擇K個(gè)數(shù)據(jù)點(diǎn)作為初始簇中心。
  2. 分配數(shù)據(jù)點(diǎn):對(duì)于數(shù)據(jù)集中的每個(gè)數(shù)據(jù)點(diǎn),計(jì)算其與各個(gè)簇中心的距離,并將其分配到距離最近的簇中心所在的簇。
  3. 更新簇中心:計(jì)算每個(gè)簇內(nèi)所有數(shù)據(jù)點(diǎn)的均值(或其它形式的中心),將其作為新的簇中心。這個(gè)均值可以是算術(shù)平均值、幾何平均值、中位數(shù)等。
  4. 重新計(jì)算誤差:重新計(jì)算每個(gè)簇內(nèi)數(shù)據(jù)點(diǎn)到簇中心的距離,并計(jì)算總的平方誤差。
  5. 迭代:重復(fù)步驟(2)—(4),直到滿足停止條件。停止條件可以是簇中心的變化小于某個(gè)閾值,或是達(dá)到預(yù)設(shè)的最大迭代次數(shù),又或是誤差函數(shù)的減少小于某個(gè)值。

四、應(yīng)用場(chǎng)景

K均值聚類算法,可以幫我們完成大量數(shù)據(jù)的分類任務(wù)。

商業(yè)務(wù)中,精細(xì)化運(yùn)營(yíng)的前提是對(duì)用戶進(jìn)行分層,然后根據(jù)不同層次的用戶采取不同的運(yùn)營(yíng)策略。這時(shí)候可以收集用戶的消費(fèi)頻率、消費(fèi)金額、最近消費(fèi)時(shí)間等消費(fèi)數(shù)據(jù),并使用K-means算法將用戶分為不同的層級(jí),然后針對(duì)高價(jià)值用戶,可以提供專享活動(dòng)或個(gè)性化服務(wù),提高用戶價(jià)值感和忠誠(chéng)度,針對(duì)將要流失的用戶,可以采用發(fā)放優(yōu)惠券等挽留策略,盡可能留住用戶。

以下是一些更多應(yīng)用場(chǎng)景:

  1. 文檔聚類:在自然語(yǔ)言處理中,可用于文檔聚類,將相似的文檔分為同一類,以便進(jìn)行更有效的信息檢索。
  2. 客戶細(xì)分:在市場(chǎng)營(yíng)銷中,可對(duì)客戶進(jìn)行細(xì)分,將相似的客戶分為同一類,以便進(jìn)行更有效的營(yíng)銷策略制定。
  3. 圖像分割:在計(jì)算機(jī)視覺(jué)中,可用于圖像分割,將圖像中的像素分為幾個(gè)不同的區(qū)域。
  4. 異常檢測(cè):可用于異常檢測(cè),通過(guò)將數(shù)據(jù)點(diǎn)聚類,找出那些與大多數(shù)數(shù)據(jù)點(diǎn)不同的異常數(shù)據(jù)點(diǎn)。
  5. 社交網(wǎng)絡(luò)分析:在社交網(wǎng)絡(luò)分析中,K-means可用于發(fā)現(xiàn)社區(qū)結(jié)構(gòu),將相似的用戶分為同一類。

五、優(yōu)缺點(diǎn)

K-means算法的優(yōu)點(diǎn):

  1. 簡(jiǎn)單易實(shí)現(xiàn):原理簡(jiǎn)單,實(shí)現(xiàn)起來(lái)相對(duì)容易。
  2. 計(jì)算效率高:時(shí)間復(fù)雜度近似為線性,對(duì)于大規(guī)模數(shù)據(jù)集可以較快地得到結(jié)果。
  3. 可解釋性強(qiáng):結(jié)果(即聚類中心)具有很好的可解釋性。
  4. 收斂速度快:在大多數(shù)情況下,K-means算法能夠較快速地收斂到局部最優(yōu)解。
  5. 優(yōu)化迭代功能:可以在已經(jīng)求得的聚類基礎(chǔ)上進(jìn)行迭代修正,提高聚類的準(zhǔn)確性。

K-means算法的缺點(diǎn):

  1. 準(zhǔn)確度上比不上有監(jiān)督學(xué)習(xí)的算法
  2. 對(duì)噪聲和離群點(diǎn)敏感:對(duì)噪聲和離群點(diǎn)敏感,這些點(diǎn)可能會(huì)影響聚類中心的計(jì)算。
  3. 需要預(yù)設(shè)聚類數(shù)目:需要預(yù)先設(shè)定K值(即聚類的數(shù)目),但這個(gè)值通常難以準(zhǔn)確估計(jì)。
  4. 對(duì)初始值敏感:算法結(jié)果可能會(huì)受到初始聚類中心選擇的影響,不同的初始值可能會(huì)導(dǎo)致不同的聚類結(jié)果。
  5. 可能收斂到局部最優(yōu):可能會(huì)收斂到局部最優(yōu)解,而非全局最優(yōu)解。

參考文檔:

1、8000字詳解“聚類算法”,從理論實(shí)現(xiàn)到案例說(shuō)明-人人都是產(chǎn)品經(jīng)理-果釀

2、K-means聚類算法:用“物以類聚”的思路挖掘高價(jià)值用戶

作者:厚謙,公眾號(hào):小王子與月季

本文由@厚謙 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)作者許可,禁止轉(zhuǎn)載。

題圖來(lái)自Unsplash,基于CC0協(xié)議。

該文觀點(diǎn)僅代表作者本人,人人都是產(chǎn)品經(jīng)理平臺(tái)僅提供信息存儲(chǔ)空間服務(wù)。

更多精彩內(nèi)容,請(qǐng)關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號(hào)或下載App
評(píng)論
評(píng)論請(qǐng)登錄
  1. 目前還沒(méi)評(píng)論,等你發(fā)揮!