机器学习之无监督学习的聚类算法详解

聚类是一种无监督的学习,它将相似的对象归到同一个簇中。它有点像全自动分类。聚类方法几乎可以应用于所有对象,簇内的对象越相似,聚类的效果越好。

K-均值聚类算法

基本概念

:假定有一些数据,现在将相似数据归到一起,簇识别会告诉我们这些簇到底都是些什么。聚类与分类的最大不同在于,分类的目标事先已知,而聚类则是类别未知,其产生的结果和分类相同。
K-均值中的K(簇个数)是自己给定的,k是多少就有多少个簇。
质心:均值,即向量各维取平均,即簇中所有点的中心来描述。
距离的度量:常用欧氏距离 ( x2+y2)\sqrt{x^2+y^2} )余弦相似度(通过测量两个向量的夹角的余弦值来度量它们之间的相似性),大多情况下都要先标准化
优化目标mini=1KxCidist(ci,x)2min \sum_{i=1}^{K}\sum_{x\in{Ci}}dist(c_i,x)^2 就是使所有簇里的点到质心的距离加起来最小

工作流程:

  • 随机确定k个初始点作为质心
  • 然后将数据集中的每个点分配到一个簇中,即为每个点找距其最近的质心
  • 然后其分配给该质心所对应的簇
  • 然后每个簇的质心更新为该簇所有点的平均值

下面具体来看:

1.根据自己的数据,设K值,现假设K=2
在这里插入图片描述
2.K=2,所以随机取两个点作为质心
在这里插入图片描述
3.根据那两个质心进行距离计算并划分簇
在这里插入图片描述
4.对已经分类了的两个簇进行质心的更新,再重新遍历一遍计算距离
在这里插入图片描述
5.更新到再更新他的簇也不再变之后就说明已经分好了

在这里插入图片描述

优缺点

优点:简单快速,适合常规数据集

缺点:

  1. K值难确定,不好调参
  2. 复杂度与样本成线性关系,在大规模数据集上收敛较慢。
  3. 可能收敛到局部最小值
  4. 对一些环状簇或者奇形怪状的簇难以分离

适用数据类型:数值型数据。

在这里插入图片描述

K-均值聚类的一般流程
(1) 收集数据:使用任意方法。

(2) 准备数据:需要数值型数据来计算距离,也可以将标称型数据映射为二值型数据再用于距离计算。

(3) 分析数据:使用任意方法。

(4) 训练算法:不适用于无监督学习,即无监督学习没有训练过程。

(5) 测试算法:应用聚类算法、观察结果。可以使用量化的误差指标如误差平方和(后面 会介绍)来评价算法的结果。

(6) 使用算法:可以用于所希望的任何应用。通常情况下,簇质心可以代表整个簇的数据 来做出决策。

DBSCAN聚类( Density-Based Spatial Clustering of Applications with Noise)

DBSCAN 的主要优点是它不需要用户先验地设置簇K的个数,可以划分具有复杂形状的簇,还可以找出不属于任何簇的点。DBSCAN 比凝聚聚类和 k 均值稍慢,但仍可以扩展到相对较大的数据集。

原理思想

识别特征空间的“拥挤”区域中的点,在这些区域中许多数据点靠近在一起。这些区域被称为特征空间中的密集区域

思想是,簇形成数据的密集区域,并由相对较空的区域分隔开。

基本概念

核心样本:在密集区域内的点被称为核心样本(或核心对象,核心点)。

ϵ-邻域的距离阈值:设定的半径r

直接密度可达:若某点b在点q的 r 邻域内,且a是核心点则p-q直接密度可达。
b
密度可达:若有一个点的序列q0、q1、…qk,对任意qi-qi-1是直接密度可达的,则称从q0到qk密度可达,这实际上是直接密度可达的“传播”。
此图a,b密度可达
在这里插入图片描述
密度相连:若从某核心点p出发,点q和点k都是密度可达的,则称点q和点k是密度相连的。

边界点:属于某一个类的非核心点,不能发展下线了

噪声点:不属于任何一个类簇的点,从任何一个核心点出发都是密度不可达的

如图。A是核心对象,A1,A2,A3在A这个圈内,即A123是A的下线,A123又会以自己为核心点画圈。往下类似,直到遇到B,C这种下线,他们再画圈,其圈内没有其他下线了,就叫做边界点。N是所有的核心点画的圈都圈不到的一个点,所以N是离群点,也叫噪声点。

工作流程

在这里插入图片描述
参数选择:
半径ϵ:可以根据K距离来设定:找突变点

K距离:给定数据集P={p(i); i=0,1,…n},计算点P(i)到集合D的子集S中所有点 之间的距离,距离按照从小到大的顺序排序,d(k)就被称为k-距离。

点的个数MinPts: k-距离中k的值,一般取的小一些,多次尝试

优缺点

优点:

  • 不需要指定簇个数
  • 可以发现任意形状的簇
  • 擅长找到离群点(检测任务) 两个参数就够了

缺点:

  • 高维数据有些困难(可以做降维)
  • 参数难以选择(参数对结果的影响非常大)
  • Sklearn中效率很慢(数据削减策略)

很牛的一个聚类可视化网站可以自己玩玩
https://www.naftaliharris.com/blog/visualizing-dbscan- clustering/

在这里插入图片描述
在这里插入图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章