你是對的'Scipy.clustering.hierarchy包'是正確的,這裏有一些python僞代碼來向你展示大概的想法。
從您的陳述'到目前爲止,我已經能夠從輸入中繪製圖形'。 我假設你有一個美好的開始獲取數據輸入到蟒蛇等..
開始蟒蛇聚類僞代碼
我至少需要這些Python包
import scipy.cluster.hierarchy as sch
import numpy as np
import sys
你需要一個「距離度量」,如果輸入的數據是「串」,那麼你會使用這樣的
from Levenshtein import jaro
從標籤的距離矩陣
distanceMatrixDimension= len(p_names)
得到的上三角
upper_triangle=np.triu_indices(distanceMatrixDimension,1)
的座標獲得的距離得到的矩陣尺寸 distances=np.apply_along_axis(dis,0,upper_triangle)
開始從聚類算法'Scipy.clustering.hierarchy'包 得到鏈接矩陣Z這裏'average'是方法的聯動 Z=sch.linkage(distances,'average')
獲取綁定用於從數據 max_dist=distances.max()
0.2產生的度量維度值。max_dist的作用就像一個閾值,實驗使用不同的值 fclster=sch.fcluster(Z,0.2*max_dist,'distance')
端蟒聚類僞代碼
的Z是數據 另一種方式來說這是一個鏈接的分級凝聚羣集它是一個(分層)」樹「,根節點分支到您的葉節點,這些節點通常是您要聚類的輸入數據中的記錄或行
去程序只是此樹的可視化。有很多方法可以做到這一點,您可以從Z的維度中獲得繪圖變量。最好的方法是使用matlab或八度。 通常使用樹形從SciPy的繪製 '樹形圖'
import matplotlib.pyplot as plt
然後
dendrogram(Z, color_threshold=1, labels=[....],show_leaf_counts=True)
閾值範圍爲其中2個值? – gaurus 2017-03-21 17:33:17
門檻好的信息https://github.com/scikit-learn/scikit-learn/issues/3796 – 2017-03-24 14:47:50