BAFIMINARMTO
BA0662877255412996
FI6620295468268400
MI8772950754564138
NA2554687540219869
RM4122685642190669
TO9964001388696690
这是一个距离矩阵。不管是scipy还是fastcluster,都有一个计算距离矩阵的步骤(也可以不用)。距离矩阵是冗余的,因为它是对称的。scipy里面的文档好多的关于数学上的英文,让我都搞糊涂了。distance = spatial.distance.pdist(data),这段代码里,data是一个矩阵,但不是距离矩阵,而是如http://www.shahuwang.com/?p=952 这篇文章中用到的数据形式,而最后算出来的distance只是一个数组,并不是矩阵,而且是一维数组,这是为什么呢?仔细看上面的那个矩阵,就知道我们只需要记录对角线上或者下面的一部分就可以了。废话不说,来看最简单的一个层次聚类实现(我现在主要将scipy的,fastcluster的使用几乎一样):
1
2from scipy.cluster.hierarchyimport fclusterdata
fclusterdata(matData,t=0.99,criterion='inconsistent',metric='euclidean',method='average',R=None)#这个不需要计算linkage就能直接出结果了
这里用到的matData来自于:http://www.shahuwang.com/?p=952 用到的数据,是