无监督算法

无监督算法简介

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

层次聚类

比如有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)的距离,则取两两间距离的均值:
无监督算法

当然集合之间的距离有很多种取法,不局限于上述,如:
1、取两个类中距离最小的两个样本的距离作为两个集合的距离
2、取两个类中距离最大的两个样本的距离作为两个集合的距离
3、计算两个集合中每两两点的距离并取平均值

最后便可以形成如下聚类图(我随便画的):

无监督算法
如果你的目标是分成3类,只需要拿一条横线截一下上面的图,让横线只穿过3条竖线即可。

; K-Means

将数据分为k个簇{ C 1 , C 2 , ⋯ , C k } {C_1,C_2,⋯,C_k}{C 1 ​,C 2 ​,⋯,C k ​},每个簇有一个中心μ i \mu_i μi ​。

无监督算法

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

首先随便取k个中心,然后分别计算每个点到各个中心的距离,离哪个中心近,就把它归到哪个中心

然后根据各中心包含的点,重新计算中心位置,然后重新对各点进行中心归类。一直迭代,直到中心不再变化为止。

均值漂移(Mean Shift)

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

当然,是每次从未被标记(未分类)的数据中随意选一个点作为中心点,然后进行上述迭代,直到收敛。最后得到n个中心。

n个中心中,若两个中心距离小于h则进行合并,其数据归为一大类。若中心距离大于h且小于2h,即范围发生了重叠,则重叠部分可按照最近的中心进行分类,或者采用核函数看贡献值。

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

DBSCAN密度聚类

基本概念

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

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

ϵ-邻域:其ϵ-邻域包含样本集N ϵ ( x j ) = x i ∈ D ∣ d i s t a n c e ( x i , x j ) ≤ ϵ Nϵ(x_j)={xi∈D|distance(x_i,x_j)≤ϵ}N ϵ(x j ​)=x i ∈D ∣d i s t a n c e (x i ​,x j ​)≤ϵ,且 个数记为∣ N ϵ ( x j ) ∣ |Nϵ(x_j)|∣N ϵ(x j ​)∣

核心对象:如果其ϵ-邻域对应的∣ N ϵ ( x j ) ∣ ≥ M i n P t s |Nϵ(x_j)|≥MinPts ∣N ϵ(x j ​)∣≥M i n P t s,则其为核心对象。

密度直达:如果x j x_j x j ​是核心对象,且x i x_i x i ​位于x j x_j x j ​的ϵ-邻域中,则称x i x_i x i ​由x j x_j x j ​密度直达。

密度可达:如果存在样本序列p 1 , p 2 , . . . , p t p_1,p_2,…,p_t p 1 ​,p 2 ​,…,p t ​, 且p t + 1 p_{t+1}p t +1 ​由p t p_t p t ​密度直达。若满足p 1 p_1 p 1 ​=x i x_i x i ​,p t p_t p t ​=x j x_j x j ​, 则称x j x_j x j ​由x i x_i x i ​密度可达。也就是说,密度可达满足传递性。

(此时序列中的传递样本p 1 , p 2 , . . . , p t − 1 p_1,p_2,…,p_{t-1}p 1 ​,p 2 ​,…,p t −1 ​均为核心对象,因为只有核心对象才能使其他样本密度直达。)

密度相连:对于x i x_i x i ​和x j x_j x j ​,如果存在核心对象样本x k x_k x k ​,使x i x_i x i ​和x j x_j x j ​均由x k x_k x k ​密度可达,则称x i x_i x i ​和x j x_j x j ​密度相连。

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

无监督算法

; 算法思想

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

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

某些样本可能到两个核心对象的距离都小于ϵ,但是这两个核心对象由于不是密度直达,又不属于同一个聚类簇,那么如何界定这个样本的类别呢?一般来说,此时DBSCAN采用先来后到,先进行聚类的类别簇会标记这个样本为它的类别。也就是说DBSCAN的算法不是完全稳定的算法。

些异常样本点或者说少量游离于簇外的样本点,这些点不在任何一个核心对象在周围,在DBSCAN中,我们一般将这些样本点标记为噪音点。

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

Original: https://blog.csdn.net/qq_43133135/article/details/123196505
Author: qq_43133135
Title: 无监督算法

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/550712/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球