python生成树状图_使用python的分层聚类树状图

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

你可能感兴趣的:(python生成树状图)