从0开始学习机器学习--Day26--聚类算法

无监督学习(Unsupervised learning and introduction)

监督学习问题的样本

无监督学习样本

如图,可以看到两者的区别在于无监督学习的样本是没有标签的,换言之就是无监督学习不会赋予主观上的判断,需要算法自己去探寻区别,第二张图就是算法经过计算根据位置特点给两组样本划分开来,尽管算法并不知道这种特点意味着什么,这种按照特点分成一组或几组簇的算法叫聚类算法。

K-means 算法(K-means algorithm)

假设我们数据集中的数据呈现两组的分布,K-means算法首先会给出两个点(之所以是两个是因为其数据分布像是两类数据,如果是成三组的聚类分布则有三个聚类中心点),将其称为聚类中心。接着遍历数据集中的每个样本点,计算其离哪个中心点更近,就将其分配给那类,如图,经过计算后通过颜色来区分数据集中的两类样本:

将每个样本点分配给最近的聚类中心点

接下来,分别计算分配后的两类簇数据集的均值点,并把聚类中心移到均值点处,重新进行一次簇分配,以此类推,随着两类数据集的重新分配,聚类中心点会不断地移动到簇的中心,直到聚类中心及其样本不再变化:

分配好的两类簇以及聚类中心点

总结一下,对于K-means算法来说,首先是输入簇的数量K和无标签的样本集,接着把K个聚类中心记作\mu_{K},随即循环计算每个点到每个聚类中心的距离并找到最小值,即c^{(i)} = min||x^{(i)}-\mu_{K}||^{2},计算每个簇的均值点,将其值更新为新的聚类中心,直到聚类中心点及其样本点类别不再改变,写成代价函数就是:J(c^{(1)},...,c^{(m)},\mu_{1},...,\mu_{K}) = \frac{1}{m}\sum_{i=1}^{m}{||x^{(i)}-\mu_{K}||^{2}},有时也把它叫做失真代价函数。

随机初始化(Random initialization)

虽然我们有了聚类算法如何更新的细节,但是每簇的第一个聚类中心该怎么选取呢?

事实上,一般我们会进行多次的随机初始化并选取代价函数值最小的那类结果,每一次随机初始化都会随机选取K个样本点作为聚类中心,进行多次初始化的原因是避免使用计算出局部最优解的算法结果,如下:

三类簇的局部最优解中心点

一般来说,我们选择的迭代次数在50到10000之间,注意,当簇的数量较低时,如2-10,多次的迭代会给出好的结果,而如果簇的种类较多,一般在第一次初始化就会得到相当好的结果,但后面即便进行多次初始化也不会有太大的提升。

一般来说,K值的选取都是通过我们手动来决定,即观察可视化的图或事先对数据集有一定的了解,这里介绍两种选取K值的方法。

肘部法则选择K值

如图,我们分别计算K从1到8的代价函数值,从图中观察,假设图像存在一个较为明显的拐点,就像图的左边,我们就能够认为选取该点作为K值比较好;当然,如果运气不好画出的图像右边一样是一个平稳下降的勺子,那么只能回到我们的手动选取法了,我们把这个方法称为肘部法则。

另一种方法则是在每次选取一种聚类数量后进行一次评估,例如计算可得的利润,市场需求的满足度等等,这能帮你更好地判断哪类聚类数量更符合你的数据。

数据压缩(Data compression)

除了聚类算法,还有一种经常会见到的无监督学习算法叫做降维,算法的其中一个功能叫做数据压缩。

将两个特征压缩为一个特征

如图,假设我们有两个输入特征,一个表示物体的厘米长度,一个表示英寸长度,这实际上只是同一种数据特征的不同单位表示,那么这时候我们就可以对其进行数据压缩,将这两个特征的样本点重新用一个特征表示也就是将二维数据降为一维数据,通过z^{(m)}的方式来表示原来的样本点,这样做就能减少原来所占用的一部分内存空间,类似的,三维降为二维也是通过投影的方法将其用二维的点来表示三维的样本。

可视化(Data Visualization)

降维的另一个好处的可以让数据更好地可视化,从而对数据集有更好的了解,方便后续处理。

假如我们对多个国家进行了50个种类的数据调查,每个国家的特征是50维的向量,此时我们很难去直观地判断这些国家的特点,可能需要去进行复杂的计算才行。但假如我们对这些数据进行降维压缩,例如降成2维,国家总GDP和人均GDP(降维后新数据的意义不同于之前),在图上我们就可以很清晰地看到这些国家的实力:

降维后的国家数据

视频学习来自:https://www.bilibili.com/video/BV1By4y1J7A5?spm_id_from=333.788.videopod.episodes&vd_source=867b8ecbd62561f6cb9b4a83a368f691&p=83

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

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

相关文章

网页直播/点播播放器EasyPlayer.js网页web无插件播放器渲染页面出现倒挂的原因排查

EasyPlayer.js网页web无插件播放器属于一款高效、精炼、稳定且免费的流媒体播放器,可支持多种流媒体协议播放,无须安装任何插件,起播快、延迟低、兼容性强,使用非常便捷。 EasyPlayer.js播放器不仅支持H.264与H.265视频编码格式&a…

P3-3.【结构化程序设计】第三节——知识要点:while语句、do-while语句和for语句

视频: P3-3.【结构化程序设计】第三节——知识要点:while语句、do-while语句和for语句 知识要点:while语句、do-while语句和for语句 目录 一、任务分析 二、必备知识与理论 三、任务实施 一、任务分析 输出某班若干学生的成绩&#xff0…

面试时问到软件开发原则,我emo了

今天去一个小公司面试,面试官是公司的软件总监,眼镜老花到看笔记本电脑困难,用win7的IE打开leetcode网页半天打不开,公司的wifi连接不上,用自己手机热点,却在笔记本电脑上找不到。还是我用自己的手机做热点…

【重生之我要苦学C语言】深入理解指针6

深入理解指针6 sizeof和strlen的对比 sizeof 操作符 整型&#xff1a; #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> int main() {int a 10;printf("%zd\n", sizeof(a));printf("%zd\n", sizeof(int));printf("%zd\n", sizeo…

虚拟展厅赋能线上品牌发布会,打造沉浸式体验

线上品牌发布会与虚拟展厅的结合&#xff0c;为企业提供了一个全新的、高效的品牌展示和营销平台。视创云展巧妙融合了3D导览、720全景沉浸体验、虚拟数字人交互、音视频通话以及个性化的互动功能&#xff0c;打造极具沉浸感的线上虚拟品牌发布会&#xff0c;深度赋能体验经济时…

shell编程(3)脚本参数传递与数学运算

声明!!! 学习视频来自B站UP主泷羽sec&#xff0c;如涉及侵权马上删除文章 视频链接&#xff1a;泷羽sec 笔记的只是方便各位师傅学习知识,以下网站只涉及学习内容,其他的都与本人无关,切莫逾越法律红线,否则后果自负 # 向脚本程序传参 脚本如下&#xff1a; echo 执行的文件名…

CTF-Crypto-affine

首页看描述 一个数学方程和一个flag&#xff0c;应该就是密文构成 y 17x-8 flag{szzyfimhyzd} e一下题目&#xff0c;字典给了一个线索&#xff0c;仿射&#xff0c;那应该就是仿射密码 e一下原理 简单来说&#xff0c;该加密方式&#xff0c;需要两个秘钥来进行加密和解密&a…

YOLOv8改进,YOLOv8结合DynamicConv(动态卷积),CVPR2024,二次创新C2f结构

摘要 大规模视觉预训练显著提高了大规模视觉模型的性能。现有的低 FLOPs 模型无法从大规模预训练中受益。在本文中,作者提出了一种新的设计原则,称为 ParameterNet,旨在通过最小化FLOPs的增加来增加大规模视觉预训练模型中的参数数量。利用 DynamicConv 动态卷积将额外的参…

【AI数字人整合包及教程】EchoMimic:开启数字人新纪元

在当今数字化转型的浪潮中&#xff0c;人工智能技术正以前所未有的速度重塑我们的生活方式。其中&#xff0c;阿里巴巴旗下蚂蚁集团推出的一款名为EchoMimic的开源AI数字人项目&#xff0c;正在引领一场前所未有的技术革命。本文将深入探讨EchoMimic的技术特点&#xff0c;与其…

linux逻辑卷练习

目录 知识点&#xff1a; 常用命令 题目&#xff1a; 解题&#xff1a; 1&#xff09;分区 2&#xff09;创建物理卷 3&#xff09;创建卷组 4&#xff09;生成逻辑卷 "要带参数 -n" 5&#xff09;扩容 6&#xff09;格式化(添加文件系统) 7&#xff09;挂…

【MySQL】SQL语言

【MySQL】SQL语言 文章目录 【MySQL】SQL语言前言一、SQL的通用语法二、SQL的分类三、SQLDDLDMLDQLDCL 总结 前言 本篇文章将讲到SQL语言&#xff0c;包括SQL的通用语法,SQL的分类,以及SQL语言的DDL,DML,DQL,DCL。 一、SQL的通用语法 在学习具体的SQL语句之前&#xff0c;先来…

51单片机基础04 LCD1602时序;Proteus仿真单片机、总线、网络标号等;

目录 一、LCD显示字符 1、写指令 &#xff08;1&#xff09;、LCD状态配置 &#xff08;2&#xff09;、显示开关与光标 2、写数据 &#xff08;1&#xff09;、设置地址 &#xff08;2&#xff09;、设置数据 3、初始化代码 &#xff08;1&#xff09;、初始化流程 …

性能优化(二):ANR

介绍 ANR全称Application Not Responding&#xff0c;意思就是程序未响应。如果一个应用无法响应用户的输入&#xff0c;系统就会弹出一个ANR对话框&#xff0c;用户可以自行选择继续等待亦或者是停止当前程序。 Android系统会监控程序的响应状况&#xff0c;一旦出现下面情况…

哑光电影人像自拍风景摄影后期Lr调色教程,手机滤镜PS+Lightroom预设下载!

调色教程 哑光电影人像自拍风景摄影后期调色旨在通过 Lightroom 软件为照片营造出一种具有电影质感的哑光效果&#xff0c;同时突出人像与风景的融合之美。 预设信息 调色风格&#xff1a;电影风格预设适合类型&#xff1a;人像&#xff0c;风光&#xff0c;自拍&#xff0c;…

二五、pxe自动装机

pxe自动装机 pxe------------------------------自动安装系统必要的运行环境 无人值守--------------------为系统定制化的安装需要的软件 pxe的优点&#xff1a; 1、规模化&#xff1a;同时装配多台服务器&#xff08;20-30&#xff09; 2、自动化&#xff1a;系统安装和…

Cadence安装

记录一下安装过程&#xff0c;方便以后安装使用Cadence。 去吴川斌的博客下载安装包&#xff0c;吴川斌博客&#xff1a; https://www.mr-wu.cn/cadence-orcad-allegro-resource-downloads/ 下载阿狸狗破戒大师 我这边下载的是版本V3.2.6&#xff0c;同样在吴川斌的博客下载安装…

VScode-Java开发常用插件

中文——界面易读 字体主题——代码可观 头注释——项目信息明了 java开发包——java必备 git协作开发——版本控制

19.UE5道具掉落

2-21 道具掉落&#xff0c;回血、回蓝、升级提升伤害_哔哩哔哩_bilibili 目录 1.道具的创建&#xff0c;道具功能的实现 2.随机掉落 1.道具的创建&#xff0c;道具功能的实现 新建Actor蓝图&#xff0c;并命名为道具总类&#xff0c;添加一个Niagara粒子组件和一个碰撞箱bo…

算法--分解数字

#分解5位整数 12345# 定义一个函数x&#xff0c;用于将一个整数n转换为一个列表&#xff0c;列表中的元素是n的每一位数字 def x(n):# 如果n小于10&#xff0c;说明n是一个一位数&#xff0c;直接创建一个包含n的列表并返回if n < 10:list1 [] # 创建一个空列表list1.appe…

protobuf序列化

Protocol Buffers (protobuf) 是一种由 Google 开发的轻便、高效的结构化数据序列化格式&#xff0c;常用于数据存储或在应用程序之间传输数据。它可以将数据结构&#xff08;如对象、消息&#xff09;转换为字节流&#xff0c;以便在网络上进行传输或存储。 Protobuf序列化基…