scipy模块是很强大,里面很多有用的函数,这里先花一点时间使用一下scipy模块中的层次聚类,下面是简单的使用:

#!usr/bin/env python
#encoding:utf-8'''
__Author__:沂水寒城
功能:scipy测试使用
'''import scipy
import json
import scipy.cluster.hierarchy as sch
from scipy.cluster.vq import vq,kmeans,whiten
import numpy as np
import matplotlib.pylab as pltdef 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 "层次聚类结果为:\n",cluster#白化处理data=whiten(matrix)#kmeans聚类'''聚类数确定方法:1.借助层次聚类方法初步确定2.手动设定,尝试法'''centroid=kmeans(data,max(cluster))[0]  #使用vq函数cluster2=vq(data,centroid)[0] print "kmeans聚类结果为:\n", cluster2def cluster_test2(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,'cityblock') #距离计算方法包括:''''single'、'complete'、'average'、'weighted'、'centroid'、'''Z=sch.linkage(disMat,method='complete') #可视化处理P=sch.dendrogram(Z)plt.savefig('pictures/result2.png')#聚类准则包括:''''inconsistent'、'distance'、'maxclust'、'monocrit'、'maxclust_monocrit''''cluster= sch.fcluster(Z, criterion='distance',t=1) print "层次聚类结果为:\n",cluster#白化处理data=whiten(matrix)#kmeans聚类'''聚类数确定方法:1.借助层次聚类方法初步确定2.手动设定,尝试法'''centroid=kmeans(data,max(cluster))[0]  #使用vq函数cluster2=vq(data,centroid)[0] print "kmeans聚类结果为:\n", cluster2if __name__=='__main__':cluster_test(datafile='data/shop_test/vector.json')cluster_test2(datafile='data/shop_test/vector.json')

结果如下:

层次聚类结果为:
[ 4 12  1  9  9  1  4 16  7 19  2 12 10  2  7  5 18  8  7 11 10  2  5  4 126  6  5  7 12  3 13  3 13 17  2 14  1 15  8 13 12 15]
kmeans聚类结果为:
[ 9  0 16 15 15  2  9  9  3 14  7 17 15 12  3  5  9  9  3 15 15  6  1  8 179  9  5  3 17  4  0  4 13 11 12 10  2  9  9 13  0  9]
层次聚类结果为:
[ 9 18  3 23 24  1 10 30 13 34  7 17 25  6 13 12 33 15 13 27 26  4 12 11 1731 31 12 14 17  8 21  8 20 32  5 22  2 28 16 20 19 29]
kmeans聚类结果为:
[12 15  0 13 13  0  7  7 23  7 17 15  4  3 23  2 22 10 23 20 18  3  2  1 1521 21  2 23 15 11 15  9 19  6  3 14  0  8  5 15 15 16]
[Finished in 2.5s]

其中result.png如下:

result2.png如下:

纯属新手尚在学习,如果有兴趣的欢迎交流哈!

python模块之scipy的层次聚类简单测试与使用相关推荐

  1. 层次聚类python实现_Python机器学习——Agglomerative层次聚类

    层次聚类(hierarchical clustering)可在不同层次上对数据集进行划分,形成树状的聚类结构.AggregativeClustering是一种常用的层次聚类算法. 其原理是:最初将每个 ...

  2. python机器学习案例系列教程——层次聚类(文档聚类)

    分享一个朋友的人工智能教程.零基础!通俗易懂!风趣幽默!还带黄段子!大家可以看看是否对自己有帮助:点击打开 docker/kubernetes入门视频教程 全栈工程师开发手册 (作者:栾鹏) pyth ...

  3. python模块:Scipy.optimize.linprog线性规划求解

    目录 一.模块介绍 二.模块源分析与参数解释 三.实例求解 四.参考 一.模块介绍 1.1模块功能 Scipy.optimize是Scipy中一个用于解决数学模型中优化类模型的子包,该子包中又包含了多 ...

  4. 【Python】sklearn机器学习之层次聚类算法AgglomerativeClustering

    文章目录 基本原理 绘图层次 定义距离 基本原理 和Birch聚类相似,层次聚类也是一种依赖树结构实现的聚类方法,其核心概念是相似度.根据相似度,可以将所有样本组织起来,从而构建一棵层次聚类树. 其中 ...

  5. Python模块(7)-SciPy 简易使用教程

    SciPy 简易使用教程 1. 符号计算 2. 函数向量化 3. 波形处理scipy.signal 3.1 滤波器 3.2 波峰定位 基于numpy的一个高级模块,为数学,物理,工程等方面的科学计算提 ...

  6. 层次聚类算法及通过python的scipy进行计算

    目录 1.什么是层次聚类? 2. 如何用python实现 参考链接: 1.什么是层次聚类? 常用于 1维数据 的自动分组,如下图所示, 把数据用[主成分分析]的方法把数据从多维压缩为1维, 然后使用层 ...

  7. 层次聚类python_用python绘制层次聚类图

    层次聚类(Hierarchical clustering)代表着一类的聚类算法,这种类别的算法通过不断的合并或者分割内置聚类来构建最终聚类. 聚类的层次可以被表示成树(或者树形图(dendrogram ...

  8. 《Python数据分析与挖掘实战》第14章——基于基站定位数据的商圈分析(层次聚类)

    本文是基于<Python数据分析与挖掘实战>的实战第14章<基于基站定位数据的商圈分析>做的分析. 1 挖掘背景及目标 从某通信运营商提供的特定接口解析得到用户的定位数据.利用 ...

  9. 模式识别:C-means(K-means)聚类算法与分级聚类(层次聚类)算法

    C均值聚类算法与分级聚类算法的聚类分析 一.实验目的 理解聚类的整体思想,了解聚类的一般方法: 掌握 C-means与分级聚类算法算法思想及原理,并能够熟练运用这些算法进行聚类分析: 能够分析二者的优 ...

  10. Kmeans、DBSCAN、层次聚类等三种聚类算法笔记

    目录 一.Kmeans模型 1 算法思想及步骤 2 最佳k值的确定方法 2.1 拐点法 2.2 轮廓系数法 2.3 间隔统计量法 3 Kmeans算法的缺点 二.DBSCAN算法 三.层次聚类算法 1 ...

最新文章

  1. leetcode001 two_Sum
  2. 通过conda命令卸载已安装的各种包
  3. 数学建模国赛 常考赛题类型(模拟退火算法、粒子群算法、遗传算法)
  4. 2019 Flink Forward 大会最全视频来了!(附PPT下载) | 5大专题不容错过
  5. 数据库恢复相关知识笔记
  6. What's the difference between markForCheck() and detectChanges()
  7. python实现按回车键继续程序_python实现按任意键继续执行程序
  8. MS-SQL中创建索引
  9. 如果这样 你跟小三走吧
  10. Window平台编译log4cpp使用方法记录 (一)
  11. 4x4矩阵键盘c语言程序,C语言矩阵键盘程序
  12. php主机卫士,Bypass360主机卫士SQL注入防御八种姿势
  13. Hadoop:INFO mapreduce.Job: Running job
  14. BF(暴力求解算法)
  15. 了解第四次工业革命带来的“机遇与挑战”
  16. 第三方登录之微信登录
  17. ps中usm锐化,智能锐化,像素化,分层云彩,光照效果,镜头光晕,纤维,云彩,减少杂色,蒙尘与划痕,祛斑,添加杂色,中间值
  18. 基于springboot框架的校园食堂外卖点餐系统
  19. Justep X5 Studio
  20. 信息系统项目管理师核心考点(四十六)采购工作说明书(SOW)

热门文章

  1. Community Enterprise Operating System ISO 全镜像下载
  2. 为什么Java 8 中不再需要StringBuilder拼接字符串
  3. Thrift 的原理和使用
  4. 几句话就能让你明白:热备份路由选择协议(HSRP)
  5. [置顶] 任务一 基本的数据库连接——以类为单位的编程思想
  6. H3C的静态路由、Track与NQA联动配置举例
  7. 什么是Internet cookie?
  8. 课堂对Complex类运算符重载的小练习
  9. [HNOI2019]JOJO(KMP自动机+主席树)
  10. BZOJ4480[JSOI2013]快乐的jyy