![6a6a0492a84bda6f3e783899e9760a7f.png](https://img-blog.csdnimg.cn/img_convert/6a6a0492a84bda6f3e783899e9760a7f.png)
scipy模块是很强大,里面很多有用的函数,这里先花一点时间使用一下scipy模块中的层次聚类,下面是简单的使用:
#!usr/bin/env python#encoding:utf-8 '''__Author__:沂水寒城功能:scipy测试使用''' import scipyimport jsonimport scipy.cluster.hierarchy as schfrom scipy.cluster.vq import vq,kmeans,whitenimport numpy as npimport matplotlib.pylab as plt def cluster_test(datafile='data/shop_test/vector.json'): ''' 简单的层次聚类实验 ''' with open(datafile) as f: file_list=json.load(f) matrix=[] for one_dict in file_list: matrix.append(one_dict['vector']) #距离度量包括: ''' 'euclidean'、'minkowski'、'cityblock'、'seuclidean'、'sqeuclidean' 'cosine'、'correlation'、'hamming'、'jaccard'、'chebyshev'、 'canberra' 'braycurtis'、'mahalanobis'、'yule'、'matching'、'dice'、'kulsinski' 'rogerstanimoto'、'russellrao'、'sokalmichener'、'sokalsneath' 'wminkowski' ''' disMat = sch.distance.pdist(matrix,'euclidean') #距离计算方法包括: ''' 'single'、'complete'、'average'、'weighted'、'centroid'、 ''' Z=sch.linkage(disMat,method='average') #可视化处理 P=sch.dendrogram(Z) plt.savefig('pictures/result.png') #聚类准则包括: ''' 'inconsistent'、'distance'、'maxclust'、'monocrit'、'maxclust_monocrit' ''' cluster= sch.fcluster(Z, criterion='inconsistent',t=1) print "层次聚类结果为: