柚子快報(bào)激活碼778899分享:數(shù)據(jù)挖掘 層次聚類算法
柚子快報(bào)激活碼778899分享:數(shù)據(jù)挖掘 層次聚類算法
動(dòng)動(dòng)發(fā)財(cái)?shù)男∈?,點(diǎn)個(gè)贊吧!
層次聚類是一種構(gòu)建聚類層次結(jié)構(gòu)的聚類算法。該算法從分配給它們自己的集群的所有數(shù)據(jù)點(diǎn)開始。然后將兩個(gè)最近的集群合并到同一個(gè)集群中。最后,當(dāng)只剩下一個(gè)集群時(shí),該算法終止。
可以通過觀察樹狀圖來選擇最能描述不同組的簇?cái)?shù)的決定。聚類數(shù)的最佳選擇是樹狀圖中垂直線的數(shù)量,該水平線可以垂直橫穿最大距離而不與聚類相交。
1. 簡介
層次聚類(Hierarchical clustering)是一種常見的聚類算法,它將數(shù)據(jù)點(diǎn)逐步地合并成越來越大的簇,直到達(dá)到某個(gè)停止條件。層次聚類可以分為兩種方法:自下而上的聚合法(agglomerative)和自上而下的分裂法(divisive)。在聚合法中,每個(gè)數(shù)據(jù)點(diǎn)最初被視為一個(gè)單獨(dú)的簇,然后每次迭代將距離最近的兩個(gè)簇合并為一個(gè)新的簇,直到所有點(diǎn)都合并成一個(gè)大簇。在分裂法中,最初的簇被視為一個(gè)單獨(dú)的簇,然后每次迭代將當(dāng)前簇中距離最遠(yuǎn)的兩個(gè)點(diǎn)分成兩個(gè)新的簇,直到每個(gè)點(diǎn)都是一個(gè)簇為止。
2. 工作原理
使每個(gè)數(shù)據(jù)點(diǎn)成為單點(diǎn)簇→形成N個(gè)簇
取距離最近的兩個(gè)數(shù)據(jù)點(diǎn),使之成為一個(gè)簇→形成N-1個(gè)簇
取最近的兩個(gè)簇并使它們成為一個(gè)簇→形成N-2個(gè)簇。
重復(fù)第 3 步,直到只剩下一個(gè)集群。
有幾種方法可以測量聚類之間的距離以確定聚類規(guī)則,它們通常稱為鏈接方法。一些常見的鏈接方法是:
完全鏈接:兩個(gè)集群之間的距離定義為每個(gè)集群中兩點(diǎn)之間的最長距離。
單鏈接:兩個(gè)集群之間的距離定義為每個(gè)集群中兩點(diǎn)之間的最短距離。此鏈接可用于檢測數(shù)據(jù)集中的高值,這些值可能是異常值,因?yàn)樗鼈儗⒃谧詈蠛喜ⅰ?/p>
平均鏈接:兩個(gè)聚類之間的距離定義為一個(gè)聚類中的每個(gè)點(diǎn)與另一個(gè)聚類中的每個(gè)點(diǎn)之間的平均距離。
Centroid-linkage:找到聚類1的質(zhì)心和聚類2的質(zhì)心,然后在合并前計(jì)算兩者之間的距離。
不同的鏈接方法導(dǎo)致不同的集群。
3. 樹狀圖
樹狀圖是一種顯示不同數(shù)據(jù)集之間的層次關(guān)系。正如已經(jīng)說過的,樹狀圖包含了層次聚類算法的記憶,因此只需查看樹狀圖就可以知道聚類是如何形成的。
4. Code
import?numpy?as?npfrom?scipy.cluster.hierarchy?import?dendrogram,?linkageimport?matplotlib.pyplot?as?plt#?生成隨機(jī)數(shù)據(jù)np.random.seed(0)X?=?np.random.randn(15,?2)#?計(jì)算距離矩陣Z?=?linkage(X,?'ward')#?繪制樹形圖plt.figure(figsize=(10,?5))plt.title('Hierarchical?Clustering?Dendrogram')plt.xlabel('Sample?index')plt.ylabel('Distance')dendrogram(????Z,????leaf_rotation=90.,????leaf_font_size=8.,)plt.show()
在這個(gè)示例中,我們首先使用NumPy生成了一個(gè)隨機(jī)的二維數(shù)據(jù)集X,其中包含15個(gè)樣本。然后,我們使用SciPy中的linkage函數(shù)計(jì)算距離矩陣Z,這里使用了“ward”方法來計(jì)算簇之間的距離。最后,我們使用Matplotlib來繪制樹形圖,其中l(wèi)eaf_rotation和leaf_font_size參數(shù)用于調(diào)整葉子節(jié)點(diǎn)的旋轉(zhuǎn)角度和字體大小。
這個(gè)示例中生成的樹形圖顯示了不同樣本之間的距離,并且根據(jù)距離合并了不同的簇??梢酝ㄟ^樹形圖來確定最優(yōu)的簇的數(shù)量,可以在圖中找到最大距離的位置,然后畫一條水平線,這個(gè)水平線和垂直線的交點(diǎn)就是最優(yōu)的簇的數(shù)量。
本文由 mdnice 多平臺發(fā)布
柚子快報(bào)激活碼778899分享:數(shù)據(jù)挖掘 層次聚類算法
相關(guān)文章
本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場。
轉(zhuǎn)載請注明,如有侵權(quán),聯(lián)系刪除。