理解數據分析中層次聚類的概念:函數、類型和步驟

已發表: 2023-04-08

聚類是指在數據分析中將相似的數據分組或聚類。 這些集群幫助數據分析師將相似的數據點組織成一組,同時將它們與其他不相似的數據區分開來。

數據的層次聚類是用於將數據分組到聚類樹中的方法之一。 它是最流行和最有用的數據分組方法之一。 如果您想成為不斷發展的數據科學和數據分析領域的一員,層次聚類是最重要的學習內容之一。

本文將幫助您了解層次聚類的本質、它的功能、類型和優點。

目錄

什麼是層次聚類?

顧名思義,層次聚類以層次或樹的形式將不同的數據分組到聚類中。 在此方法中,每個數據點都被視為一個單獨的集群。 分層聚類分析在數據科學家和數據分析師中非常流行,因為它將數據匯總到易於分析的可管理的聚類層次結構中。

層次聚類算法採用多個不同的數據點,並採用兩者中最接近的數據點來進行聚類。 它重複這些步驟,直到所有數據點變成一個集群。 該過程也可以倒轉,將一個合併的集群劃分為不同的較小集群,並最終劃分為數據點。

聚類的層次方法可以直觀地表示為樹狀圖,它是一種樹狀圖。 當已生成所需數量的聚類時,可以在聚類過程中的任何時候切斷樹狀圖。 這也使分析數據的過程更加容易。

層次聚類如何工作?

層次聚類的過程很容易理解。 層次聚類算法將所有可用數據集視為不同的聚類。 然後,它識別出最相似的兩個數據集並將它們合併到一個集群中。 之後,系統不斷重複這些步驟,直到所有數據點合併成一個大集群。 一旦所需數量的簇可用於分析,也可以停止該過程。

層次聚類過程的進展和輸出可以可視化為樹狀圖,它可以幫助您識別不同聚類之間的關係以及它們在本質上的相似或不同。

層次聚類的類型

可以以兩種不同的方式使用層次聚類算法。 以下是您可以使用的兩種層次聚類的特徵。

1.凝聚層次聚類

凝聚方法是更廣泛使用的層次聚類數據的方法。 在這種方法中,算法會呈現多個不同的數據集,每個數據集都被視為自己的一個集群。 然後,該算法開始根據它們彼此之間的相似程度將它們組合成兩個簇。 它重複這些步驟,直到達到所需的簇數。 這種方法在層次聚類分析中應用較多

2.分裂層次聚類

層次聚類的分裂法與凝聚法相反。 在這種方法中,算法呈現出一個包含大量數據點的大型集群,它根據它們的差異逐步區分這些數據點。 這會導致具有不同屬性的多個數據集。 分裂法在實踐中並不經常使用。

從世界頂尖大學在線學習數據科學課程 獲得執行 PG 課程、高級證書課程或碩士課程,以快速推進您的職業生涯。

層次聚類的步驟

如前所述,數據的層次聚類主要分為三個步驟。

  1. 識別兩個不同數據點之間的相似性。
  2. 將它們合併為一個集群。
  3. 對所有數據點重複這些步驟,直到它們合併為一個大數據集群。

但是,記住如何在層次聚類中識別相似點也很重要。 如果您研究算法生成的樹狀圖,您可以輕鬆識別每個不同簇的中心點。 樹狀圖中彼此距離最小的聚類最相似。 這就是為什麼它也被稱為基於距離的算法的原因。 樹狀圖中一個聚類與所有其他聚類之間的相似性稱為鄰近矩陣。

在使用層次聚類時,您還必須選擇正確的距離度量。 例如,根據你選擇的距離度量是他們的性別還是教育背景,涉及同一個人信息的數據集將產生不同的樹狀圖。

閱讀我們流行的數據科學文章

數據科學職業道路:綜合職業指南 數據科學職業發展:工作的未來就在這裡 為什麼數據科學很重要? 數據科學為企業帶來價值的 8 種方式
數據科學對管理者的相關性 每個數據科學家都應該擁有的終極數據科學備忘單 你應該成為數據科學家的 6 大理由
數據科學家的一天:他們做什麼? 神話破滅:數據科學不需要編碼 商業智能與數據科學:有什麼區別?

層次聚類 Python

現在您對層次聚類有了清晰的認識,讓我們看看如何使用Python 進行層次聚類 以下是使用 Python 的“scikit-learn”執行層次聚類的情況

讓我們假設在具有六個觀測值的數據集中有兩個變量(xy):

觀察X
1個1個1個
2個2個1個
3個4個3個
4個5個4個
5個6個5個
6個7 5個

作為散點圖,這就是這些觀察結果的可視化方式:

Python

將 numpy 導入為

NP

將 matplotlib.pyplot 導入為 plt

# 定義數據集

X = np.array([[ 1,1], [2,1], [4,3], [5,4], [6,5], [7,5]])

# 繪製數據

plt.scatter(X[:, 0], X[:,1])

plt.show()

此圖中有兩組觀察結果 - 一組包含較低的xy,另一組包含較高的xy

您可以使用“scikit learn”對此數據集執行層次聚類。

圖中的兩組觀察值具有不同的值。 一個包含較高的xy,另一個包含較低的值。

查看我們的免費數據科學課程,在競爭中脫穎而出。

在我們之前討論的兩種主要的層次聚類方法中,我們將使用凝聚聚類方法和“病房”鏈接方法。'ward'方法最大限度地減少了合併在一起的簇的變化,因此產生了大小和形狀相似的簇。

探索我們的熱門數據科學課程

IIITB 的數據科學執行研究生課程 商業決策數據科學專業證書課程 亞利桑那大學數據科學碩士
IIITB 的數據科學高級證書課程 馬里蘭大學數據科學和商業分析專業證書課程 數據科學課程

Python

sklearn.cluster導入AgglomerativeClustering

# 進行層次聚類

聚類 AgglomerativeClustering (n_clusters= 2, linkage='ward').fit(X)

這裡使用了n-clusters ”參數來指定我們需要兩個集群。

當我們繪製它們時,我們可以為每個集群使用不同的顏色:

Python

# 繪製集群

顏色= np.array([' r', 'b'])

plt.scatter (X[:, 0], X[:,1], c=colors [clustering.labels_])

plt.show()

數據中的兩個簇已被聚類算法正確識別。 您還可以使用聚類算法為每個觀察分配的標籤:

Python

打印(聚類.labels_)

銳化

[ 0 0 1 1 1 1]

最後四個觀察值被分配到聚類 1,而前兩個被分配到聚類 0。

如果你想可視化這些集群的層次結構,你可以生成一個樹狀圖來這樣做:

Python

scipy.cluster.hierarchy導入樹狀圖,鏈接

# 計算鏈接矩陣

Z = linkage(X, '病房')

# 繪製樹狀圖

樹狀圖(Z)

plt.show()

樹狀圖可以幫助我們可視化合併集群的層次結構。

需要學習的頂級數據科學技能

需要學習的頂級數據科學技能
1個 數據分析課程 推理統計課程
2個 假設檢驗程序 邏輯回歸課程
3個 線性回歸課程 線性代數分析

結論

數據聚類是數據科學和數據分析中非常重要的一部分。 如果你想學習不同的聚類方法,那麼 upGrad 可以幫助你開啟你的學習之旅! 借助大師班、行業課程、指導課程、Python 編程訓練營和現場學習課程,upGrad 的數據科學理學碩士是一門專為專業人士設計的課程,旨在讓他們在競爭中脫穎而出。

該課程在亞利桑那大學的指導下開設,通過前沿課程、與行業專家的沉浸式學習體驗和就業機會,提升您的數據科學職業生涯。

問:為什麼我們在數據科學中進行層次聚類?

層次聚類用於根據各種相似屬性對數據進行分組。 將數據方面分佈在視覺上可理解的組中,可以通過輕鬆查看樹狀圖來簡化其實際實施。

問:什麼是層次聚類?

層次聚類是一種廣泛使用的對通過社交網站生成的數據進行分組的形式。 使用這些數據,分析師可以獲得相關的寶貴見解,以增強他們的業務流程並增加收入。

問:層次聚類的局限性是什麼?

層次聚類不適合混合類型或缺失數據。 層次聚類的另一個限制是它不能很好地處理大量數據。