R語(yǔ)言使用最優(yōu)聚類簇?cái)?shù)k-medoids聚類進(jìn)行客戶細(xì)分
原文鏈接:http://tecdat.cn/?p=9997
k-medoids聚類簡(jiǎn)介
k-medoids是另一種聚類算法,可用于在數(shù)據(jù)集中查找分組。k-medoids聚類與k-means聚類非常相似,除了一些區(qū)別。k-medoids聚類算法的優(yōu)化功能與k-means略有不同。在本節(jié)中,我們將研究k-medoids聚類。
k-medoids聚類算法
有許多不同類型的算法可以執(zhí)行k-medoids聚類,其中最簡(jiǎn)單,最有效的算法是PAM。在PAM中,我們執(zhí)行以下步驟來(lái)查找集群中心:
從散點(diǎn)圖中選擇k個(gè)數(shù)據(jù)點(diǎn)作為聚類中心的起點(diǎn)。
計(jì)算它們與散點(diǎn)圖中所有點(diǎn)的距離。
將每個(gè)點(diǎn)分類到最接近中心的聚類中。
在每個(gè)群集中選擇一個(gè)新點(diǎn),以使該群集中所有點(diǎn)與自身的距離之和最小。
重復(fù)??步驟2,??直到中心停止變化。
可以看到,除了步驟1??和??步驟4之外,PAM算法與k-means聚類算法相同? 。對(duì)于大多數(shù)實(shí)際目的,k-medoids聚類給出的結(jié)果幾乎與k-means聚類相同。但是在某些特殊情況下,我們?cè)跀?shù)據(jù)集中有離群值,因此首選k-medoids聚類,因?yàn)樗入x群值更健壯。
k-medoids聚類代碼
在本節(jié)中,我們將使用在上兩節(jié)中使用的相同的鳶尾花數(shù)據(jù)集,并進(jìn)行比較以查看結(jié)果是否明顯不同于上次獲得的結(jié)果。
實(shí)現(xiàn)k-medoid聚類
在本練習(xí)中,我們將使用R的預(yù)構(gòu)建庫(kù)執(zhí)行k-medoids:
將數(shù)據(jù)集的前兩列存儲(chǔ)在??iris_data??變量中:
?
安裝? 軟件包:
?
導(dǎo)入??軟件包:
?
將PAM聚類結(jié)果存儲(chǔ)在??km.res??變量中:
?
導(dǎo)入庫(kù):
?
在圖中繪制PAM聚類結(jié)果:
?
輸出如下:

圖:k-medoids聚類的結(jié)果
k-medoids聚類的結(jié)果與我們?cè)谏弦还?jié)中所做的k-means聚類的結(jié)果沒(méi)有太大差異。
因此,我們可以看到前面的PAM算法將我們的數(shù)據(jù)集分為三個(gè)聚類,這三個(gè)聚類與我們通過(guò)k均值聚類得到的聚類相似。

?
圖:k-medoids聚類與k-means聚類的結(jié)果
在前面的圖中,觀察k均值聚類和k均值聚類的中心如何如此接近,但是k均值聚類的中心直接重疊在數(shù)據(jù)中已有的點(diǎn)上,而k均值聚類的中心不是。
k-均值聚類與k-medoids聚類
現(xiàn)在我們已經(jīng)研究了k-means和k-medoids聚類,它們幾乎是完全相同的,我們將研究它們之間的區(qū)別以及何時(shí)使用哪種類型的聚類:
計(jì)算復(fù)雜度:在這兩種方法中,k-medoids聚類在計(jì)算上更加復(fù)雜。當(dāng)我們的數(shù)據(jù)集太大(> 10,000點(diǎn))并且我們想要節(jié)省計(jì)算時(shí)間時(shí),相對(duì)于k-medoids聚類,我們更傾向于k-means聚類。
數(shù)據(jù)集是否很大完全取決于可用的計(jì)算能力。
離群值的存在:k均值聚類比離群值更容易對(duì)離群值敏感。
聚類中心:k均值算法和k聚類算法都以不同的方式找到聚類中心。
使用k-medoids聚類進(jìn)行客戶細(xì)分
使用客戶數(shù)據(jù)集執(zhí)行k-means和k-medoids聚類,然后比較結(jié)果。
步驟:
僅選擇兩列,即雜貨店和冷凍店,以方便地對(duì)集群進(jìn)行二維可視化。
使用k-medoids聚類繪制一個(gè)圖表,顯示該數(shù)據(jù)的四個(gè)聚類。
使用k均值聚類繪制四簇圖。
比較兩個(gè)圖,以評(píng)論兩種方法的結(jié)果如何不同。
結(jié)果將是群集的k均值圖,如下所示:

?
圖:集群的預(yù)期k均值圖
確定最佳群集數(shù)
到目前為止,我們一直在研究鳶尾花數(shù)據(jù)集,在該數(shù)據(jù)集中我們知道有多少種花,并根據(jù)這一知識(shí)選擇將數(shù)據(jù)集分為三個(gè)簇。但是,在無(wú)監(jiān)督學(xué)習(xí)中,我們的主要任務(wù)是處理沒(méi)有任何信息的數(shù)據(jù),例如,數(shù)據(jù)集中有多少個(gè)自然簇或類別。同樣,聚類也可以是探索性數(shù)據(jù)分析的一種形式。
聚類指標(biāo)的類型
確定無(wú)監(jiān)督學(xué)習(xí)中最佳聚類數(shù)的方法不止一種。以下是我們將在本章中研究的內(nèi)容:
輪廓分?jǐn)?shù)
彎頭法/ WSS
差距統(tǒng)計(jì)
輪廓分?jǐn)?shù)
輪廓分?jǐn)?shù)或平均輪廓分?jǐn)?shù)計(jì)算用于量化通過(guò)聚類算法實(shí)現(xiàn)的聚類質(zhì)量。
輪廓分?jǐn)?shù)在1到-1之間。如果聚類的輪廓分?jǐn)?shù)較低(介于0和-1之間),則表示該聚類散布開(kāi)或該聚類的點(diǎn)之間的距離較高。如果聚類的輪廓分?jǐn)?shù)很高(接近1),則表示聚類定義良好,并且聚類的點(diǎn)之間的距離較低,而與其他聚類的點(diǎn)之間的距離較高。因此,理想的輪廓分?jǐn)?shù)接近1。
?
計(jì)算輪廓分?jǐn)?shù)
我們學(xué)習(xí)如何計(jì)算具有固定數(shù)量簇的數(shù)據(jù)集的輪廓分?jǐn)?shù):
將iris數(shù)據(jù)集的前兩列(隔片長(zhǎng)度和隔片寬度)放在??iris_data??變量中:
?
執(zhí)行k-means集群:
?
將k均值集群存儲(chǔ)在??km.res??變量中:
?
將所有數(shù)據(jù)點(diǎn)的成對(duì)距離矩陣存儲(chǔ)在??pair_dis??變量中:
?
計(jì)算數(shù)據(jù)集中每個(gè)點(diǎn)的輪廓分?jǐn)?shù):
?
繪制輪廓分?jǐn)?shù)圖:
?
輸出如下:

圖:每個(gè)群集中每個(gè)點(diǎn)的輪廓分?jǐn)?shù)用單個(gè)條形表示
前面的圖給出了數(shù)據(jù)集的平均輪廓分?jǐn)?shù)為0.45。它還顯示了聚類和點(diǎn)聚類的平均輪廓分?jǐn)?shù)。
我們計(jì)算了三個(gè)聚類的輪廓分?jǐn)?shù)。但是,要確定要擁有多少個(gè)群集,就必須計(jì)算數(shù)據(jù)集中多個(gè)群集的輪廓分?jǐn)?shù)。
確定最佳群集數(shù)
針對(duì)k的各個(gè)值計(jì)算輪廓分?jǐn)?shù)來(lái)確定最佳的簇?cái)?shù):
從前面的圖中,選擇得分最高的k值;即2。根據(jù)輪廓分?jǐn)?shù),聚類的最佳數(shù)量為2。
將數(shù)據(jù)集的前兩列(長(zhǎng)度和寬度)放在??iris_data??變量中:
導(dǎo)入? 庫(kù)
繪制輪廓分?jǐn)?shù)與簇?cái)?shù)(最多20個(gè))的圖形:
注意
在第二個(gè)參數(shù)中,可以將k-means更改為k-medoids或任何其他類型的聚類。
輸出如下:

圖:聚類數(shù)與平均輪廓分?jǐn)?shù)
WSS /肘法
為了識(shí)別數(shù)據(jù)集中的聚類,我們嘗試最小化聚類中各點(diǎn)之間的距離,并且平方和(WSS)方法可以測(cè)量該距離? 。WSS分?jǐn)?shù)是集群中所有點(diǎn)的距離的平方的總和。
使用WSS確定群集數(shù)
在本練習(xí)中,我們將看到如何使用WSS確定集群數(shù)。執(zhí)行以下步驟。
將虹膜數(shù)據(jù)集的前兩列(隔片長(zhǎng)度和隔片寬度)放在??iris_data??變量中:
導(dǎo)入??庫(kù)
繪制WSS與群集數(shù)量的圖表
輸出如下:

圖:WSS與群集數(shù)量
在前面的圖形中,我們可以將圖形的肘部選擇為k = 3,因?yàn)樵趉 = 3之后WSS的值開(kāi)始下降得更慢。選擇圖表的肘部始終是一個(gè)主觀選擇,有時(shí)可能會(huì)選擇k = 4或k = 2而不是k = 3,但是對(duì)于這張圖表,很明顯k> 5是不適合k的值,因?yàn)樗鼈儾皇菆D形的肘部,而是圖形的斜率急劇變化的地方。
差距統(tǒng)計(jì)
差距統(tǒng)計(jì)數(shù)據(jù)是在數(shù)據(jù)集中找到最佳聚類數(shù)的最有效方法之一。它適用于任何類型的聚類方法。通過(guò)比較我們觀察到的數(shù)據(jù)集與沒(méi)有明顯聚類的參考數(shù)據(jù)集生成的聚類的WSS值,計(jì)算出Gap統(tǒng)計(jì)量。
因此,簡(jiǎn)而言之,Gap統(tǒng)計(jì)量用于測(cè)量觀察到的數(shù)據(jù)集和隨機(jī)數(shù)據(jù)集的WSS值,并找到觀察到的數(shù)據(jù)集與隨機(jī)數(shù)據(jù)集的偏差。為了找到理想的聚類數(shù),我們選擇k的值,該值使我們獲得Gap統(tǒng)計(jì)量的最大值。
利用間隙統(tǒng)計(jì)量計(jì)算理想的簇?cái)?shù)
在本練習(xí)中,我們將使用Gap統(tǒng)計(jì)信息計(jì)算理想的聚類數(shù)目:
將Iris數(shù)據(jù)集的前兩列(隔片長(zhǎng)度和隔片寬度)放在??iris_data??變量中
?
導(dǎo)入??factoextra??庫(kù)
?
繪制差距統(tǒng)計(jì)與集群數(shù)量(最多20個(gè))的圖表:
?

圖1.35:差距統(tǒng)計(jì)與集群數(shù)量
如上圖所示,Gap統(tǒng)計(jì)量的最大值是k = 3。因此,數(shù)據(jù)集中理想的聚類數(shù)目為3。
找到理想的細(xì)分市場(chǎng)數(shù)量
使用上述所有三種方法在客戶數(shù)據(jù)集中找到最佳聚類數(shù)量:
將變量中的批發(fā)客戶數(shù)據(jù)集的第5列到第6列加載。
用輪廓分?jǐn)?shù)計(jì)算k均值聚類的最佳聚類數(shù)。
用WSS分?jǐn)?shù)計(jì)算k均值聚類的最佳聚類數(shù)。
使用Gap統(tǒng)計(jì)量計(jì)算k均值聚類的最佳聚類數(shù)。
結(jié)果將是三個(gè)圖表,分別代表輪廓得分,WSS得分和Gap統(tǒng)計(jì)量的最佳聚類數(shù)。
最受歡迎的見(jiàn)解
1.R語(yǔ)言k-Shape算法股票價(jià)格時(shí)間序列聚類
2.R語(yǔ)言中不同類型的聚類方法比較
3.R語(yǔ)言對(duì)用電負(fù)荷時(shí)間序列數(shù)據(jù)進(jìn)行K-medoids聚類建模和GAM回歸
4.r語(yǔ)言鳶尾花iris數(shù)據(jù)集的層次聚類
5.Python Monte Carlo K-Means聚類實(shí)戰(zhàn)
6.用R進(jìn)行網(wǎng)站評(píng)論文本挖掘聚類
7.用于NLP的Python:使用Keras的多標(biāo)簽文本LSTM神經(jīng)網(wǎng)絡(luò)
8.R語(yǔ)言對(duì)MNIST數(shù)據(jù)集分析 探索手寫(xiě)數(shù)字分類數(shù)據(jù)
9.R語(yǔ)言基于Keras的小數(shù)據(jù)集深度學(xué)習(xí)圖像分類
?

請(qǐng)選中你要保存的內(nèi)容,粘貼到此文本框