0
点赞
收藏
分享

微信扫一扫

无监督算法

窗外路过了谁 2022-03-10 阅读 60

无监督算法简介

就是依靠数据之间的相似度,形成数据的类别。(下图有些是网上扒的,如有侵权望告知,立删)

层次聚类

比如有7个数据点,A,B,C,D,E,F,G。我们采用数据的欧式距离作为相似度(距离越小越相似):
在这里插入图片描述
将数据分别两两计算相似度:
在这里插入图片描述
得到BC的距离最小,这样我们就得到一个新的集合或者说是类:(B,C)。这样我们下一次计算相似度时,只有6个元素了:A,(B,C),D,E,F,G。然后两两计算相似度,得到:
在这里插入图片描述
当然,要提到的一点是,对于任意元素(如A)和集合(B,C)之间的距离度量,则取A分别和B,C的距离的均值(下面是几何均值):
在这里插入图片描述
当然若是两个类(A,F)和(B,C)的距离,则取两两间距离的均值:
在这里插入图片描述

最后便可以形成如下聚类图(我随便画的):
在这里插入图片描述
如果你的目标是分成3类,只需要拿一条横线截一下上面的图,让横线只穿过3条竖线即可。

K-Means

将数据分为k个簇 { C 1 , C 2 , ⋯ , C k } \{C_1,C_2,⋯,C_k\} {C1,C2,,Ck},每个簇有一个中心 μ i \mu_i μi
在这里插入图片描述

常用的相似度度量有欧几里得距离和余弦相似度。以下以距离为例:

均值漂移(Mean Shift)

漂移向量是给定中心点 X c X_c Xc距离小于 h h h的数据点集均值:
M h = E x i ∈ ( D < h ) [ x i − x c ] M_h =E_{x_i∈ (D<h)}[x_i-x_c] Mh=Exi(D<h)[xixc]
该向量表明了该范围内的数据实际中心与给定中心的偏差。然后进行中心位置更新(即漂移操作)
x c ← x c + M h x_c ← x_c + M_h xcxc+Mh
重复进行迭代,直到收敛。

更多可参考:机器学习聚类算法之Mean Shift

DBSCAN密度聚类

基本概念

假定同一类别的样本,他们之间的紧密相连的。
使用参数 ( ϵ , M i n P t s ) (ϵ, MinPts) (ϵ,MinPts)用来描述邻域的样本分布紧密程度。其中,ϵ描述了某一样本的邻域距离阈值,MinPts描述了邻域中样本个数的阈值

假设样本集是 D = ( x 1 , x 2 , . . . , x m ) D=(x_1,x_2,...,x_m) D=(x1,x2,...,xm),则对于 x j ∈ D x_j∈D xjD有:

下图中MinPts=5,则红色的点都是核心对象,黑色的样本是非核心对象。所有核心对象密度直达的样本在以红色核心对象为中心的超球体内,不在超球体内则不能密度直达。图中用绿色箭头连起来的核心对象组成了密度可达的样本序列。在这些密度可达的样本序列的ϵ-邻域内所有的样本相互都是密度相连的。
在这里插入图片描述

算法思想

1、任意选择一个没有类别的核心对象作为种子,然后找到所有这个核心对象能够密度可达的样本集合,即为一个聚类簇。

2、继续选择另一个没有类别的核心对象去寻找密度可达的样本集合,这样就得到另一个聚类簇。一直运行到所有核心对象都有类别为止,剩下的非核心对象则为噪声点。

更多参考:
具有噪声的基于密度的聚类方法
机器学习–聚类系列–DBSCAN算法(有图)

举报

相关推荐

0 条评论