機(jī)器學(xué)習(xí)算法基礎(chǔ):層 次 聚 類 詳 解
↑↑↑點(diǎn)擊上方藍(lán)字,回復(fù)資料,10個(gè)G的驚喜
層次聚類
層次聚類假設(shè)類別之間存在層次結(jié)構(gòu),將樣本聚到層次化的類中。所謂層次就是一層一層的進(jìn)行聚類,可以采用自頂向下的聚類策略(分裂),也可以采用自下而上的策略(凝聚)。
聚合聚類:
開始將每個(gè)樣本各分到一個(gè)類,之后將距離相近的兩類合并,建立一個(gè)新的類,重復(fù)此操作直到滿足停止條件,得到層次化的類別。
分裂聚類:
開始將所有的樣本分到一個(gè)類,之后將已有類中相距最遠(yuǎn)的樣本分到兩個(gè)新的類,重復(fù)此操作直到滿足停止條件,得到層次化的類別。
簇間的距離度量
合并或拆分層次聚類算法都是基于簇間相似度進(jìn)行的,每個(gè)簇類包含了一個(gè)或多個(gè)樣本點(diǎn),通常用距離評(píng)價(jià)簇間或樣本間的相似度,即距離越小相似度越高,距離越大相似度越低。1.最小距離法
最小距離法是指以所有簇間樣本點(diǎn)距離的最小值作為簇間距離的度量,但是該方法非常容易受到極端值的影響。
2.最大距離法
最大距離法是指以所有簇間樣本點(diǎn)距離的最大值作為簇間距離的度量,同樣,該方法也容易受到極端值的影響。
3.平均距離法
最小距離法和最大距離法都容易受到極端值的影響,可以使用平均距離法對(duì)如上兩種方法做折中處理,即以所有簇間樣本點(diǎn)距離的平均值作為簇間距離的度量。
層次聚類的步驟
在理解有關(guān)點(diǎn)與點(diǎn)、點(diǎn)與簇和簇與簇之間的距離度量標(biāo)準(zhǔn)之后,就需要進(jìn)一步掌握層次聚類算法是如何實(shí)現(xiàn)樣本點(diǎn)聚類的。層次聚類的步驟如下:
(1)將數(shù)據(jù)集中的每個(gè)樣本點(diǎn)當(dāng)作一個(gè)類別。
(2)計(jì)算所有樣本點(diǎn)之間的兩兩距離,并從中挑選出最小距離的兩個(gè)點(diǎn)構(gòu)成一個(gè)簇。
(3)繼續(xù)計(jì)算剩余樣本點(diǎn)之間的兩兩距離和點(diǎn)與簇之間的距離,然后將最小距離的點(diǎn)或簇合并到一起。
(4)重復(fù)步驟(2)和(3),直到滿足聚類的個(gè)數(shù)或其他設(shè)定的條件,便結(jié)束算法的運(yùn)行。
如上的4個(gè)步驟可能理解起來比較困難,下圖的GIF比較形象:
參數(shù)
sklearn.cluster.AgglomerativeClustering(n_clusters=2, affinity=’euclidean’, memory=None, connectivity=None, compute_full_tree=’auto’, linkage=’ward’, pooling_func= )
n_clusters:用于指定樣本點(diǎn)聚類的個(gè)數(shù),默認(rèn)為2。
affinity:用于指定樣本間距離的衡量指標(biāo),可以是歐氏距離、曼哈頓距離、余弦相似度等,默認(rèn)為'euclidean';如果參數(shù)linkage為'ward',該參數(shù)只能設(shè)置為歐氏距離。
memory:是否指定緩存結(jié)果的輸出,默認(rèn)為否;如果該參數(shù)設(shè)置為一個(gè)路徑,最終將把計(jì)算過程的緩存輸出到指定的路徑中。
connectivity:用于指定一個(gè)連接矩陣。
compute_full_tree:通常情況下,當(dāng)聚類過程達(dá)到n_clusters時(shí),算法就會(huì)停止,如果該參數(shù)設(shè)置為True,則表示算法將生成一棵完整的凝聚樹。
linkage:用于指定簇間距離的衡量指標(biāo),默認(rèn)為'ward',表示最小距離法;如果為'complete',則表示使用最大距離法;如果為'average',則表示使用平均距離法。
層次聚類案例
層次聚類還是比較簡(jiǎn)單易用的,下面是經(jīng)典的鷲尾花數(shù)據(jù)集。每朵鳶尾花有4個(gè)數(shù)據(jù),分別為萼片長(zhǎng)(單位:厘米)、萼片寬(單位厘米)、花瓣長(zhǎng)度(單位厘米)和花瓣寬(單位厘米)。我們希望能找到可行的方法可以按每朵花的4個(gè)數(shù)據(jù)的差異將這些鳶尾花分成若干類,讓每一類盡可能的準(zhǔn)確,以便幫助植物專家對(duì)這些花進(jìn)行進(jìn)一步的分析。
可視化輸出結(jié)果如下:

↓↓↓我的朋友圈更精彩↓ 推薦閱讀
(點(diǎn)擊標(biāo)題可跳轉(zhuǎn)閱讀)
數(shù)學(xué)家萊布尼茨:一個(gè)千古絕倫的大智者
機(jī)器學(xué)習(xí)論文清單:GitHub 2300+星
機(jī)器學(xué)習(xí)模型調(diào)參指南(附代碼)老鐵,三連支持一下,好嗎?↓↓↓



