使用樹狀圖做層次聚類分析
最新
05-22
一、實驗目的
如果您以前從未使用過樹狀圖,那麼使用樹狀圖是查看多維數據如何聚集在一起的好方法。 在這本筆記本中,我將簡單探索通過層次分析,藉助樹狀圖將其可視化。
二、層次分析
層次分析是聚類分析的一種,scipy有這方面的封裝包。
linkage函數從字面意思是鏈接,層次分析就是不斷鏈接的過程,最終從n條數據,經過不斷鏈接,最終聚合成一類,演算法就此停止。
dendrogram是用來繪製樹形圖的函數。
三、實驗數據
grain_variety是標籤,其他列為多種屬性的值(特徵)。
四、使用linkage對samples進行層次聚類
sacipy中y是距離矩陣,我對此只是傻傻的理解成特徵矩陣。 矩陣是(m*n) ,其中m行代表m條記錄,n代表n個特徵
返回結果X是(m-1)*4的矩陣。 具體含義請看下面的案例
層次分析圖從上到下看,依次是枝和葉。
第一列和第二列代表類標籤,包含葉子和枝子。
第三列代表葉葉(或葉枝,枝枝)之間的距離
第四列代表該層次類中含有的樣本數(記錄數)
五、不同的層次聚類演算法
method是指計算類間距離的方法,比較常用的有3種:
(1)single:最近鄰,把類與類間距離最近的作為類間距
(2)average:平均距離,類與類間所有pairs距離的平均
(3)complete:最遠鄰,把類與類間距離最遠的作為類間距
我們寫曾側分析法函數,看看不同的method從圖中有什麼區別
由於數據量比較少,complete和average方法做出來的圖完全一樣。
如果您還有疑問,可掃下方小程序碼向大鄧提問,大鄧知無不言言無不盡!
往期文章
※好歌推薦:遺失的美好——有的人說不清哪裡好,但就是誰都替代不了
※招商蛇口「變天」:副董事長離職 總部架構大調整
TAG:全球大搜羅 |