【层次聚类】python scipy实现
层次聚类
原理
有一个讲得很清楚的博客:博客地址
主要用于:没有groundtruth,且不知道要分几类的情况
用scipy模块实现聚类
参考函数说明:
pdist
squareform
linkage
fcluster
- scipy.spatial.distance.pdist:计算点之间的距离,返回的是一个压缩过的距离矩阵,即一行距离数据,减少了方阵中数据重复占用的空间。
- scipy.spatial.distance.squareform:距离矩阵的方阵与压缩矩阵相互转换函数
- scipy.cluster.hierarchy.linkage:层次聚类函数,返回一个四列的数据,第一和第二列是该次聚合的类序号,第三列是这两类间聚类,第四列是该类中包含多少元素数据
- scipy.cluster.hierarchy.fcluster:根据指定阈值和linkage生成的聚类树得到最终的聚类结果。
例: 已有距离矩阵,进行层次聚类
import scipy
import scipy.cluster.hierarchy as sch
import numpy as np
import msgpack
# 读取距离矩阵
f = open("distance.msgpack", "r")
dis = msgpack.loads(f.read())
dis_arr = np.array(dis)
# 压缩距离矩阵
disMat = scipy.spatial.distance.squareform(dis_arr)
# 生成聚类树
Z=sch.linkage(disMat,method='average')
print Z
# 得到聚类结果
cluster= sch.fcluster(Z, 0.2, 'distance')
print cluster
【层次聚类】python scipy实现的更多相关文章
- 使用Python进行层次聚类
使用 scipy.cluster.hierarchy.linkage进行层次聚类 from scipy.cluster.hierarchy import dendrogram, linkage,fcl ...
- 【python】利用scipy进行层次聚类
参考博客: https://joernhees.de/blog/2015/08/26/scipy-hierarchical-clustering-and-dendrogram-tutorial/ 层次 ...
- 【转】使用scipy进行层次聚类和k-means聚类
scipy cluster库简介 scipy.cluster是scipy下的一个做聚类的package, 共包含了两类聚类方法: 1. 矢量量化(scipy.cluster.vq):支持vector ...
- Python机器学习——Agglomerative层次聚类
层次聚类(hierarchical clustering)可在不同层次上对数据集进行划分,形成树状的聚类结构.AggregativeClustering是一种常用的层次聚类算法. 其原理是:最初将 ...
- python实现一个层次聚类方法
层次聚类(Hierarchical Clustering) 一.概念 层次聚类不需要指定聚类的数目,首先它是将数据中的每个实例看作一个类,然后将最相似的两个类合并,该过程迭代计算只到剩下一个类为止,类 ...
- 【Python机器学习实战】聚类算法(2)——层次聚类(HAC)和DBSCAN
层次聚类和DBSCAN 前面说到K-means聚类算法,K-Means聚类是一种分散性聚类算法,本节主要是基于数据结构的聚类算法--层次聚类和基于密度的聚类算法--DBSCAN两种算法. 1.层次聚类 ...
- Python爬虫技术(从网页获取图片)+HierarchicalClustering层次聚类算法,实现自动从网页获取图片然后根据图片色调自动分类—Jason niu
网上教程太啰嗦,本人最讨厌一大堆没用的废话,直接上,就是干! 网络爬虫?非监督学习? 只有两步,只有两个步骤? Are you kidding me? Are you ok? 来吧,follow me ...
- 吴裕雄 python 机器学习——层次聚类AgglomerativeClustering模型
import numpy as np import matplotlib.pyplot as plt from sklearn import cluster from sklearn.metrics ...
- Agens层次聚类
层次聚类是另一种主要的聚类方法,它具有一些十分必要的特性使得它成为广泛应用的聚类方法.它生成一系列嵌套的聚类树来完成聚类.单点聚类处在树的最底层,在树的顶层有一个根节点聚类.根节点聚类覆盖了全部的所有 ...
随机推荐
- jq的stop
jQuery stop() 方法用于停止动画或效果,在它们完成之前. stop() 方法适用于所有 jQuery 效果函数,包括滑动.淡入淡出和自定义动画. $(selector).stop(stop ...
- lua 语法的使用总结
1.字符串连接 local tmp = "abc" local tmp1 = "ddd" tmp..tmp1 2. table 类型 就是关联数组 local ...
- javascript面试--网络收集
史上最全的Javascript面试题总结(内附答案) - CSDN博客http://blog.csdn.net/u011277123/article/details/70208768 6.什么是未声明 ...
- Create C++ Class
创建“目标物体”,是世界场景中的一个物体,当玩家经过时,可以将它拾起,并带至某处 选择Actor为父类,创建FPSObjectiveActor类 注:点击公有按钮就会把头文件放入Public文件夹 ...
- 由JDBC而来的对Class.forName()用法发散
昨日在帮一个学习java的小伙子指导JDBC链接数据库时,在对数据库驱动进行加载时,用到Class.forName(),一直都是照葫芦画瓢,对这种写法一直不是太理解,故查询了相关文档后,将心得记录一下 ...
- basic.js
1.数组 ① 删除内容 Array.prototype.removeByValue = function(val) { for(var i=0; i<this.length; i++) { if ...
- Javascript - ExtJs - 其它
组件通用配置 width:number | "%" //宽 height:number | "%" //高 autoEl:string | Json / ...
- C++基础题--float型以整型格式输出
int main() { ; a++; printf("%d\n", a); system("pause"); ; } //为什么会输出是0? 解释如下: 在p ...
- 【SVN】CentOS7.0下搭建SVN服务器
SVN服务器搭建 最近接手了天赋吉运的SVN项目管理,那么学会搭建SVN服务器就成为了必须的技能.这篇文章就来讲一讲在CentOS7.0下如何搭建SVN服务器 1,下载安装SVN版本 yum inst ...
- LwIP Application Developers Manual5---高层协议之DHCP,AUTOIP,SNMP,PPP
1.前言 本文主要讲述高层协议,包括DHCP 2.DHCP 2.1 从应用的角度看DHCP 你必须确保在编译和链接时使能DHCP,可通过在文件lwipopts.h里面定义LWIP_DHCP选项,该选项 ...