Machine learning K-Means课堂笔记
什么是聚类? 如何成为无监督学习的问题? 聚类的属性 聚类在实际场景中的应用 了解聚类分析的不同评价指标 什么是 K 均值聚类? 在 Python 从头开始实现 K-Means 聚类 K挑战均值算法 K-Means 用于为 K 均值聚类选择初始聚类质心 K平均值中如何选择正确的聚类数? 在 Python 中实现 K-Means 聚类
什么是聚类?
银行把它的客户分类的过程就叫做聚类的过程 
所以聚类就是分类 聚类是一个无监督的学习问题!
: 监督学习是一种明确的训练方法,你知道你得到了什么;没有监督学习是一种没有明确目的的训练方法,你不能提前知道结果是什么。 监督学习需要标记数据;没有监督学习不需要标记数据。 由于目标明确,监督学习可以衡量效果;没有监督学习几乎无法量化效果。
聚类的属性
在分类的基础上进一步细分
在X轴上,我们有客户收入,y轴代表债务金额。在这里,我们可以清楚地看到,这些客户可以细分为四个不同的集群
这就是聚类分析如何帮助从数据中创建细分(聚类)。银行可以进一步利用这些集群制定策略,并向客户提供折扣。因此,让我们来看看这些集群的属性:
1.聚类中的所有数据点应相似。 2.来自不同聚类的数据点应尽可能不同
case2更好,因为相似性更相似,不相似性更不相似
超级有用的聚类分析:
1.可以实现像素的相似聚类,以确定你是个人还是狗[外链图片存储失败,源站可能有防盗链机制,建议保存图片并直接上传(img-8gqfpkQG-1651131691592)(file:///E:/kpi/No.2 semester/MachineLearning/lab1/2.png)] 2.通过浏览时间,可以实现推荐机制,喜欢推荐相同类型的视频或音乐或网站或广告
了解聚类分析的不同评价指标
如果有一堆需要聚类分析的指标呢? 我们需要一个评估标尺(指标)evaluation metrics) [ 其实也是遵循着相似的靠的更近,不相似的靠的更远的原则 ]
从一坨中心到每个点的距离总和
因为我们希望每个分类中的东西越相似越好,惯性距离越小越好,从中心到所有点的总距离越小越好
邓恩指数是因为要同时使相似的更近和不相似的更远。
除了理与点之间的距离外,Dunn该指数还考虑了两种聚类之间的距离。两种不同聚类的纹理之间的距离称为簇间距。让我们来看看邓恩指数的公式:
以上两种质地之间的距离越大越好,下面某个肿块的惯性之和越小越好
Dunn 该指数是簇间距(两种质心之间)的最小值与簇间距(惯性距离之和)的最大值之比。 我们希望最大化邓恩指数。Dunn指数值越大,聚类越好。
为了最大化 Dunn分子应该是指数值的最大值。在这里,我们取集群间距的最小值(惯性总和最小的块)。 因此,即使是最近的聚类之间的距离也应该更大,这最终将确保聚类相距甚远。
K-Means
K平均算法是最小化每个肿块的惯性之和 (如何将一个点分配给某个聚类) 【不断重新选择质心,计算其他点到质心的距离,选择最优点后不再重新选择质心的计算过程】
1.一堆球,先确定要分几类 2.如果分为两类,随机选择两个球作为质感 3.以Dunn将球分配给质地的原则
4.在新的肿块中重新选择质地,重新分配
5.重复:选择新的质地,然后分配,
1.重新选择,分配了 N 第二,质地保持不变,就可以停止了 2.达到最大迭代次数 3.所有的点都不会在你自己的肿块里改变
K-Means的缺陷就是 均
这是本该有的分类BUT因为它太均匀,它变成了
还有: 在这里,红色聚类中的点分散,其他聚类中的点紧密挤在一起。现在,如果我们把它们应用到这些点上 k 平均值,我们将得到以下聚类:
解决方案之一是使用更多的群集。
因此,在上述所有场景中,我们可以有更多的数量,而不是使用三个集群。也许设置 k=10 可能会导致更有意义的聚类。 还记得我们是怎么在的 k 在均值聚类中随机初始化质感吗?嗯,这也是一个潜在的问题,因为我们每次都能得到不同的集群。因此,为了解决随机初始化的问题,有一种叫做K-Means 算法可用于为K-Means选择初始值或初始聚类质心。
K-Means 用于为 K 均值聚类选择初始聚类质心
【多了一个初始化质感的过程】 【K-Means 用于K-Means之前用公式D(x)2.更好地确定质地,然后使用它K-Means分配每一点
例: 让我们举个例子来更清楚地理解这一点。假设我们有以下几点,我们想在这里做三个集群:
现在,第一步是随机选择一个数据点作为聚类:
假设我们选择绿点作为初始纹理。现在,我们将计算每个具有以下纹理的数据点之间的距离(D(x)):
下一种质地将是它的平方距离 (D(x)2) 离当前质心最远的质心:
在这种情况下,红点将被选为下一个纹理。现在,为了选择最后一个纹理,我们将选择每个点与最近的纹理之间的距离,最大的平方距离将选择下一个纹理:
肘部曲线
但是,我们如何确定最佳聚类数呢?我们能做的一件事就是画一个图形,也叫肘部曲线,x轴会表示聚类的数量,y轴将是评估指标。现在让我们谈谈惯性(也可以选择其他评估指标,如邓恩指数)。
接下来,我们将假设从一个小的集群值开始 2。使用 2 计算模型惯性的个聚类训练模型,最后在上图中绘制。假设我们的惯性值约为 1000:
现在,我们将增加聚类的数量,再次训练模型,并绘制惯性值。这是我们得到的:
当我们将聚类值从 2 更改为 4 惯性值急剧下降。随着聚类数量的进一步增加,惯性值的下降会减少并最终变得恒定。 因此, 将惯性值降低为常数的聚类值可以选择数据的正确聚类值。
在这里,我们可以在6到10之间选择任何数量的集群。我们可以有 7 个、8 个甚至 9 一个集群。在确定聚类数量时,还必须检查计算成本。如果我们增加集群数量,计算成本也会增加。因此,如果您没有高计算资源,我的建议是选择数量较少的集群。
以上是我的K-Means&K-Means 课堂笔记 多多指教!