层次聚类(hierarchical clustering)和聚类模型评估(calinski-harabaz index)
层次聚类(Hierarcical Clustering)
层次聚类是聚类算法中的一种,它通过计算不同类别数据点之间的相似度,来创建一颗有层次的嵌套聚类树,层次聚类的策略有两种:
1.Agglomerative: 把每个点看成一个簇,合并这些相似的簇形成聚类;
2.Divisive: 把所有的点看成一个簇,分解这些点到各自簇内形成聚类;
Merge和Split使用的是贪婪的方式来进行计算的,所以非常耗时( O ( n 3 ) O(n^3) O(n3))以及消耗内存( O ( n 2 ) O(n^2) O(n2)),因此有一些高效的方法:SLink,CLink,ALink
衡量点之间的相似度是一项重要的工作,计算两个簇之间相似度的方法:
1.SLink-Single Linkage: 将两个组合数据点中距离最近的两个点之间的距离作为这两个组合数据点的距离,但是这种方式容易受到极端值的影响。
2.CLink-Complete Linkage: 将两个组合数据点中距离最远的两个点之间的距离作为这两个组合数据点的距离,这种方式同样容易受到极端值得影响。
3.ALink-Average Linkage: 计算两个组合数据点中的每个数据点与其他数据点的距离,将所有距离的均值作为两个组合数据点的距离。
聚类模型评估(Calinski-Harabaz Index)
因为聚类模型是一种无监督的学习模型,因此我们没有对应的标签来判断我们是否聚类正确,那怎么来判定我们模型的好坏呢?这似乎是一个比较困难的事情。
对于聚类模型来说,我们希望聚类结果为相同类别之间的数据距离越近越好,而不同类别之间的数据距离越远越好;因此,对于K个聚类,Calinski-Harabaz的分数S被定义为组间离散与组内离散的比率,该分值越大说明聚类效果越好。
S ( K ) = T r ( B K ) T r ( W K ) ∗ N − K K − 1 S(K)=\frac{T_r(B_K)}{T_r(W_K)}*\frac{N-K}{K-1} S(K)=Tr(WK)Tr(BK)∗K−1N−K
B K B_K BK是组间离散矩阵
W K W_K WK是组内离散矩阵
W K = ∑ q = 1 k ∑ x ϵ c q ( x − C q ) ( x − C q ) T W_K=\sum_{q=1}^{k}\sum_{x\epsilon c_q}(x-C_q)(x-C_q)^T WK=∑q=1k∑xϵcq(x−Cq)(x−Cq)T
B K = ∑ q n q ( C q − c ) ( C q − c ) T B_K=\sum_{q}n_q(C_q-c)(C_q-c)^T BK=∑qnq(Cq−c)(Cq−c)T
n是样本点数, c q c_q cq是在聚类q中的样本点, C q C_q Cq是聚类q的中心点, n q n_q nq是聚类q中的样本点数量,c是E的重点。
当然,还有其他很多的聚类模型评估方法,如:轮廓系数、兰德指数、互信息等等,需要我们去学习。
ps:兰德指数是根据实际分类与聚类结果比较得出的分数,但是个人以为,聚类模型本身就是无监督学习模型,如果已经知道实际类别,那也就变成了有监督学习的分类模型,个人不是太理解为什么会有实际类别结果。
层次聚类(hierarchical clustering)和聚类模型评估(calinski-harabaz index)相关推荐
- 机器学习算法(十二):聚类(2)层次聚类 Hierarchical Clustering
目录 1 层次聚类 1.1 层次聚类的原理 1.2 两个组合数据点间的距离: 2 自底向上的合并算法 2.1 AGNES算法 (AGglomerative NESting) 2.1.1 原理 2.1. ...
- 层次聚类-Hierarchical Clustering
一.概述 层次聚类(Hierarchical Clustering)是聚类算法的一种,通过计算不同类别数据点间的相似度来创建一棵有层次的嵌套聚类树,距离越小,相似度越高.在聚类树中,不同类别的原始数据 ...
- 聚类(2)——层次聚类 Hierarchical Clustering
聚类系列: 聚类(序)----监督学习与无监督学习 聚类(1)----混合高斯模型 Gaussian Mixture Model 聚类(2)----层次聚类 Hierarchical Clusteri ...
- 机器学习笔记(九)聚类算法Birch和层次聚类Hierarchical clustering
本篇文章我们继续介绍另一种聚类算法--Birch模型,相对于K-means和DBSCAN,Birch的应用并没有那么广泛,不过它也有一些独特的优势,Birch算法比较适合于数据量大,类别数K也比较多的 ...
- 层次聚类(Hierarchical Clustering)——CURE算法详解及举例
1 CURE聚类概述 绝大多数聚类算法或者擅长处理球形和相似大小的聚类.或者在存在孤立点时变得比较脆弱.CURE采用了一种新颖的层次聚类算法.该算法选择基于质心和基于代表对象方法之间的中间策略.它不同 ...
- 层次聚类(Hierarchical Clustering)——BIRCH算法详解及举例
1 BIRCH概述 BIRCH(Balanced Iterative Reducing and Clustering Using Hierarchies)的主要动机是两个方面,一是处理大数据集,二是对 ...
- 机器学习(6): 层次聚类 hierarchical clustering
假设有N个待聚类的样本,对于层次聚类来说,步骤: 1.(初始化)把每个样本归为一类,计算每两个类之间的距离,也就是样本与样本之间的相似度: 2.寻找各个类之间最近的两个类,把他们归为一类(这样类的总数 ...
- 系统聚类(hierarchical clustering analysis)
转载于:https://www.cnblogs.com/gispathfinder/p/5813352.html
- 层次聚类算法的原理及实现Hierarchical Clustering
层次聚类算法的原理及实现Hierarchical Clustering 层次聚类(Hierarchical Clustering)是聚类算法的一种,通过计算不同类别数据点间的相似度来创建一棵有层次的嵌 ...
最新文章
- 2022-2028年中国云服务市场深度调研及投资前景预测报告
- 项目管理工具篇(一、Maven)
- IdentityServer(14)- 通过EntityFramework Core持久化配置和操作数据
- 阿里面试题(含内推)
- 【笑话】骂人的最高境界
- js回文数的四种判断方法
- Java的继承和python的继承_Java ,python面向对象的继承及其区别
- HighCharts:PlotLine的label文字不显示
- 使用python语言编写脚本控制freeswitch总结
- ora257 linux,ORA-00257解决
- 用印审批移动办公用户手册
- libcef-编译运行模式-MTD/MT-MDD/MD
- 联通4g满格但是网速慢_4G信号明明满格,但网速却慢过蜗牛,是什么原因?
- 女性社交电商系统:聚焦女用户 收割电商半壁江山
- MySQL数据库实现双向自动同步
- android刷机知识大全,安卓主流机型刷机基础科普 教你刷机不求人
- 在ubuntu 18上进行NPB和mpiP的整合
- Windows 开发之VC++垃圾清理程序软件
- 2022-2027年中国金融服务业RFID行业发展前景及投资战略咨询报告
- 基于Cartographer的建图与导航