从0开始学习机器学习--Day26--聚类算法
无监督学习(Unsupervised learning and introduction)
监督学习问题的样本
无监督学习样本
如图,可以看到两者的区别在于无监督学习的样本是没有标签的,换言之就是无监督学习不会赋予主观上的判断,需要算法自己去探寻区别,第二张图就是算法经过计算根据位置特点给两组样本划分开来,尽管算法并不知道这种特点意味着什么,这种按照特点分成一组或几组簇的算法叫聚类算法。
K-means 算法(K-means algorithm)
假设我们数据集中的数据呈现两组的分布,K-means算法首先会给出两个点(之所以是两个是因为其数据分布像是两类数据,如果是成三组的聚类分布则有三个聚类中心点),将其称为聚类中心。接着遍历数据集中的每个样本点,计算其离哪个中心点更近,就将其分配给那类,如图,经过计算后通过颜色来区分数据集中的两类样本:
将每个样本点分配给最近的聚类中心点
接下来,分别计算分配后的两类簇数据集的均值点,并把聚类中心移到均值点处,重新进行一次簇分配,以此类推,随着两类数据集的重新分配,聚类中心点会不断地移动到簇的中心,直到聚类中心及其样本不再变化:
分配好的两类簇以及聚类中心点
总结一下,对于K-means算法来说,首先是输入簇的数量K和无标签的样本集,接着把K个聚类中心记作,随即循环计算每个点到每个聚类中心的距离并找到最小值,即,计算每个簇的均值点,将其值更新为新的聚类中心,直到聚类中心点及其样本点类别不再改变,写成代价函数就是:,有时也把它叫做失真代价函数。
随机初始化(Random initialization)
虽然我们有了聚类算法如何更新的细节,但是每簇的第一个聚类中心该怎么选取呢?
事实上,一般我们会进行多次的随机初始化并选取代价函数值最小的那类结果,每一次随机初始化都会随机选取K个样本点作为聚类中心,进行多次初始化的原因是避免使用计算出局部最优解的算法结果,如下:
三类簇的局部最优解中心点
一般来说,我们选择的迭代次数在50到10000之间,注意,当簇的数量较低时,如2-10,多次的迭代会给出好的结果,而如果簇的种类较多,一般在第一次初始化就会得到相当好的结果,但后面即便进行多次初始化也不会有太大的提升。
一般来说,K值的选取都是通过我们手动来决定,即观察可视化的图或事先对数据集有一定的了解,这里介绍两种选取K值的方法。
肘部法则选择K值
如图,我们分别计算K从1到8的代价函数值,从图中观察,假设图像存在一个较为明显的拐点,就像图的左边,我们就能够认为选取该点作为K值比较好;当然,如果运气不好画出的图像右边一样是一个平稳下降的勺子,那么只能回到我们的手动选取法了,我们把这个方法称为肘部法则。
另一种方法则是在每次选取一种聚类数量后进行一次评估,例如计算可得的利润,市场需求的满足度等等,这能帮你更好地判断哪类聚类数量更符合你的数据。
数据压缩(Data compression)
除了聚类算法,还有一种经常会见到的无监督学习算法叫做降维,算法的其中一个功能叫做数据压缩。
将两个特征压缩为一个特征
如图,假设我们有两个输入特征,一个表示物体的厘米长度,一个表示英寸长度,这实际上只是同一种数据特征的不同单位表示,那么这时候我们就可以对其进行数据压缩,将这两个特征的样本点重新用一个特征表示也就是将二维数据降为一维数据,通过的方式来表示原来的样本点,这样做就能减少原来所占用的一部分内存空间,类似的,三维降为二维也是通过投影的方法将其用二维的点来表示三维的样本。
可视化(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
相关文章:
从0开始学习机器学习--Day26--聚类算法
无监督学习(Unsupervised learning and introduction) 监督学习问题的样本 无监督学习样本 如图,可以看到两者的区别在于无监督学习的样本是没有标签的,换言之就是无监督学习不会赋予主观上的判断,需要算法自己去探寻区别,第二张…...
Vue3插槽v-slot使用方式
在 Vue 3 中,v-slot 是用来定义和使用插槽的指令。插槽是 Vue 的一个功能,允许你在组件内部定义占位内容,便于在父组件中提供动态内容。以下是 v-slot 的详细使用方法: 1. 基础使用 <template><BaseComponent><te…...
Axure二级菜单下拉交互实例
1.使用boxlabe进行基础布局 2.设置鼠标悬浮和选中状态 3.转换为动态面板 选中所有二级菜单,进行按钮组转换 选中所有二级菜单,进行动态面板转换 4.给用户管理增加显示/隐藏事件 1)选择toggle代表上拉和下拉切换加载 2)勾选Bring to Front,并选择Push/Pull Widgets代表收缩时…...
华为VPN技术
1.启动设备 2.配置IP地址 [FW1]int g1/0/0 [FW1-GigabitEthernet1/0/0]ip add 192.168.1.254 24 [FW1-GigabitEthernet1/0/0]int g1/0/1 [FW1-GigabitEthernet1/0/1]ip add 100.1.1.1 24 [FW1-GigabitEthernet1/0/1]service-manage ping permit [FW2]int g1/0/0 [FW2-Gi…...
CommonsBeanutils与Shiro发序列化利用的学习
一、前言 前面的学习中,过了一遍cc1-cc7的利用链,在CC2的利用链中,学习了 java.util.PriorityQueue,它在Java中是一个优先队列,队列中每一个元素都有自己的优先级。在反序列化这个对象时,为了保证队列顺序…...
运维云计算SRE-第2周
1. 总结学过的权限,属性及ACL相关命令及选项,示例。 一、Linux安全模型 (一)资源分派 Authentication(认证):验证用户身份,确保登录系统的用户是合法的。 Authorization(…...
React Native 全栈开发实战班 - 用户界面进阶之响应式设计实践
在移动应用开发中,响应式设计 是确保应用在不同设备、屏幕尺寸和方向下都能提供良好用户体验的关键。React Native 提供了多种工具和技巧来实现响应式设计,包括 Flexbox 布局、动态样式、屏幕尺寸适配等。本章节将详细介绍如何在 React Native 中进行响应…...
SlickGrid点击/双击事件
分析 SlickGrid提供了点击事件方法grid.onClick和grid.onDblClick用于捕获用户对表格列的点击,捕获到点击事件之后,修改表格数据,然后使用grid.updateRow方法将修改后的数据更新到表格中。 展示 代码 创建grid(HTML)…...
一文详细深入总结服务器选型
1. 题记: 服务器选型工作是项目规划检讨的一项非常重要的工作,本文详细深入总结服务器选型。 2. 服务器基础知识概览 2.1 服务器的定义与功能 2.1 .1 定义 服务器是一种高性能计算机,其设计目的是在网络中提供服务。它可以处理来自多个客…...
一、Nginx反向代理(七层代理)二、Nginx的TCP/UDP调度器(四层代理)
一、Nginx反向代理(七层代理) 实验要求 使用Nginx实现Web反向代理功能,实现如下功能: 后端Web服务器两台,可以使用httpd实现Nginx采用轮询的方式调用后端Web服务器两台Web服务器的权重要求设置为不同的值最大失败次数为…...
CSS+JQuery 实现弹力球效果,碰到屏幕边框弹回
实现弹力球效果,碰到屏幕边框弹回,效果如下 代码如下: <img src"../image/ball.png" alt"" class"ball"> <style>.ball {position: fixed;top: 50vh;left: 50vw;width: 15vw;height: 15vw;border…...
shell编程规范和脚本变量
什么是shell 人和计算机内核之间的中介: 计算机的语言是二进制,把人类的语言翻译成计算机能够识别的语言,然后让内核来处理 内核完成之后要把结果反馈给用户,要把计算机的翻译成人类能够识别的语言 命令解释器,pyc…...
jspm美容院管理系统
摘要 首先,论文一开始便是清楚的论述了系统的研究内容。其次,剖析系统需求分析,弄明白“做什么”,分析包括业务分析和业务流程的分析以及用例分析,更进一步明确系统的需求。然后在明白了系统的需求基础上需要进一步地设计系统,主要包罗软件架构模式、整体功能模块、数据库设计…...
Prometheus结合K8s(二)使用
上一篇介绍了如何搭建 Prometheus结合K8s(一)搭建-CSDN博客,这章介绍使用 页面访问 kubectl get svc -n prom 看promeheus和granfana的端口访问页面 Prometheus 点击status—target,可以看到metrics的数据来源,即各…...
【虚幻引擎】UE5数字人开发实战教程
本套课程将会交大家如何去开发属于自己的数字人,包含大模型接入,流式输出,语音识别,语音合成,口型驱动,动画蓝图,语音唤醒等功能。 课程介绍视频如下: 【虚幻引擎】UE5 历时一个多月…...
深入分析:固定参考框架在RViz中的作用与对数据可视化的影响 ros ubuntu20.04
深入分析:固定参考框架在RViz中的作用与对数据可视化的影响 RViz (Robot Visualization) 是 ROS (Robot Operating System) 中一种重要的三维可视化工具,主要用于实时观察和分析传感器数据、机器人状态信息以及环境模型。RViz的核心功能之一是固定参考框…...
Android:时间选择器(最下面有效果图)
1.创建DateUtil类 /*** Created by wangshuai on 2024/11/19.*/ public class DateUtil {public final static String PATTERN_ALL"yyyy-MM-dd HH:mm:ss";public final static String PATTERN_DEFAULT"yyyy-MM-dd";/*** 获取当前时间* return yyyy-MM-dd*…...
第十六届蓝桥杯模拟赛(第一期)-c++/c
c/c蓝桥杯模拟赛题解,非常详细 质因数 1、填空题 【问题描述】 如果一个数 p 是个质数,同时又是整数 a 的约数,则 p 称为 a 的一个质因数。 请问 2024 有多少个质因数。 【答案提交】 这是一道结果填空的题,你只需要算出结果后提…...
如何挑选路由器?需要看哪些参数?
挑选路由器时,选择合适的型号和参数对于确保家庭或办公网络的速度、稳定性和覆盖范围至关重要。以下是挑选路由器时需要考虑的关键参数和因素: 1. 无线标准 (Wi-Fi标准) 无线标准是衡量路由器性能的核心指标。不同的无线标准提供不同的速率、范围和技术…...
mysql-备份(二)
前章介绍了MySQL的内部数据结构btree,这章讲述mysql的备份 1:环境 ubuntu22.04 LST mysql5.7.42 or win10 mysql5.7.44 (这里图简单直接windows部署) download:https://downloads.mysql.com/archives/community/ 2:install 1> unzip mysql-5.7.44-w…...
Tailwind CSS 和 UnoCSS简单比较
UnoCSS 和 Tailwind CSS 都是流行的原子化 CSS 框架,但它们在设计理念、性能和使用方式上有一些重要的区别。下面是对它们的详细对比: 1. 概述 Tailwind CSS:Tailwind 是一个原子化的 CSS 框架,提供了大量的预定义类(…...
unity3d————范围检测
目录 知识点一:什么是范围检测 知识点二:如何进行范围检测 问题: Physics.queriesHitTriggers 怎么查看是不是true? QueryTriggerInteraction.UseGlobal 参数意味着是否检测触发器将依据全局设置 Physics.queriesHitTrigge…...
修改this.$confirm的按钮位置、图标、文字及标题
在Vue.js项目中,this.$confirm 通常是基于某些UI库(如Element UI或Ant Design Vue)的对话框确认方法。 以下是基于Element UI的this.$confirm的用法示例。 在此之前,你的项目要已经安装了Element UI,如果没安装话就打…...
SQL MID() 函数详解
SQL MID() 函数详解 SQL 中的 MID() 函数是一个非常有用的字符串处理工具,它允许用户从字符串中提取特定位置的子字符串。这个函数在数据库查询和报告中特别有用,尤其是在需要从较长的文本字段中提取特定信息时。本文将详细介绍 MID() 函数的用法、参数…...
【蓝桥杯备赛】123(前缀和的复杂应用)
5. 前缀和的复杂应用 5.1. 123(4 星) 5.1.1. 题目解析 这道题仍然是求一段区间的和,很容易能够想到前缀和找规律: 1------------------1 号块 1 2----------------2 号块 1 2 3--------------3 号块 1 2 3 4------------4 号…...
MINES
MINES (m)6A (I)dentification Using (N)anopor(E) (S)equencing Tombo(v1.4) 命令在 MINES 之前执行: (仅在 fast5 文件中尚未包含 fastq 时需要) tombo preprocess annotate_raw_with_fastqs --fast5-basedir /fast5_dir/ --fastq-file…...
H.265流媒体播放器EasyPlayer.js H5流媒体播放器关于如何查看手机端的日志信息并保存下来
现今流媒体播放器的发展趋势将更加多元化和个性化。人工智能的应用将深入内容创作、用户体验优化等多个方面,带来前所未有的个性化体验。 EasyPlayer.js H.265流媒体播放器属于一款高效、精炼、稳定且免费的流媒体播放器,可支持多种流媒体协议播放&#…...
uni-app快速入门(十一)--常用JS API(上)
在前面学习了uni-app的布局、组件、路由等知识点以后,还要掌握uni-app的JS API ,也可以理解为基于uni-app的java script。本节介绍uni-app的request请求、文件上传、数据缓存、获取位置、获取系统信息、获取手机的网络状态、拨打电话API。 一、request请求 使用uni…...
Flink任务提交到yarn上slot数量为0的问题
现象:Flink提交到yarn上slot数量为0的问题 解决方法: 参考论坛上的方案,修改flink-conf.yaml文件都不管用 最终解决方法: $FLINK_HOME/lib 路径下有2个非.jar结尾的文件,把这几个文件移走之后,再启就可…...
vue3怎么根据字符串获取组件实例
例子: 我在使用vue2开发的时候,定义了一个方法 handler(strRef){ this.$refs[strRef].innerText hello world }, 我在点击某个按钮的时候,调用了方法handler,传递了一个参数是字符串 condition,然后方法…...
网站改版对seo影响/品牌传播策略
[url]http://my.oschina.net/u/2416019/blog/633804[/url] 使用WebServlet就不需要web.xml配置了。当标注与web.xml同时配置时,标注无效。 使用配置描述符(命名:web.xml)的好处是:如果需要修改配置值,如&am…...
wordpress 443端口/谷歌平台推广外贸
原文 如何将经纬度利用Google Map API显示C# VS2005 Sample Code 日前写了一篇如何用GPS抓取目前所在,并回传至资料库储存,这篇将会利用这些回报的资料,将它显示在地图上,这个做法有两种,最简单的就是直接传值到Google Maps上. 举例来说,当我们知道经纬度后,只要将数据套到以下…...
网站制作合肥/网络优化工程师简历
材料取之深入PHP与JQuery开发,这本书实际上就是讲述一个活动日程表。此文章适合从其它语言(如java,C,python等)转到php,没有系统学习php,或者是php初学者,已经对程序有较深理解的朋友以上为文件目录结构,public为程序根目录&#…...
建设银行官方网站广州/百度账号管家
对于pca , nmds, pcoa 这些排序分析来说,我们可以从图中看出样本的排列规则,比如分成了几组。 为例样本分组更加的直观,我们可以根据实验设计时的样本分组情况,对属于同一个group的样本添加1个椭圆或者其他多边形。 新版本的ggplo…...
西安网站建设 招聘/手把手教你优化网站
原文:http://msdn.microsoft.com/zh-cn/library/8xx3tyca.aspx 连接到数据库服务器通常由几个需要很长时间的步骤组成。 必须建立物理通道(例如套接字或命名管道),必须与服务器进行初次握手,必须分析连接字符串信息&…...
惠州住房和建设局网站/亚马逊市场营销案例分析
单片机的ADC接口属于模数转换接口,将外部的模拟量信号转化为数字信号,单片机属于数字器件,需将模拟信号转化为数字信号才能够为单片机处理。目前市场的很多单片机都自带ADC转换接口,若无ADC转换接口,可以使用ADC数模转…...