日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

层次聚类算法的原理及实现Hierarchical Clustering

發(fā)布時間:2023/12/31 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 层次聚类算法的原理及实现Hierarchical Clustering 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

層次聚類算法的原理及實現(xiàn)Hierarchical Clustering


層次聚類(Hierarchical Clustering)是聚類算法的一種,通過計算不同類別數(shù)據(jù)點間的相似度來創(chuàng)建一棵有層次的嵌套聚類樹。在聚類樹中,不同類別的原始數(shù)據(jù)點是樹的最低層,樹的頂層是一個聚類的根節(jié)點。創(chuàng)建聚類樹有自下而上合并和自上而下分裂兩種方法,本篇文章介紹合并方法。

層次聚類的合并算法

層次聚類的合并算法通過計算兩類數(shù)據(jù)點間的相似性,對所有數(shù)據(jù)點中最為相似的兩個數(shù)據(jù)點進行組合,并反復(fù)迭代這一過程。簡單的說層次聚類的合并算法是通過計算每一個類別的數(shù)據(jù)點與所有數(shù)據(jù)點之間的距離來確定它們之間的相似性,距離越小,相似度越高。并將距離最近的兩個數(shù)據(jù)點或類別進行組合,生成聚類樹。

歐幾里德距離矩陣

層次聚類使用歐式距離來計算不同類別數(shù)據(jù)點間的距離(相似度)。我們在前面的幾篇文章中都曾經(jīng)介紹過歐氏距離的計算方法,本篇文章將通過創(chuàng)建一個歐式距離矩陣來計算和對比不同類別數(shù)據(jù)點間的距離,并對距離值最小的數(shù)據(jù)點進行組合。以下是歐式距離的計算公式。

以下為示例數(shù)據(jù),我們通過歐氏距離計算下面A到G的歐式距離矩陣,并通過合并的方法將相似度最高的數(shù)據(jù)點進行組合,并創(chuàng)建聚類樹。

創(chuàng)建歐式距離矩陣的方法很簡單,將每個類別的數(shù)據(jù)點分別與A-G中的每個數(shù)據(jù)點計算距離值,其中A—>B表示數(shù)據(jù)點A到數(shù)據(jù)點B的距離,B—>A則代表數(shù)據(jù)點B到數(shù)據(jù)點A的距離。這兩個距離值是相同的,因此歐式距離矩陣呈對角線對稱(綠色部分和藍色部分)。其中對角線的0值是數(shù)據(jù)點與自己的距離值。我們將所有數(shù)據(jù)點間的距離結(jié)果進行對比,選擇其中距離最近的兩個數(shù)據(jù)點進行組合,并迭代這一過程。下圖顯示了歐式矩陣的邏輯和計算方法。

數(shù)據(jù)點之間的距離 ???

對于示例中的數(shù)據(jù)點,我們通過計算獲得了下面的歐式距離矩陣。其中數(shù)據(jù)點B到數(shù)據(jù)點C的距離在所有的距離值中最小,為1.00。以下為數(shù)據(jù)點間距離值的計算公式。

經(jīng)過計算數(shù)據(jù)點B和數(shù)據(jù)點C與其他數(shù)據(jù)點相比有最高的相似度。因此,我們將數(shù)據(jù)點B和數(shù)據(jù)點C進行組合。并再次計算其他數(shù)據(jù)點間的距離。

數(shù)據(jù)點與組合數(shù)據(jù)點間的距離

將數(shù)據(jù)點B與數(shù)據(jù)點C進行組合后,重新計算各類別數(shù)據(jù)點間的距離矩陣。數(shù)據(jù)點間的距離計算方式與之前的方法一樣。這里需要說明的是組合數(shù)據(jù)點(B,C)與其他數(shù)據(jù)點間的計算方法。當(dāng)我們計算(B,C)到A的距離時,需要分別計算B到A和C到A的距離均值。

經(jīng)過計算數(shù)據(jù)點D到數(shù)據(jù)點E的距離在所有的距離值中最小,為1.20。這表示在當(dāng)前的所有數(shù)據(jù)點中(包含組合數(shù)據(jù)點),D和E的相似度最高。因此我們將數(shù)據(jù)點D和數(shù)據(jù)點E進行組合。并再次計算其他數(shù)據(jù)點間的距離。

后面的工作就是不斷的重復(fù)計算數(shù)據(jù)點與數(shù)據(jù)點,數(shù)據(jù)點與組合數(shù)據(jù)點間的距離。這個步驟應(yīng)該由程序來完成。這里由于數(shù)據(jù)量較小,我們手工計算并列出每一步的距離計算和數(shù)據(jù)點組合的結(jié)果。

這一步中,數(shù)據(jù)點A和數(shù)據(jù)點F的距離值在所有距離值中最小,因此我們將A和F進行組合,生成組合數(shù)據(jù)點(A,F)。

到此為止除了數(shù)據(jù)點G以外,其他的數(shù)據(jù)點都已經(jīng)根據(jù)距離值(相似度)進行了組合。聚類樹的最底層已經(jīng)完成。下面我們將繼續(xù)計算組合數(shù)據(jù)點間的距離,并對相似度最高的組合數(shù)據(jù)點進行合并。

兩個組合數(shù)據(jù)點間的距離

計算兩個組合數(shù)據(jù)點間距離的方法有三種,分別為Single Linkage,Complete Linkage和Average Linkage。在開始計算之前,我們先來介紹下這三種計算方法以及各自的優(yōu)缺點。

Single Linkage

Single Linkage的計算方法是將兩個組合數(shù)據(jù)點中距離最近的兩個數(shù)據(jù)點間的距離作為這兩個組合數(shù)據(jù)點的距離。這種方法容易受到極端值的影響。兩個很相似的組合數(shù)據(jù)點可能由于其中的某個極端的數(shù)據(jù)點距離較近而組合在一起。

Complete Linkage

Complete Linkage的計算方法與Single Linkage相反,將兩個組合數(shù)據(jù)點中距離最遠的兩個數(shù)據(jù)點間的距離作為這兩個組合數(shù)據(jù)點的距離。Complete Linkage的問題也與Single Linkage相反,兩個不相似的組合數(shù)據(jù)點可能由于其中的極端值距離較遠而無法組合在一起。

Average Linkage

Average Linkage的計算方法是計算兩個組合數(shù)據(jù)點中的每個數(shù)據(jù)點與其他所有數(shù)據(jù)點的距離。將所有距離的均值作為兩個組合數(shù)據(jù)點間的距離。這種方法計算量比較大,但結(jié)果比前兩種方法更合理。

我們使用Average Linkage計算組合數(shù)據(jù)點間的距離。下面是計算組合數(shù)據(jù)點(A,F)到(B,C)的距離,這里分別計算了(A,F)和(B,C)兩兩間距離的均值。

?

通過計算及對比不同組合數(shù)據(jù)點間間的距離。(A,F)到(B,C)的距離在所有組合數(shù)據(jù)點間最小,為13.25。說明(A,F)到(B,C)相似度最高。因此,將(A,F)到(B,C)組合為(A,F,B,C)。

使用與之前相同的方法計算出組合數(shù)據(jù)點(D,E)和G的距離在目前所有組合數(shù)據(jù)點中最小。為34.70。將(D,E)和G組合為(D,E,G)。

最終,通過計算和合并,我們獲得了兩個組合數(shù)據(jù)點(A,F,B,C)和(D,E,G)。這也是聚類樹的最頂層的兩個數(shù)據(jù)點。下面,我們按之前的計算步驟來構(gòu)建聚類樹。

?

層次聚類樹狀圖

將前面的每一步的計算結(jié)果以樹狀圖的形式展現(xiàn)出來就是層次聚類樹。最底層是原始A到G的7個數(shù)據(jù)點。依照7個數(shù)據(jù)點間的相似度組合為聚類樹的第二層(A,F),(B,C),(D,E)和G。以此類推生成完整的層次聚類樹狀圖。以下為簡單的示意圖。

—【所有文章及圖片版權(quán)歸 藍鯨(王彥平)所有。歡迎轉(zhuǎn)載,但請注明轉(zhuǎn)自“藍鯨網(wǎng)站分析博客”。】—

?

FILED UNDER:?網(wǎng)站數(shù)據(jù)分析?TAGGED WITH:?HIERARCHICAL CLUSTERING

Co



Read more:?http://bluewhale.cc/2016-04-19/hierarchical-clustering.html#ixzz50SsD0zfp

總結(jié)

以上是生活随笔為你收集整理的层次聚类算法的原理及实现Hierarchical Clustering的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。