Machine learning K-Means课堂笔记

什么是聚类?
聚类如何成为无监督学习问题?
聚类的属性
聚类在实际场景中的应用
了解聚类分析的不同评估指标
什么是 K 均值聚类?
在 Python 中从头开始实现 K-Means 聚类
K均值算法的挑战
K-Means++用于为 K 均值聚类选择初始聚类质心
如何在K均值中选择正确的聚类数?
在 Python 中实现 K-Means ++ 聚类

什么是聚类?

银行把它的客户分类的过程就叫做聚类的过程

所以聚类就是分类嘛
聚类是一个无监督学习问题!


监督学习和无监督学习的区别
监督学习是一种目的明确的训练方式,你知道得到的是什么;而无监督学习则是没有明确目的的训练方式,你无法提前知道结果是什么。 监督学习需要给数据打标签;而无监督学习不需要给数据打标签。 监督学习由于目标明确,所以可以衡量效果;而无监督学习几乎无法量化效果如何。


聚类的属性

在分类的基础上进行进一步的细分

在X轴上,我们有客户的收入,y轴代表债务金额。在这里,我们可以清楚地看到这些客户可以细分为4个不同的集群

这就是聚类分析如何帮助从数据创建细分(聚类)的方式。银行可以进一步使用这些集群来制定策略并向其客户提供折扣。因此,让我们看一下这些集群的属性:

1.聚类中的所有数据点应彼此相似。
2.来自不同聚类的数据点应尽可能不同

case2更好,因为相似的更相似,不相似的更不相似

聚类分析超级有用:

1.可以实现像素的相似聚类,这样就可以识别你是不是个人,还是一条狗了[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8gqfpkQG-1651131691592)(file:///E:/kpi/No.2%20semester/MachineLearning/lab1/2.png)]
2.可以实现推荐机制,可以通过你的浏览时长,喜好推荐相同类型的视频或者音乐或者网站或者广告

了解聚类分析的不同评估指标

如果有一堆指标需要聚类分析该怎么办?
我们需要一个评估标尺(指标evaluation metrics)
[++其实也是遵循着相似的靠的更近,不相似的靠的更远的原则++]

1.惯性距离:
及一坨里面的中心到每个点的距离总和

因为我们希望每一个分类里的东西越相似越好,所以惯性距离越小越好,及这个中心到所有点儿的距离总和越小越好

2.邓恩指数:
因为要同时使得相似的更近和不相似的更远所以有了邓恩指数。

除了质心和点之间的距离外,Dunn指数还考虑了两个聚类之间的距离。两个不同聚类的质心之间的此距离称为簇间距离。让我们看一下邓恩指数的公式:

上面两个质心的距离越大越好,下面某一个坨里的惯性之和越小越好

Dunn 指数是簇间距离(两个质心之间)的最小值与簇内距离(惯性距离之和)的最大值之比。
我们希望最大化邓恩指数。Dunn指数的值越大,聚类就越好。

为了最大化 Dunn指数的值,分子应该是最大值。在这里,我们取集群间距离的最小值(惯性总和最小的那一坨)。
因此,即使是最近的聚类之间的距离也应该更大,这最终将确保聚类彼此相距甚远。

K-Means

K 均值算法的主要目标是最小化点与其各自的聚类质心之间的距离之和。
K均值算法就是想把每个坨坨里的惯性之和最小化
(如何将一个点分配给某聚类)
【不断地重新选择质心,计算其他点到质心的距离,选出最优点之后将不再重新选择质心的计算过程】

1.一堆球,先确定要分成几类
2.如果分了两类,随机选两个球作为质心
3.以Dunn原则将球分配给质心

4.在新的坨里重新选择质心,重新分配

5.重复:选择新的质心然后分配,迭代

计算质心并根据它们与质心的距离将所有点分配给聚类的步骤是一次迭代。但是等等 - 我们什么时候应该停止这个过程?它不能一直运行到永恒,对吧?

1.重新选择,分配了 N 次之后,质心保持不变,就可以停止了
2.达到最大迭代次数
3.所有的点都在自己那一坨里不再变化

K-Means的缺陷就是 均

这是本来该有的分类BUT因为它太均匀,就变成了

还有这样的:
此处,红色聚类中的点分散开来,而其余聚类中的点紧密地挤在一起。现在,如果我们在这些点上应用 k 均值,我们将得到如下聚类:

也就是说,这个东西他不一定能完美的实现聚类
也有可能分类分着分着成了人工智障

解决方案之一是使用更多数量的群集。

因此,在上述所有场景中,我们可以拥有更大的数量,而不是使用3个集群。也许设置 k=10 可能会导致更有意义的聚类。 还记得我们如何在 k 均值聚类中随机初始化质心吗?好吧,这也是潜在的问题,因为我们每次都可能得到不同的集群。因此,为了解决随机初始化的问题,有一种名为K-Means++的算法可用于为K-Means选择初始值或初始聚类质心。

K-Means++用于为 K 均值聚类选择初始聚类质心

【多了一个初始化质心的过程】
【K-Means++用于K-Means之前用公式D(x)2更好的确定质心,然后再用K-Means分配各个点】

例:
让我们举个例子来更清楚地理解这一点。假设我们有以下几点,我们想在这里做3个集群:

现在,第一步是随机选择一个数据点作为聚类质心:

假设我们选择绿点作为初始质心。现在,我们将计算具有以下质心的每个数据点的距离(D(x)):

下一个质心将是其平方距离 (D(x)2) 距离当前质心最远的质心:

在这种情况下,红点将被选为下一个质心。现在,为了选择最后一个质心,我们将取每个点与其最近质心的距离,并且具有最大平方距离的点将被选为下一个质心:

我们可以在初始化质心后继续使用 K-Means 算法。使用 K-Means++ 初始化质心往往会改善聚类。尽管相对于随机初始化而言,它的计算成本很高,但随后的 K 均值收敛速度通常更快。

肘部曲线


但是,我们如何确定最佳聚类数呢?我们可以做的一件事是绘制一个图形,也称为肘部曲线,其中x轴将表示聚类的数量,y轴将是评估指标。现在让我们说惯性(也可以选择其他的评估指标,比如邓恩指数)。


接下来,我们将从一个小的集群值开始,假设为 2。使用 2 个聚类训练模型,计算该模型的惯性,最后在上图中绘制它。假设我们的惯性值约为 1000:

现在,我们将增加聚类的数量,再次训练模型,并绘制惯性值。这是我们得到的情节:

当我们将聚类值从 2 更改为 4 时,惯性值急剧降低。惯性值的这种降低会减少,并最终随着我们进一步增加聚类的数量而变为恒定。
因此,++可以将惯性值减少变为常数的聚类值选为数据的正确聚类值。++

在这里,我们可以在6到10之间选择任意数量的集群。我们可以有 7 个、8 个甚至 9 个集群。在确定聚类数量时,还必须查看计算成本。如果我们增加集群的数量,计算成本也会增加。因此,如果您没有高计算资源,我的建议是选择数量较少的集群。

以上就是我的K-Means&K-Means++课堂笔记
多多指教!

Machine learning K-Means课堂笔记相关推荐

  1. Machine Learning in Action 读书笔记---第5章 Logistic回归

    Machine Learning in Action 读书笔记 第5章 Logistic回归 文章目录 Machine Learning in Action 读书笔记 一.Logistic回归 1.L ...

  2. Machine Learning in Action 读书笔记---第3章 决策树

    Machine Learning in Action 读书笔记 第3章 决策树 文章目录 Machine Learning in Action 读书笔记 一.决策树算法简介 1 决策树的构造 2 决策 ...

  3. Machine Learning in Action 读书笔记---第8章 预测数值型数据:回归

    Machine Learning in Action 读书笔记 第8章 预测数值型数据:回归 文章目录 Machine Learning in Action 读书笔记 一.回归 1.回归的一般过程 2 ...

  4. Machine Learning in Action 读书笔记---第4章 基于概率论的分类方法:朴素贝叶斯

    Machine Learning in Action 读书笔记 第4章 基于概率论的分类方法:朴素贝叶斯 文章目录 Machine Learning in Action 读书笔记 一.基于贝叶斯决策理 ...

  5. Machine Learning第六周笔记一:评估学习算法和bias/variance

    博客已经迁移到Marcovaldo's bolg (http://marcovaldong.github.io/) 入坑机器学习近一个月,学习资料主要是李航的<统计学习方法>.Peter ...

  6. Machine Learning第十周笔记:大规模机器学习

    博客已经迁移到Marcovaldo's blog (http://marcovaldong.github.io/) 刚刚完成了Andrew Ng在Cousera上的Machine Learning的第 ...

  7. 决策树(chap3)Machine Learning In Action学习笔记

    优点:计算复杂度不高,输出结果易于理解,对中间值的缺失不敏感,可以处理不相关特征数据. 缺点:可能会产生过度匹配问题. 适用数据类型:数值型(必须离散化)和标称型. 决策树创建分支的伪代码函数crea ...

  8. 原创 | 斯坦福Machine Learning with Graphs 学习笔记(第二讲)

    作者:于媛,十三鸣 本文长度为3300字,建议阅读10+分钟 本文为大家介绍常用的网络属性和经典的网络模型. 标签:机器学习 [ 导读 ]在研究网络的时候,我们往往需要从结构层面对网络进行分析,网络属 ...

  9. 原创 | 斯坦福Machine Learning with Graphs 学习笔记(第一讲)

    作者:林夕 本文长度为2900字,建议阅读9分钟 本文为大家介绍图网络的基本概念.网络的应用以及图的结构. 标签:机器学习 目录 一.Why Networks 二.网络的应用     2.1 应用领域 ...

  10. Machine Learning With Spark--读书笔记

    第一章 Spark的环境搭建与运行 Spark的支持四种运行模式 - 本地单机模式Spark Standalone:所有Spark进程都运行在同一个Java虚拟机中. - 集群单机模式:使用Spark ...

最新文章

  1. 今年央视春晚的创意担当,给了这个1岁的拓荒牛机器人
  2. Xen为什么一定要进入内核 —— [简译] KVM is Linux, Xen is not
  3. python IP地址无效化
  4. android PowerManage
  5. 【转】匈牙利算法理解
  6. 口令加密算法 - Java加密与安全
  7. php imap配置,怎么为PHP编译imap扩展?
  8. MySQL----分库分表
  9. Maven(五)使用Nexus搭建Maven私服
  10. 吴恩达机器学习学习笔记第七章:逻辑回归
  11. 杭电 1021 找规律
  12. 获得N^2个往返接力数字表格的算法
  13. python中实例是什么_Python里类和实例是什么
  14. 虚拟机Centos系统安装
  15. 如何在阿里云上购买域名并备案Iot studio
  16. 社招面试会遇到哪些坑?
  17. 北京农学院计算机调剂,2020北京农学院植物科学技术学院招收硕士研究生调剂...
  18. 【建议收藏】新到手的电脑Windows10/11系统优化、使用规范和技巧及软件推荐,提升范电脑性能和体验
  19. 笔记本联想拯救者英伟达win11调节不了亮度
  20. win10隐藏任务栏_win10系统任务栏彰显个性的设置方法

热门文章

  1. ArcGIS JSAPI2.0在IIS上的安装
  2. BitLocker恢复
  3. tar.gz和tgz的区别
  4. 自动驾驶 | SIL测试简单介绍
  5. Excel中计算曲线的面积
  6. C++实现DES加密解密算法
  7. maya导入abc动画_(送给纠结自学3d建模的同学)自学maya,zbrush,substance一个月的感想...
  8. 定时发布微信文件和消息
  9. 网吧管用之招(三)- 系统安装与调试备忘录(转)
  10. 手动查看和删除IPC未释放的资源