机器学习(六)K-means聚类、密度聚类、层次聚类、谱聚类
本文主要简述聚类算法族。聚类算法与前面文章的算法不同,它们属于非监督学习。
1、K-means聚类
记k个簇中心,为\(\mu_{1}\),\(\mu_{2}\),...,\(\mu_{k}\),每个簇的样本数为\(N_{i}\)
假设每个簇中的数据都满足分布\(N(\mu_{i},\sigma)\),即方差相同,均值不同的GMM。
则每一个样本点的分布函数为:\[\phi_{i}=\dfrac{1}{\sqrt{2\pi\sigma^2}}exp(-\dfrac{({x_{i}-\mu})^2}{2\sigma^2})\]
可求出其似然函数
\[L_{\mu}=\phi_{1}\times\phi_{2}\times...\]
且可求其对数似然为(以三个点为例)
\[l_{\mu}=\dfrac{1}{2}\sum^{k}_{j=1}\sum^{i=1}_{N_{j}}(x_{I}-\mu_{j})^2\]
求驻点有:\[\mu_{j}=\dfrac{1}{N_{j}}\sum^{N}_{i=1}x_{i}\]
因此,以均方误差为目标函数的时候肯定是收敛的。用其他函数作为目标函数不一定收敛。
注:\(k\)的选择采用“手肘法”,注意不是交叉验证,它连标签都没有!
2、密度聚类
代表算法:DBSCAN
K-means对噪声敏感,密度聚类对噪声不敏感。
3、层次聚类
按层次聚类,由上至下或由下至上,优点是可以任意选择聚类数
4、谱聚类
Step1:对样本点俩俩计算相似度\(S_{ij}\),组成相似度矩阵,又称权值矩阵\[W_{n\times n}=[S_{ij}]\]
Step2:将\(W_{n\times n}\)的主对角线元素全部置为0,把每行元素的值相加,第\(i\)行的和为\(d_{i}\)。将\(d_{i}\)作为主对角线元素组成\(D_{n\times n}\)
Step3:令\[L_{n\times n}=D_{n\times n}-W_{n\times n}\],称为拉普拉斯矩
阵。这个\(L\)是半正定的,它最小的特征值为0。
Step4:求L矩阵的特征值和特征向量,将所有特征值从小大排列,取出前k个(聚类数为k),将其对应的特征向量如下排列:\[[u_{1},u{2},...,u_{k}]\]该矩阵的第一行即为第一个样本点转换后的特征,第二行为第二个样本点转换后的特征。将这些特征扔入K_means,其聚类结果即是谱聚类结果。
机器学习(六)K-means聚类、密度聚类、层次聚类、谱聚类的更多相关文章
- 聚类——密度聚类DBSCAN
Clustering 聚类 密度聚类——DBSCAN 前面我们已经介绍了两种聚类算法:k-means和谱聚类.今天,我们来介绍一种基于密度的聚类算法——DBSCAN,它是最经典的密度聚类算法,是很多算 ...
- [zz]谱聚类
了凡春秋USTC 谱聚类 http://chunqiu.blog.ustc.edu.cn/?p=505 最近忙着写文章,好久不写博客了.最近看到一个聚类方法--谱聚类,号称现代聚类方法,看到它简洁的公 ...
- 谱聚类(Spectral Clustering)详解
谱聚类(Spectral Clustering)详解 谱聚类(Spectral Clustering, SC)是一种基于图论的聚类方法——将带权无向图划分为两个或两个以上的最优子图,使子图内部尽量相似 ...
- 谱聚类(Spectral Clustring)原理
谱聚类(spectral clustering)是广泛使用的聚类算法,比起传统的K-Means算法,谱聚类对数据分布的适应性更强,聚类效果也很优秀,同时聚类的计算量也小很多,更加难能可贵的是实现起来也 ...
- 基于谱聚类的三维网格分割算法(Spectral Clustering)
谱聚类(Spectral Clustering)是一种广泛使用的数据聚类算法,[Liu et al. 2004]基于谱聚类算法首次提出了一种三维网格分割方法.该方法首先构建一个相似矩阵用于记录网格上相 ...
- 机器学习六--K-means聚类算法
机器学习六--K-means聚类算法 想想常见的分类算法有决策树.Logistic回归.SVM.贝叶斯等.分类作为一种监督学习方法,要求必须事先明确知道各个类别的信息,并且断言所有待分类项都有一个类别 ...
- 100天搞定机器学习|day54 聚类系列:层次聚类原理及案例
几张GIF理解K-均值聚类原理 k均值聚类数学推导与python实现 前文说了k均值聚类,他是基于中心的聚类方法,通过迭代将样本分到k个类中,使每个样本与其所属类的中心或均值最近. 今天我们看一下无监 ...
- 【机器学习】聚类算法:层次聚类、K-means聚类
聚类算法实践(一)--层次聚类.K-means聚类 摘要: 所谓聚类,就是将相似的事物聚集在一 起,而将不相似的事物划分到不同的类别的过程,是数据分析之中十分重要的一种手段.比如古典生物学之中,人们通 ...
- 【Python机器学习实战】聚类算法(1)——K-Means聚类
实战部分主要针对某一具体算法对其原理进行较为详细的介绍,然后进行简单地实现(可能对算法性能考虑欠缺),这一部分主要介绍一些常见的一些聚类算法. K-means聚类算法 0.聚类算法算法简介 聚类算法算 ...
随机推荐
- Mountaineers Gym - 102021M (LCA+MST)
题目链接: Mountaineers Gym - 102021M 题目大意:给你一个n*m的矩阵,a[i][j]代表当前方块的高度,然后每次询问给你一个起点和终点,然后问你在这个图上你选择一条路径, ...
- 安卓触控一体机的逆袭之路_追逐品质_支持APP软件安卓
显示性能参数 接口:RGB信号 分辨率:1024*600 比例16:9 显示尺寸(A.A.):222.72*(W)*125.28(H)mm 外围尺寸:235.0(W)*143.0(H)*4.5(T)m ...
- 2018-2019-1 20165231 实现mypwd(选做)
实现mypwd 要求: 学习pwd命令 研究pwd实现需要的系统调用(man -k; grep),写出伪代码 实现mypwd 测试mypwd pwd: 在Linux层次结构中,想要知道当前所处的目录, ...
- 什么时候Python的List,Tuple最后一个Item后面要加上一个逗号
为什么看Python的代码,有时候会在数据结构的最后一项末尾加上逗号.直接来看,这个逗号很多余. 根据PEP81的解释: Trailing commas are usually optional, e ...
- Centos6.8 yum安装MySQL5.6
第一步:安装仓库wget http://repo.mysql.com//mysql57-community-release-el6-8.noarch.rpmrpm -ivh mysql-communi ...
- pwnable.tw calc
题目代码量比较大(对于菜鸡我来说orz),找了很久才发现一个能利用的漏洞 运行之发现是一个计算器的程序,简单测试下发现当输入的操作数超过10位时会有一个整型溢出 这里调试了一下发现是printf(&q ...
- ActiveMQ与spring整合
第一步:引用相关的jar包 <dependency> <groupId>org.springframework</groupId> <artifactId&g ...
- 写一个python脚本监控在linux中的进程
在虚拟机中安装Linux中的CentOS7系统 https://baijiahao.baidu.com/s?id=1597320700700593557&wfr=spider&for= ...
- ext window嵌jsp页面自适应
//定义window调用方法传入jsp所需参数function getWindow(obj,obj1,obj2,obj3,obj4,obj5,obj6,obj7,obj8,obj9){ Ext.def ...
- java常用类:1。包装类(以Integer类为例)2.String类 3.StringBuffer
包装类 把八大基本数据类型封装到一个类中,并提供属性和方法,更方便的操作基本数据类型. 包装类的出现并不是用于取代基本数据类型,也取代不了. 包装类位于java.lang包中. Number 类 N ...