2022/1/8机器学习之聚类

机器学习之聚类

1.定义:

聚类指将物理或抽象对象的集合分组为由类似的对象组成的多个类的分析过程。聚类试图将训练集中的样本数据划分为若干个(K个)通常互不相交的子集,每一个子集称为一个“簇”,达到“物以类聚”的效果,即是簇与簇之间的相似度低,簇内相似度高的目的**、

2.特征:

聚类属于无监督学习技术:无监督学习是基于缺乏足够的先验知识,因此难以人工标注类别或进行人工类别标注的成本太高的背景。很自然地,我们希望计算机能代我们完成这些工作,或至少提供一些帮助。根据类别未知(没有被标记)的训练样本解决模式识别中的各种问题,称之为无监督学习。
简而言之:输入数据没有标签的学习称为无监督学习

3.常见的聚类算法:

在这里插入图片描述

4.常见聚类算法的详细介绍:

A.基于划分的聚类算法之K-means算法

a.定义:

k-means算法中的k表示聚类为k个簇,means代表取每一个聚类中数据的均值作为该簇的中心(质心)即用每一个类的质心对该簇进行描述。

b.实现步骤:

输入:n个样本集合X;
输出:样本集合的聚类C;
1.初始化:令t=0,随机选择K个样本点中心作为初始聚类中心m=(m1,…,ml,…,mk)
2.对样本进行聚类。对固定的类中心,计算每个样本到类中心的距离,将每个样本指派到与其最近的中心的类中。构成聚类结果C。
3.计算新的类中心。对聚类结果C,计算当前各个类中的样本均值,作为新的类中心m~
4.如果集群赋值不再改变,或者达到用户定义的容限或者达到最大迭代数,输出结果,否则回到第2步重复。

该算法的时间复杂度为:O(tkmn):t为迭代次数,k为簇的数目,n为样本个数,m为样本维数
该算法的空间复杂度为:O(m(n+k)):k为簇的数目,m为样本维数,n为样本个数

c.优缺点

优点:
1.高效可伸缩,计算复杂度接近于线性。
2.收敛速度快,可解释性强,原理比较通俗易懂。
缺点:
1.K是超参数,一般按照经验来选择(可以先画出数据散点图,贯彻大致可以分为几类)
2.样本点只能划分到一类当中
3.受初值和异常点影响,聚类的结果可能不是全局最优而是局部最优

d.相似性刻画:可以选择距离进行度量,距离越近,相似性越高,下面介绍几种距离
聚类是距离的计算详情,点击跳转

常用的距离度量方法有很多种,衡量有序属性的方法包括了闵可夫斯基距离,欧式距离,切比雪夫距离,曼哈顿距离,余弦距离等。

1.闵科夫斯基距离(Minkowski distance)
在这里插入图片描述

2.曼哈顿距离(Manhattan distance)

当p=1时,闵科夫斯基距离即曼哈顿距离(Manhattan distance)
在这里插入图片描述
3 欧式距离(Euclidean distance)

当p=2时,闵科夫斯基距离即欧式距离(Euclidean distance)
在这里插入图片描述
4.切比雪夫距离(Chebyshev distance)
当p趋于无穷时,闵科夫斯基距离即切比雪夫距离(Chebyshev Distance)

小结:上述距离之间的关系。
闵可夫斯基距离,曼哈顿距离,欧式距离以及切比雪夫距离之间的关系图解。图中红线代表曼哈顿距离,绿色代表欧氏距离,也就是直线距离,而蓝色和黄色代表等价的曼哈顿距离
通俗来讲,想象你在曼哈顿要从一个十字路口开车到另外一个十字路口,驾驶距离是两点间的直线距离吗?显然不是,除非你能穿越大楼。而实际驾驶距离就是这个“曼哈顿距离”,这也是曼哈顿距离名称的来源, 同时,曼哈顿距离也称为城市街区距离(City Block distance)。

在这里插入图片描述
5. 余弦距离(Cosine Similarity)
利用闵可夫斯基度量对高维数据进行聚类通常是无效的,因为样本之间的距离随着维数的增加而增加。余弦距离测量两个矢量之间的夹角,而不是两个矢量之间的幅值差。它适用于高维数据聚类时相似度测量。
在这里插入图片描述
6. 马氏距离(Mahalanobis Distance)
马氏距离,即数据的协方差距离,于欧式距离不同的是它考虑到各属性之间的联系,如考虑性别信息时会带来一条关于身高的信息,因为二者有一定的关联度,而且独立于测量尺度。
在这里插入图片描述
其中∑是数据集x,y的协方差矩阵。马氏距离在非奇异变换下是不变的,可用来检测异常值(outliers)。

e.优化目标:
误差平方和(SSE):μ为集群的j的重心,如果样本点在集群中w=0,否则w=1在这里插入图片描述

B.改进的K-Means++算法:

解决的问题:经典的K-means算法如果初始聚类中心选择不当会导致聚类不良或者收敛缓慢,可以使用K-means++ 算法,将初始中心彼此的距离设置得足够远,带来比经典K-means算法更好地和更一致的效果

K-Means++算法实现步骤:

1.初始化空集合M来存储选择的k个重心。
2.从输入样本中随机选择第一个重心μ(j)然后加入M。
3.找出不在M中的每个样本x(i)与M中每个点的最小距离的平方
4.随机选择下一个重心μ,计算加权概率分布
在这里插入图片描述
5.重复步骤2和3直至选中k个重心。
6.继续进行经典的k-均值算法。

几个重要的概念:

1.硬聚类:指数据集中每个样本只能划分到一个簇的算法,例如k-means算法。
2.软聚类:指算法可以将一个样本划分到一个或者多个簇,模糊C-means(FCM)算法。

一个简单的例子帮助理解模糊FCM:

假设现在有一群人,要将他们自动分成大人和小孩两类,以身高作为分类标准(若身高大于160cm为大人,小于160cm为小孩)。现有一人身高为100cm,那么根据上述标准,不难判断,他会被划分到小孩一组。但是如果他的身高为159cm,该如何划分呢?

IDEA1:无论如何159cm总是小于160cm,应该被分到小孩组。
IDEA2:159cm很接近160cm,更偏离小孩组,应该被分到大人组。

以上两种说法体现了普通C均值算法(HCM)和模糊C均值算法(FCM)的差异:

普通C均值算法在分类时有一个硬性标准,根据该标准进行划分,分类结果非此即彼。(IDEA1)
模糊C均值算法更看重隶属度,即更接近于哪一方,隶属度越高,其相似度越高。(IDEA2)

由以上叙述不难判断,用模糊C均值算法来进行组类划分会使结果更加准确!

FCM的优化目标:其中m叫做模糊系数,用于控制模糊程度,m的值越大,集群成员数就越小,集群就越模糊
在这里插入图片描述
FCM属于集群的程度(概率):
在这里插入图片描述

用肘法求解最佳聚类数:

肘法的核心思想:随着聚类数k的增大,样本划分会更加精细,每个簇的聚合程度会逐渐提高,那么误差平方和SSE自然会逐渐变小。并且,当k小于真实聚类数时,由于k的增大会大幅增加每个簇的聚合程度,故SSE的下降幅度会很大,而当k到达真实聚类数时,再增加k所得到的聚合程度回报会迅速变小,所以SSE的下降幅度会骤减,然后随着k值的继续增大而趋于平缓,也就是说SSE和k的关系图是一个手肘的形状,而这个肘部对应的k值就是数据的真实聚类数。这也是该方法被称为肘方法的原因。
肘法的作用:评估给定任务的最佳集群数K

在这里插入图片描述

通过轮廓图量化聚类质量:

定义

轮廓系数,是用于评价聚类效果好坏的一种指标。可以理解为描述聚类后各个类别的轮廓清晰度的指标。其包含有两种因素——内聚度和分离度。
内聚度可以理解为反映一个样本点与类内元素的紧密程度。
分离度可以理解为反映一个样本点与类外元素的紧密程度

内聚度:样本与集群内部所有其他点的平均距离
分离度:样本与最近集群内所有样 本之间的平均距离

轮廓系数计算公式:即集群内聚度与集群分离度之差,除以两者中较 大的那一个
在这里插入图片描述
轮廓系数的范围在-1到1之间。如果集群分离度和集群内聚度相等,那么从前面的方程可以看到轮廓系数为0。此外,如果 b>>a,则接近理想的轮廓系数1

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

把集群组织成有层次的树:

层次聚类:

凝聚:首先从每个集群包含的单个样本开始,合并最接近的集群,直到只剩一个集群为止

分裂:首先从包含所有样本的集群开始逐步迭代,将集群分裂为更小的集群,知道每个集群只包含一个样本为止。

凝聚层次聚类:

单链接:计算两个集群中最相似的成员之间的距离,然后合并两个集群,其中两个最相似成员之间的距离最小。

全连接:类似于单链接,但是不是比较每对集群中最相似的成员,而是比较最不相似的成员,然后合并。

实现步骤:
1.计算所有样本的距离矩阵
2.将每个数据点表示为单例集群
3.根据最不相同的(遥远的)成员之间的距离合并两个最近的集群
4.更新相似度矩阵
5.重复2-4直到一个集群保持不变

在这里插入图片描述

平均连接法:基于两个集群中所有成员之间的最小平均距离来合并集群

沃德连接法:基于集群内总SEE增长最小的两个集群

层次聚类树状图:
在这里插入图片描述

热度图: 与层次聚类数通常和热度图连用,使得我们能够用颜色代表样本距离个体的数值

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值