本文主要简述聚类算法族。聚类算法与前面文章的算法不同,它们属于非监督学习。

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聚类、密度聚类、层次聚类、谱聚类的更多相关文章

  1. 聚类——密度聚类DBSCAN

    Clustering 聚类 密度聚类——DBSCAN 前面我们已经介绍了两种聚类算法:k-means和谱聚类.今天,我们来介绍一种基于密度的聚类算法——DBSCAN,它是最经典的密度聚类算法,是很多算 ...

  2. [zz]谱聚类

    了凡春秋USTC 谱聚类 http://chunqiu.blog.ustc.edu.cn/?p=505 最近忙着写文章,好久不写博客了.最近看到一个聚类方法--谱聚类,号称现代聚类方法,看到它简洁的公 ...

  3. 谱聚类(Spectral Clustering)详解

    谱聚类(Spectral Clustering)详解 谱聚类(Spectral Clustering, SC)是一种基于图论的聚类方法——将带权无向图划分为两个或两个以上的最优子图,使子图内部尽量相似 ...

  4. 谱聚类(Spectral Clustring)原理

    谱聚类(spectral clustering)是广泛使用的聚类算法,比起传统的K-Means算法,谱聚类对数据分布的适应性更强,聚类效果也很优秀,同时聚类的计算量也小很多,更加难能可贵的是实现起来也 ...

  5. 基于谱聚类的三维网格分割算法(Spectral Clustering)

    谱聚类(Spectral Clustering)是一种广泛使用的数据聚类算法,[Liu et al. 2004]基于谱聚类算法首次提出了一种三维网格分割方法.该方法首先构建一个相似矩阵用于记录网格上相 ...

  6. 机器学习六--K-means聚类算法

    机器学习六--K-means聚类算法 想想常见的分类算法有决策树.Logistic回归.SVM.贝叶斯等.分类作为一种监督学习方法,要求必须事先明确知道各个类别的信息,并且断言所有待分类项都有一个类别 ...

  7. 100天搞定机器学习|day54 聚类系列:层次聚类原理及案例

    几张GIF理解K-均值聚类原理 k均值聚类数学推导与python实现 前文说了k均值聚类,他是基于中心的聚类方法,通过迭代将样本分到k个类中,使每个样本与其所属类的中心或均值最近. 今天我们看一下无监 ...

  8. 【机器学习】聚类算法:层次聚类、K-means聚类

    聚类算法实践(一)--层次聚类.K-means聚类 摘要: 所谓聚类,就是将相似的事物聚集在一 起,而将不相似的事物划分到不同的类别的过程,是数据分析之中十分重要的一种手段.比如古典生物学之中,人们通 ...

  9. 【Python机器学习实战】聚类算法(1)——K-Means聚类

    实战部分主要针对某一具体算法对其原理进行较为详细的介绍,然后进行简单地实现(可能对算法性能考虑欠缺),这一部分主要介绍一些常见的一些聚类算法. K-means聚类算法 0.聚类算法算法简介 聚类算法算 ...

随机推荐

  1. xls 打乱序列 -和给拼接字符串加上双引号

    打乱  给空列 添加函数 =RAND() ,下拉,排序,即可打乱 添加双引号: =""""&C1&"""" ...

  2. Python爬虫之selenium各种注意报错

    刚刚写完第一个selenuim+BeautifulSoup实战爬虫 爬淘宝.发现代码写完后不加for 翻页的时候没什么问题 解析 操作 都没问题 也就是说第一页 的内容 完好 pagebtn=wait ...

  3. tp5.0 queue 队列操作

    检查是否安装redis(没有请自行百度安装): phpinfo: 配置thinkphp-queue,没有请执行 composer require topthink/think-queue 加入: 创建 ...

  4. Object类中方法详解

    目录 概述 hashCode方法 getClass方法 toString方法 equals方法 clone方法 finalize方法 概述 Object 是类层次结构的根类.每个类都使用 Object ...

  5. Linux kill 命令 以及USR1 信号解释

    kill 中的USR信号解释 USR1亦通常被用来告知应用程序重载配置文件:例如,向Apache HTTP服务器发送一个USR1信号将导致以下步骤的发生:停止接受新的连接,等待当前连接停止,重新载入配 ...

  6. R语言数据类型

    R语言数据类型[转!!]Zhao-Pace  https://www.cnblogs.com/zhao441354231/p/5970544.html   R语言用来存储数据的对象包括: 向量, 因子 ...

  7. 具体分析UGUI中RectTransform

    一:RectTransform 组件 1.Transform 组件是所有的游戏物体必备的一个组件,且不可删除,不可隐藏.就算是一个空物体,也是具备 Transform 组件的. Unity3D4.6 ...

  8. OpenStack--Rabbitmq组件消息队列

    概念 队列 MQ 全称为Message Queue,消息队列( MQ ) 是一种应用程序的通信方法.应用程序通过读写入列队的消息(针对应用程序的数据)来通信,而无需专用连接来链接它们. 消息传递指的是 ...

  9. PADS Layout VX.2.3 制作PCB封装(Decal)时,导入DXF文件

    操作系统:Windows 10 x64 工具1:PADS Layout VX.2.3 进入PCB封装编辑器(Decal Editor),点击Drafting Toolbar > Import D ...

  10. 题解 P5315 【头像上传】

    本题就是按照题目模拟, 只是要注意一些细节问题. 看代码注释 #include<bits/stdc++.h> using namespace std; int n,l,g,i; int m ...