层次聚类

原理

有一个讲得很清楚的博客:博客地址

主要用于:没有groundtruth,且不知道要分几类的情况

用scipy模块实现聚类

参考函数说明:

pdist

squareform

linkage

fcluster

  1. scipy.spatial.distance.pdist:计算点之间的距离,返回的是一个压缩过的距离矩阵,即一行距离数据,减少了方阵中数据重复占用的空间。
  2. scipy.spatial.distance.squareform:距离矩阵的方阵与压缩矩阵相互转换函数
  3. scipy.cluster.hierarchy.linkage:层次聚类函数,返回一个四列的数据,第一和第二列是该次聚合的类序号,第三列是这两类间聚类,第四列是该类中包含多少元素数据
  4. scipy.cluster.hierarchy.fcluster:根据指定阈值和linkage生成的聚类树得到最终的聚类结果。

例: 已有距离矩阵,进行层次聚类

  1. import scipy
  2. import scipy.cluster.hierarchy as sch
  3. import numpy as np
  4. import msgpack
  5. # 读取距离矩阵
  6. f = open("distance.msgpack", "r")
  7. dis = msgpack.loads(f.read())
  8. dis_arr = np.array(dis)
  9. # 压缩距离矩阵
  10. disMat = scipy.spatial.distance.squareform(dis_arr)
  11. # 生成聚类树
  12. Z=sch.linkage(disMat,method='average')
  13. print Z
  14. # 得到聚类结果
  15. cluster= sch.fcluster(Z, 0.2, 'distance')
  16. print cluster

【层次聚类】python scipy实现的更多相关文章

  1. 使用Python进行层次聚类

    使用 scipy.cluster.hierarchy.linkage进行层次聚类 from scipy.cluster.hierarchy import dendrogram, linkage,fcl ...

  2. 【python】利用scipy进行层次聚类

    参考博客: https://joernhees.de/blog/2015/08/26/scipy-hierarchical-clustering-and-dendrogram-tutorial/ 层次 ...

  3. 【转】使用scipy进行层次聚类和k-means聚类

    scipy cluster库简介 scipy.cluster是scipy下的一个做聚类的package, 共包含了两类聚类方法: 1. 矢量量化(scipy.cluster.vq):支持vector ...

  4. Python机器学习——Agglomerative层次聚类

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

  5. python实现一个层次聚类方法

    层次聚类(Hierarchical Clustering) 一.概念 层次聚类不需要指定聚类的数目,首先它是将数据中的每个实例看作一个类,然后将最相似的两个类合并,该过程迭代计算只到剩下一个类为止,类 ...

  6. 【Python机器学习实战】聚类算法(2)——层次聚类(HAC)和DBSCAN

    层次聚类和DBSCAN 前面说到K-means聚类算法,K-Means聚类是一种分散性聚类算法,本节主要是基于数据结构的聚类算法--层次聚类和基于密度的聚类算法--DBSCAN两种算法. 1.层次聚类 ...

  7. Python爬虫技术(从网页获取图片)+HierarchicalClustering层次聚类算法,实现自动从网页获取图片然后根据图片色调自动分类—Jason niu

    网上教程太啰嗦,本人最讨厌一大堆没用的废话,直接上,就是干! 网络爬虫?非监督学习? 只有两步,只有两个步骤? Are you kidding me? Are you ok? 来吧,follow me ...

  8. 吴裕雄 python 机器学习——层次聚类AgglomerativeClustering模型

    import numpy as np import matplotlib.pyplot as plt from sklearn import cluster from sklearn.metrics ...

  9. Agens层次聚类

    层次聚类是另一种主要的聚类方法,它具有一些十分必要的特性使得它成为广泛应用的聚类方法.它生成一系列嵌套的聚类树来完成聚类.单点聚类处在树的最底层,在树的顶层有一个根节点聚类.根节点聚类覆盖了全部的所有 ...

随机推荐

  1. 快速安装nginx

    1.创建nignx用户 /usr/sbin/groupadd -f nginx /usr/sbin/useradd -g nginx nginx 2.安装依赖 yum install gcc gcc- ...

  2. scrapy框架的每个模块的用途

    ## 一.scrapy框架的每个模块的用途 1.spiders: 自定义爬虫 定义允许爬取的范围 定义开始爬取的url parse:一定要重写 start_request:一般不需要重写,可以通过重写 ...

  3. Centos7 nginx提示错误 Access denied.

    SELinux will cause this error on CentOS/RHEL 7+ by default :( CentOS/RHEL 7+ 系统默认会因为SELinux出现这个报错 To ...

  4. Android中高级工程师面试题

    https://www.cnblogs.com/huangjialin/p/8657565.html(存在不少答案错误,可参照知识点复习,答案不可全信)  上 https://www.cnblogs. ...

  5. ARM核心板_迅为imx6工控核心板_核心板中的小新潮

    ARM核心板_迅为imx6工控核心板_核心板中的小新潮核心板参数 尺寸 51mm*61mm CPU Freescale Cortex-A9 四核 i.MX6Q,主频 1.2 GHz 内存 2GB DD ...

  6. linux中管理包的apt和dpkg命令用法

    1,apt-get命令 apt-get是debian,ubuntu发行版的包管理工具,与红帽中的yum工具非常类似,适用于deb包管理式的操作系统,主要用于自动从互联网的软件仓库中搜索.安装.升级.卸 ...

  7. Hadoop配置文件参数详解

    core-site.xml <configuration> <property> <name>hadoop.tmp.dir</name> <val ...

  8. 图片转换base64编码,点击div的时候选择文件

    有时候我们希望文件上传的时候预览图片,下面插件可以实现上传前预览图片 (也可以提取文件的base64编码) max-height: 140px;max-width: 120px;可以指定图片的最大宽度 ...

  9. liunx本地网卡流量监控

    作者:邓聪聪 公司网络异常,由于可监控设备有限,无法快速读取网络异常的设备,所以找到了这个办法,部署在服务端用以解决网络突发异常流量故障的查找! 环境:CentOS release 6.8 Linux ...

  10. Ubuntu16.04用源安装Nginx+PHP5.6+MySQL5.6

    安装Nginx 1.首先添加nginx_signing.key(必须,否则出错) $ wget http://nginx.org/keys/nginx_signing.key $ sudo apt-k ...