R 中的聚類分析:您將永遠需要的完整指南 [2022]
已發表: 2021-01-04如果你曾經涉足數據科學或 Python 的世界,你就會聽說過 R。
R 是作為 GNU 項目開發的,它既是一種語言,又是一種為圖形和統計計算而設計的環境。 它類似於 S 語言,因此可以被視為它的實現。
作為一門語言,R 是高度可擴展的。 它提供了各種統計和圖形技術,如時間序列分析、線性建模、非線性建模、聚類、分類、經典統計測試。
我們將更深入地探索這些技術之一,那就是聚類或聚類分析!
目錄
什麼是聚類分析?
用最簡單的術語來說,聚類是一種數據分割方法,根據相似性將數據分成幾組。
如何評估相似性? 在觀測距離測量的基礎上。 這些可以是歐幾里得或基於相關的距離測量。
聚類分析是數據分析和數據挖掘中最流行且直觀的方法之一。 它非常適合存在大量數據並且我們必須從中提取見解的情況。 在這種情況下,可以將批量數據分解為更小的子集或組。
從整個數據集中形成和派生的小組稱為集群。 這些是通過執行一個或多個統計操作獲得的。 每個集群雖然包含不同的元素,但共享以下屬性:
- 他們的人數事先不知道。
- 它們是通過執行統計操作獲得的。
- 每個集群都包含相似且具有共同特徵的對象。
即使沒有聚類分析的“花哨”名稱,在日常生活中也經常使用相同的名稱。
在個人層面上,我們將外出度假時需要打包的東西組合在一起。 先是衣服,然後是洗漱用品,然後是書,等等。 我們製作類別,然後單獨處理它們。
公司在對電子郵件列表進行細分並根據年齡、經濟背景、以前的購買行為等對客戶進行分類時,也會使用聚類分析。
聚類分析也稱為“無監督機器學習”或模式識別。 無監督,因為我們不希望僅對特定樣本中的特定樣本進行分類。 學習是因為算法還學習如何聚類。
3 聚類方法
我們有三種最常用於聚類的方法。 這些是:
- 凝聚層次聚類
- 關係聚類/Condorcet 方法
- k-均值聚類
1. 凝聚層次聚類
這是最常見的層次聚類類型。 AHC 的算法以自下而上的方式工作。 它首先將每個數據點視為一個集群(稱為葉子)。
然後它將最相似的兩個集群組合在一起。 這些新的更大的集群稱為節點。 重複分組,直到整個數據集組合成一個稱為根的大集群。
可視化和繪製 AHC 過程的每個步驟會導致生成稱為樹狀圖的樹。
反轉 AHC 過程會導致分裂聚類和聚類的生成。
樹狀圖也可以可視化為:
資源
總之,如果您想要一個擅長識別小集群的算法,請選擇 AHC。 如果您想要一種擅長識別大型集群的方法,那麼分裂式聚類方法應該是您的選擇。
2.關係聚類/Condorcet方法
“通過相似性聚合聚類”是此方法的另一個名稱。 它的工作原理如下:
比較建立全局聚類的成對的單個對象。 為向量 m(A, B) 和 d(A, B) 分配一對單獨的值 (A, B)。 在向量 b(A, B) 中,A 和 B 都具有相同的值,而在向量 d(A, B) 中,它們都具有不同的值)。
據說 A 和 B 的兩個單獨的值遵循如下的 Condorcet 準則:

c(A, B) = m(A, B)- d(A, B)
對於像 A 這樣的單個值和稱為 S 的集群,Condorcet 標準為:
c(A,S) = Σ i c(A,B i )
總和為 Bi ∈ S。
在滿足上述條件的情況下,構造 c(A, S) 形式的簇。 A 的最小值可以為 0,並且是集群中所有數據點中最大的。
最後,計算全局孔多塞準則。 這是通過對 A 中存在的各個數據點和包含它們的集群S A進行求和來完成的。
重複上述步驟,直到全局 Condorcet 準則沒有改進或達到最大迭代次數。
3. k-means 聚類
這是最流行的分區算法之一。 所有可用數據(有時也稱為數據點/觀察)將僅分組到這些集群中。 以下是算法如何進行的細分:
- 隨機選擇k個簇。 這k行也意味著為每個集群找到k個質心。
- 然後將每個數據點分配給最接近它的質心。
- 隨著越來越多的數據點被分配,質心被重新計算為添加的所有數據點的平均值。
- 繼續分配數據點並根據需要移動質心。
- 重複步驟 3 和 4,直到沒有數據點更改集群。
使用以下方法之一計算數據點和質心之間的距離:
- 歐幾里得距離
- 曼哈頓距離
- 明洛夫斯基距離
其中最流行的 - 歐幾里得距離 - 計算如下:
每次運行算法時,都會返回不同的組作為結果。 對變量k的第一次賦值是完全隨機的。 這使得 k-means 對第一選擇非常敏感。 結果,除非組的數量和總體觀察值很小,否則幾乎不可能獲得相同的聚類。
如何給一開始,我們將隨機分配一個值給k ,這將指示結果的方向。為確保做出最佳選擇,記住以下公式會很有幫助:
這裡, n是數據集中數據點的數量。
無論是否存在公式,聚類的數量在很大程度上取決於數據集的性質、所屬的行業和業務等。因此,建議也注意自己的經驗和直覺。
使用錯誤的集群大小,分組可能不會那麼有效並且可能導致過度擬合。 由於過度擬合,新的數據點可能無法在集群中找到位置,因為算法已經漏掉了小細節並且所有的泛化都丟失了。
聚類分析的應用
那麼,強大的聚類方法到底用在了哪裡呢? 我們在上面粗略地提到了幾個例子。 以下是更多實例:
醫藥與健康
根據患者的年齡和基因構成,醫生能夠提供更好的診斷。 這最終會導致更有益和一致的治療。 也可以通過這種方式發現新藥。 醫學中的聚類被稱為疾病學。
社會學
在社會領域,根據人口統計、年齡、職業、居住地點等對人群進行聚類有助於政府執行法律並製定適合不同群體的政策。
營銷
在市場營銷中,術語聚類被細分/類型分析所取代。 它用於探索和選擇特定產品的潛在買家。 然後,公司測試每個集群的元素,以了解哪些客戶表現出支持保留的行為。
網絡分析
作為將在此實施的聚類算法的輸入,輸入用戶訪問過的網頁。 然後將這些網頁聚集在一起。 最後,根據用戶的瀏覽活動生成用戶的個人資料。 從個性化到網絡安全,這個結果可以在任何地方得到利用。
零售
奧特萊斯還受益於根據年齡、顏色偏好、風格偏好、過去購買等對客戶進行聚類。這有助於零售商創造定制體驗,並規劃符合客戶需求的未來產品。
結論
很明顯,聚類分析是一種非常有價值的方法——無論它是在何種語言或環境中實現的。無論是想獲得洞察力、找出模式還是挖掘配置文件,聚類分析都是一種非常有用的工具,其結果可以得到實際執行。 熟練使用各種聚類算法可以導致執行準確且真正有價值的數據分析。
學習世界頂尖大學的數據科學課程。 獲得行政 PG 課程、高級證書課程或碩士課程,以加快您的職業生涯。