【吴恩达机器学习笔记】十一、聚类

news2024/12/23 6:11:27

✍个人博客:https://blog.csdn.net/Newin2020?spm=1011.2415.3001.5343
📣专栏定位:为学习吴恩达机器学习视频的同学提供的随堂笔记。
📚专栏简介:在这个专栏,我将整理吴恩达机器学习视频的所有内容的笔记,方便大家参考学习。
💡专栏地址:https://blog.csdn.net/Newin2020/article/details/128125806
📝视频地址:吴恩达机器学习系列课程
❤️如果有收获的话,欢迎点赞👍收藏📁,您的支持就是我创作的最大动力💪

十一、聚类

1. K-Means算法

现在我们要学的是目前为止第一个无监督算法,我们来看个例子来理解聚类算法中的K-Means算法。

现在我有一些样本,我想把它自动分为两类,那么我们先随机选取两个聚类中心。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CkxZIIRe-1670115008324)(吴恩达机器学习.assets/image-20211115075106741.png)]

然后就开始类内循环,每次循环都分两步,第一将离聚类中心近的点染成相同的颜色即分为己类,第二计算自己类别的样本均值,然后将聚类中心移动到均值点,再做相同的动作直至不能移动为止。

所以接下来看这个案例,先进行分类。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NnH9JCZO-1670115008327)(吴恩达机器学习.assets/image-20211115075341920.png)]

然后移动聚类中心。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aqIOQKpA-1670115008330)(吴恩达机器学习.assets/image-20211115075358943.png)]

然后再次分类。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dgdefU54-1670115008333)(吴恩达机器学习.assets/image-20211115075421449.png)]

然后再移动聚类中心。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7SuMxzh4-1670115008335)(吴恩达机器学习.assets/image-20211115075508116.png)]

然后再分类。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ww2qrHVj-1670115008340)(吴恩达机器学习.assets/image-20211115075525971.png)]

最后再移动聚类中心,得到最终位置。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3qvYygri-1670115008343)(吴恩达机器学习.assets/image-20211115075540937.png)]

接下来,我们看看具体步骤。

K值算法(K-means algorithm)

首先,我们要输入要分出的簇数K和训练集。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hjSMSDVL-1670115008348)(吴恩达机器学习.assets/image-20211115080050880.png)]

然后进行我们上面提到的步骤,先随机选取聚类中心,然后反复进行循环操作:

  • 对每个样本都计算其到每个聚类中心的距离,然后找出距离最小的那个,将其分类于它。
  • 对每个类都计算类中所有样本的均值,然后将聚类中心移到均值处。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nBjceUK8-1670115008349)(吴恩达机器学习.assets/image-20211115080646146.png)]

实际应用中,你可能会遇到一些不太好分类的情况,不会像左下图那样而是右下图T恤分类的例子,这时候分类的算法可能效果不会太好,不过K值算法仍然能分出三个类别,而设计师就可以通过分出的这三个类别观察这些样本的身高和体重,设计出相应适合大众人群的衣服大小。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OeCbsawz-1670115008351)(吴恩达机器学习.assets/image-20211115081312788.png)]

2. 优化目标

这节课我们来讲讲K值算法的代价函数,有时候也称失真(Distortion)代价函数

  • c(i):表示x(i)所属的类别。
  • μk:表示聚类中心k。
  • μc(i):表示x(i)所属的类别,这个主要用于下面的计算中。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MTbOLaKd-1670115008352)(吴恩达机器学习.assets/image-20211115082309753.png)]

3. 随机初始化

我们初始化时一般用的方法是,随机选取训练集中的样本直接作为聚类中心,所以有时候可能运气很好刚好分别选到两个簇中,但有时也会选到同个簇中,所以这可能会导致最终结果不相同。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1Hrod0HB-1670115008354)(吴恩达机器学习.assets/image-20211115083926786.png)]

正如下面所示,随机初始化可能会使K值算法得到**局部最优解(Local optima)**而不是全局最优解。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Heop8rSi-1670115008356)(吴恩达机器学习.assets/image-20211115084435674.png)]

所以我们会进行多次随机初始化以寻求一个更好的结果,具体步骤如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-y9pAjQXE-1670115008357)(吴恩达机器学习.assets/image-20211115084806179.png)]

假设我们进行100此循环,然后进行如上的步骤,每次循环都会计算一次J值,等循环结束后,我们就可以选取J值最小的那个例子去训练。而这种多次随机初始化的方法对于K比较小的时候十分有效,大概K在2-10的时候,但是当K十分大的时候,这种方法的效果就不会特别明显了。

4. 选取聚类数量

我们在选取聚类数量的时候可能会比较纠结,因为样本是没有标签的,分界线会比较模糊,难以划分类别,接下来我们先介绍一种方法叫肘部方法(Elbow method)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jB5awXvl-1670115008359)(吴恩达机器学习.assets/image-20211115090229324.png)]

我们可以通过画出J与K的图像观察曲线变化,如果想上图左侧曲线一样,就可以发现在K为3时是整个曲线的转折点,所以我们可以选取3作为聚类数量。但我们通常不用这种方法的原因是,一般曲线都会像上图右侧曲线那样,没有一个明确的转折点,就无法很好的选取聚类数量了。

还有一种方法,就是通过实际目的去选择聚类数量,还是用于市场分割设计T恤的那个例子。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-E8VQwTR6-1670115008361)(吴恩达机器学习.assets/image-20211115090910665.png)]

我们可以去思考我要如何设计T恤的大小才能满足顾客的需求,我可能会选择K=3即分为S,M,L也可能会选择K=5等等,总之我是通过最终对于市场需求这个目的来选择聚类的数量。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/59442.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

算法刷题入门线性表|单调栈

一、概念 1、栈的定义 栈 是仅限在 一端 进行 插入 和 删除 的 线性表。 栈 又被称为 后进先出 (Last In First Out) 的线性表,简称 LIFO 。 2、栈顶 栈 是一个线性表,我们把允许 插入 和 删除 的一端称为 栈顶。 3、栈底 和 栈顶 相对,另一端…

java计算机毕业设计ssm软件学院社团管理系统l62lq(附源码、数据库)

java计算机毕业设计ssm软件学院社团管理系统l62lq(附源码、数据库) 项目运行 环境配置: Jdk1.8 Tomcat8.5 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#…

[附源码]计算机毕业设计基于SpringBoot+Vue的健身房会员系统的设计与实现

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

Linux系统( Centos 7) 配置与管理Apache服务器实例详细步骤

Linux系统( Centos 7) 配置与管理Apache服务器实例详细步骤 服务器centos7-1 1.配置网络。 [rootcentos7 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33 TYPEEthernet PROXY_METHODnone BROWSER_ONLYno BOOTPROTOstatic DEFROUTEyes IPV…

【WPF】附加事件

【WPF】附加事件什么是附加事件附加事件用法Microsoft 官方文档附加事件案例定义自定义控件注册使用附加事件什么是附加事件 Microsoft 官方概述:   附加事件可用于在非元素类中定义新的 路由事件 ,并在树中的任何元素上引发该事件。 为此,…

【WebRTC】拥塞控制 GCC 类图

GoogCcNetworkController : 整个 congestion_controller 模块的中心类,是对外的接口 AcknowledgedBitrateEstimatorInterface AcknowledgedBitrateEstimator : 估算当前的吞吐量。 BitrateEstimator : 使用滑动窗口 卡尔曼滤波计算当前发送吞吐量。 RobustThro…

【Android App】实战项目之仿拼多多的直播带货(附源码和演示 超详细必看)

需要源码请点赞关注收藏后评论区留言私信~~~ 近年来电商业态发生了不小的改变,传统的电商平台把商品分门别类,配上精美的图文说明供消费者挑选,新潮的电商平台则请来明星网红,开启直播秀向广大粉丝推销商品,往往一场直…

微服务应对雪崩的容错方案

引言 书接上篇 微服务绕不过的坎-服务雪崩 ,玩微服务不可避免的问题:服务雪崩,那为了应付服务雪崩问题,需要做啥预防性操作呢?答案是:做好容错保护 容错方案 前面说了,要防止雪崩的扩散&…

[附源码]计算机毕业设计springboot疫情期间小学生作业线上管理系统

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

Android自定义视图

View 自定义视图主要涉及四个方面:绘图、交互、性能和封装 绘图 主要涉及两个对象:画布(Canvas)和画笔(Paint),画布主要解决画什么的问题,在画布上可以绘制各种各样的图形&#x…

《CTFshow - Web入门》04. Web 31~40

Web 31~40web31知识点题解web32知识点题解web33知识点题解web34知识点题解web35知识点题解web36知识点题解web37知识点题解web38知识点题解web39知识点题解web40知识点题解web31 知识点 这里依旧可以用到 web29 的方法: 嵌套eval逃逸参数 当然,能多学…

# 智慧社区管理系统-基础信息管理-06抄表管理

一后端 1:entity package com.woniu.community.entity;import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor;Data AllArgsConstructor NoArgsConstructor public class Records {private int id;private int typeId;private Double num…

博安生物更新招股书:上半年亏1.5亿 绿叶制药与建银聚源是股东

雷递网 雷建平 12月3日山东博安生物技术股份有限公司(简称:“博安生物”)日前再次递交招股书,并更新招股书,准备在香港上市。上半年期内亏损1.53亿元博安生物是绿叶制药集团的附属公司,于2013年成立&#x…

远程桌面树莓派【内网穿透】

本篇文章主要分享如何在公网环境下,远程桌面连接家里的树莓派。 远程桌面环境,我们选择通过XRDP来实现,它内部使用的是windows远程桌面的协议。 而由于现在普遍处于大内网环境,绝大部分人都没有公网IP,所以我们这里用…

(9)点云数据处理学习——Global registration(全局注册)

1、主要参考 (1)官网的地址 Global registration — Open3D 0.16.0 documentation 2、作用和原理 2.1个人理解 PS理解:(1)ICP的作用是,2个点云数据在初步转换关系(已知不精确)的…

【关系抽取】TPLinker:单阶段联合抽取,并解决暴漏偏差

🔎大家好,我是Sonhhxg_柒,希望你看完之后,能对你有所帮助,不足请指正!共同学习交流🔎 📝个人主页-Sonhhxg_柒的博客_CSDN博客 📃 🎁欢迎各位→点赞…

车载GNSS/INS/LiDAR坐标系定义与理解

目录一、基本坐标系1.1 地心惯性坐标系(Inertial coordinate system,i系)1.2 地心地固坐标系(Earth-Centered, Earth-Fixed,e系)1.3 导航坐标系(Navigation,n系)1.4 车体…

[附源码]计算机毕业设计springboot疫苗药品批量扫码识别追溯系统

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

一、领域驱动设计核心思想与设计过程

一、软件发展的必然规律 1、软件是对真是世界的模拟,但真实世界软件十分复杂。 2、人在认识真实世界的时候总是有一个从简单到复杂的过程 3、软件需求的变更成为一种必然的事情,并且总是由简单向复杂转变 4、初期软件的业务逻辑十分简单清晰命令&#x…

C语言画直方图

前言 最近在看K&R的《C语言程序设计语言》这本书,第一单元的练习13要求画一个统计单词长度的直方图,这里忽略了计算单词长度的代码,假设已知单词长度存入一个digit数组中,根据这个数组画水平直方图和垂直直方图。实话说&…