你是对的'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