你需要掌握選擇最佳聚類數目的這10個技巧!

點擊上方關注,All in AI中國
你需要掌握選擇最佳聚類數目的這10個技巧!

聚類是最常見的無監督機器學習問題之一。通過一些相似性度量方法把一些觀測值分成同一類。

共有5類聚類方法:

  • 層次法
  • 劃分法(k-means,PAM,CLARA)
  • 基於密度的方法
  • 基於模型的方法
  • 模糊聚類

起初,我寫這篇文章主要是由於我閱讀了關於clustree包,dendextend文檔以及由Alboekadel Kassambara撰寫的factoextra編寫的關於聚類分析的實用指南。

數據集

我將使用集群包中一個鮮為人知的數據集:all.mammals.milk.1956,這是我之前沒有研究過的一個數據集。

數據集傳送門:https://www.rdocumentation.org/packages/cluster.datasets/versions/1.0-1/topics/all.mammals.milk.1956

這個小數據集包含了25種哺乳動物及其牛奶成分(水,蛋白質,脂肪,乳糖,灰分百分比)的清單。

首先讓我們加載所需的包。

你需要掌握選擇最佳聚類數目的這10個技巧!

現在加載數據。

你需要掌握選擇最佳聚類數目的這10個技巧!

讓我們研究並可視化這些數據。

你需要掌握選擇最佳聚類數目的這10個技巧!

所有變量用數字來表示,那麼,統計分佈呢?

你需要掌握選擇最佳聚類數目的這10個技巧!

你需要掌握選擇最佳聚類數目的這10個技巧!

你需要掌握選擇最佳聚類數目的這10個技巧!

你需要掌握選擇最佳聚類數目的這10個技巧!

不同屬性之間的關係是什麼?使用corrplot()創建相關矩陣。

你需要掌握選擇最佳聚類數目的這10個技巧!

你需要掌握選擇最佳聚類數目的這10個技巧!

當您擁有以不同比例測量的變量時,縮放數據很有用。

你需要掌握選擇最佳聚類數目的這10個技巧!

降維可以幫助數據可視化(例如PCA方法)。

你需要掌握選擇最佳聚類數目的這10個技巧!

你需要掌握選擇最佳聚類數目的這10個技巧!

這些是掌握80%差異的5臺PC。scree圖顯示,PC1捕獲了大約75%的方差。

你需要掌握選擇最佳聚類數目的這10個技巧!

你需要掌握選擇最佳聚類數目的這10個技巧!

從這些可視化中可以看出水和乳糖一起增加,蛋白質,灰分和脂肪一起增加;這兩組是負相關的。

Naïve(K-means)方法

分區聚類方法(如k-means和Partitioning Around Medoids(PAM))要求您指定要生成的聚類數。

k-means聚類可能是最著名的分區方法之一。 k均值聚類背後的想法是定義聚類,即在聚類內的總變異量,以最小化聚類的緊湊性。

我們可以使用kmeans()函數計算R中的k-means:

你需要掌握選擇最佳聚類數目的這10個技巧!

上面的示例將數據分組為兩個聚類,center = 2,並嘗試多個初始配置,報告最佳配置。例如,由於此算法對聚類質心的初始位置敏感,因此添加nstart = 30將生成30個初始配置,然後平均所有質心結果。

因為在我們開始之前需要設置聚類(k)的數量,所以事先檢查k的幾個不同值可能會比較有利。

你需要掌握選擇最佳聚類數目的這10個技巧!

你需要掌握選擇最佳聚類數目的這10個技巧!

雖然這種視覺評估告訴我們聚類之間的界定,但它並沒有告訴我們聚類的最佳數量是多少。

確定最優聚類數

文獻中已經提出了各種用於評估聚類結果的措施。術語聚類驗證用於設計評估聚類算法結果的過程。有超過30個索引和方法用於識別最佳聚類數,因此我將重點介紹一些非常簡潔的clustree包。

“肘子”法(“Elbow” Method)

這種方法也比較著名,其中計算並繪製每個聚類數的平方和,並且用戶尋找從陡峭到淺(肘部)的斜率變化以確定最佳數量集群。這種方法不精確,但仍有潛在的幫助。

你需要掌握選擇最佳聚類數目的這10個技巧!

你需要掌握選擇最佳聚類數目的這10個技巧!

這種方法很有用,因為它顯示增加了聚類數量如何以有意義的方式分離聚類,而不是以邊緣的方式。曲線表明除了第三個之外的其他聚類幾乎沒有價值(參見[此處]以獲得更加數學上嚴格的解釋和此方法的實現)。如果不是基於群內方差的簡單解決方案,則肘子法是相當清楚的。差距統計是處理具有沒有明顯聚類的分佈的數據的更復雜的方法(對於球狀的、高斯分佈的、輕度不相交的數據分佈,可以找到正確的k值)。

差距統計

間隙統計量將不同k值的聚類內變化內的總量與它們在數據的空參考分佈下的預期值進行比較。最優聚類的估計將是使得差距統計最大化的值(即,產生最大間隙統計量)。這意味著聚類結構遠離點的隨機均勻分佈。

你需要掌握選擇最佳聚類數目的這10個技巧!

你需要掌握選擇最佳聚類數目的這10個技巧!

gap stats圖顯示了用垂直段繪製的具有標準錯誤的聚類數量(k)和用垂直虛線藍線標記的k的最優值。根據這一觀察,k = 2是數據中最優聚類。

輪廓法

另一種可以幫助確定最優聚類數量的可視化方法稱為輪廓法。平均輪廓方法計算不同k值的觀測值的平均輪廓。群集k的最佳數量是使k的可能值範圍內的平均輪廓最大化的群集。

你需要掌握選擇最佳聚類數目的這10個技巧!

你需要掌握選擇最佳聚類數目的這10個技巧!

這也表明了2個聚類是最優的。

離差平方和法

另一種聚類驗證方法是通過最小化聚類內的平方和(每個聚類有多緊密度的度量)和最大化聚類之間的平方和(每個聚類的分離程度的度量)來選擇最佳聚類數。來自其他人)。

你需要掌握選擇最佳聚類數目的這10個技巧!

你需要掌握選擇最佳聚類數目的這10個技巧!

從這個測量結果來看,7個聚類似乎是合適的選擇。

NbClust

NbClust包提供了30個用於確定相關聚類的索引,並根據不同的聚類數量組合、距離度量和聚類方法得到的不同結果向用戶提出最佳的聚類方案。

你需要掌握選擇最佳聚類數目的這10個技巧!

你需要掌握選擇最佳聚類數目的這10個技巧!

這表明最佳簇聚類數為3。

Clustree

上面的統計方法生成一個每次只考慮一組集群的得分。 clustree R包採用另一種方法,考慮樣本如何隨著聚類數的增加而改變分組。這對於顯示哪些聚類是不同的以及哪些聚類不穩定非常有用。它沒有明確告訴您哪種聚類選擇最佳,但它對於探索可能的選擇很有用。

我們來看看1到11個聚類。

你需要掌握選擇最佳聚類數目的這10個技巧!

你需要掌握選擇最佳聚類數目的這10個技巧!

在該圖中,每個節點的大小對應於每個聚類中的樣本數量,並且箭頭根據每個聚類接收的樣本數量著色。一組單獨的箭頭,即透明的箭頭,稱為傳入節點比例,也是彩色的,並顯示來自一個組的樣本如何最終在另一個組中 - 這是聚類不穩定性的指標。

在該圖中,我們看到當我們從k = 2移動到k = 3時,來自左側聚類的一些物種被重新分配到右側的第三個聚類。當我們從k = 8移動到k = 9時,我們看到一個節點具有多條傳入邊,這表明我們對數據進行了過度聚類。

將此維度疊加在數據中的其他維度上也是有用的,特別是那些來自降維技術的維度。我們可以使用clustree_overlay()函數執行此操作:

你需要掌握選擇最佳聚類數目的這10個技巧!

你需要掌握選擇最佳聚類數目的這10個技巧!

我更喜歡從側面看到它,在分辨率維度上顯示x或y維度之一。

你需要掌握選擇最佳聚類數目的這10個技巧!

你需要掌握選擇最佳聚類數目的這10個技巧!

你需要掌握選擇最佳聚類數目的這10個技巧!

這表明我們可以通過檢查邊緣來指示正確的聚類分辨率,並且我們可以過度信息來評估聚類的質量。

選擇合適的算法

如何選擇合適的聚類算法? cValid包可用於同時比較多個聚類算法,以確定最佳聚類方法和最佳聚類數。我們將比較k-means、分層和PAM聚類。

你需要掌握選擇最佳聚類數目的這10個技巧!

連通性和輪廓是連通性的度量,而Dunn指數是不在同一聚類中的觀測值與最大聚類內距離之間的最小距離的比率。

提取聚類的特徵

我們想回答諸如“什麼使這個聚類與眾不同?”以及“彼此相似的聚類是什麼”之類的問題。

如前所述,很難評估聚類結果的質量。我們沒有真正的標籤,因此聚類是一個很好的EDA起點,可以更詳細地探索這些聚類之間的差異。讓我們選擇五個來看看,並研究下他們的特徵。

你需要掌握選擇最佳聚類數目的這10個技巧!

你需要掌握選擇最佳聚類數目的這10個技巧!

你需要掌握選擇最佳聚類數目的這10個技巧!

你需要掌握選擇最佳聚類數目的這10個技巧!

讓我們提取聚類並將它們添加回我們的初始數據,以便在聚類級別執行一些描述性統計:

你需要掌握選擇最佳聚類數目的這10個技巧!

你需要掌握選擇最佳聚類數目的這10個技巧!

我們看到僅由兔子組成的聚類2具有灰分很高。由海豹和海豚組成的第3組脂肪含量很高,這是有道理的,因為在這樣寒冷的氣候下,第四組的乳糖含量很高。

你需要掌握選擇最佳聚類數目的這10個技巧!

你需要掌握選擇最佳聚類數目的這10個技巧!

你需要掌握選擇最佳聚類數目的這10個技巧!

你需要掌握選擇最佳聚類數目的這10個技巧!

你需要掌握選擇最佳聚類數目的這10個技巧!

你需要掌握選擇最佳聚類數目的這10個技巧!

你需要掌握選擇最佳聚類數目的這10個技巧!

你需要掌握選擇最佳聚類數目的這10個技巧!

你需要掌握選擇最佳聚類數目的這10個技巧!

你需要掌握選擇最佳聚類數目的這10個技巧!

你需要掌握選擇最佳聚類數目的這10個技巧!

你需要掌握選擇最佳聚類數目的這10個技巧!

你需要掌握選擇最佳聚類數目的這10個技巧!

來源:https://towardsdatascience.com/10-tips-for-choosing-the-optimal-number-of-clusters-277e93d72d92

相關推薦

推薦中...