深度神经网络——什么是 K 均值聚类?

K 均值聚类

K 均值聚类是 无监督学习在所有无监督学习算法中,K 均值聚类可能是使用最广泛的,这要归功于它的强大功能和简单性。 K-means 聚类到底是如何工作的?

简而言之,K 均值聚类的工作原理是 创建参考点(质心) 对于所需的班级数量,然后 将数据点分配给类簇 基于最接近的参考点。 虽然这是 K 均值聚类的快速定义,但让我们花一些时间更深入地研究 K 均值聚类,并对其运行方式有一个更好的直观了解。

定义聚类

在研究用于执行 K 均值聚类的确切算法之前,先来看看什么定义聚类:

集群只是项目组,而集群只是将项目放入这些组中。 从数据科学的意义上来说, 聚类算法 目标是做两件事:

  • 确保集群中的所有数据点尽可能彼此相似。
  • 确保不同集群中的所有数据点尽可能彼此不同。

聚类算法根据某种相似性度量将项目分组在一起。 这通常是通过查找数据集中不同可能组的“质心”来完成的,尽管不完全如此。 有多种不同的聚类算法,但所有聚类算法的目标都是相同的,即确定数据集固有的组。

K均值聚类

K-Means 聚类是最古老和最常用的聚类算法之一,它的运行基于 向量量化。 选取空间中的一个点作为原点,然后从原点绘制到数据集中所有数据点的向量。

一般来说,K-means 聚类可以分为五个不同的步骤:

  • 将所有实例放入子集中,子集的数量等于 K。
  • 找到新创建的簇分区的平均点/质心。
  • 根据这些质心,将每个点分配给特定的簇。
  • 计算每个点到质心的距离,并将点分配给距质心距离最小的簇。
  • 将点分配给簇后,找到簇的新质心。

重复上述步骤直至训练过程完成。

在初始阶段,质心放置在数据点之间的某个位置。

或者,在放置质心之后,我们可以将 K 均值聚类视为在两个不同阶段之间来回交换:标记数据点和更新质心。

在第二步中,使用欧几里德距离等距离度量来计算给定点最接近哪个质心,然后将这些点分配给该质心的类。
在数据点标记阶段,每个数据点都被分配一个标签,将其放置在属于最近质心的簇中。 最近的质心通常使用平方欧几里得距离来确定,尽管可以根据输入聚类算法的数据类型使用其他距离度量,例如曼哈顿距离、余弦和杰卡德距离。

第三步,将质心移动到所有数据点的平均值。 然后重新分配班级。

在质心更新步骤中,通过查找当前包含在簇内的所有数据点之间的平均距离来计算质心。

如何选择正确的“K”值

考虑到 K 均值聚类是一种无监督算法,并且事先不知道类的数量,那么如何确定适当的类数/正确的 K 值?

一种选择正确 K 值的技术称为“肘部技术”。 肘部技术包括对一系列不同的 K 值运行 K 均值聚类算法,并使用准确度度量(通常是误差平方和)来确定哪些 K 值可提供最佳结果。 误差平方和是通过计算簇的质心与该簇中的数据点之间的平均距离来确定的。

术语“肘形技术”来自这样一个事实:当您针对不同的 K 值绘制 SSE 时,所得线图通常会具有“肘形”形状,其中 SSE 对于 K 的前几个值快速下降,但随后趋于平稳。 在这种情况下,位于弯头处的 K 值是 K 的最佳值,因为在该值之后收益会迅速递减。

小批量 K 均值聚类

随着数据集变大,计算时间也会增加。 在大规模数据集上运行时,基本 K 均值聚类可能需要很长时间才能完成,因此,对 K 均值聚类进行了调整,以降低算法的空间和时间成本。

小批量 K 均值聚类 是 K 均值聚类的变体 其中所考虑的数据集的大小是有上限的。 普通 K 均值聚类同时对整个数据集/批次进行操作,而小批量 K 均值聚类 将数据集分解为子集。 小批量是从整个数据集中随机采样的,对于每次新的迭代,都会选择一个新的随机样本并用于更新质心的位置。

在小批量 K 均值聚类中,聚类是通过小批量值和学习率的组合来更新的。 学习率随着迭代而降低,它是放置在特定簇中的数据点数量的倒数。 降低学习率的效果是,在经过多次迭代后,簇没有变化时,新数据的影响减少,达到收敛。

关于小批量 K 均值聚类有效性的研究结果表明,它可以成功地减少计算时间,同时稍微权衡聚类质量。

K-Means 聚类的应用

K 均值聚类可以安全地用于数据点可以分为不同组/类的任何情况。 以下是 K 均值聚类的一些常见用例示例。

K-means 聚类可应用于文档分类,根据主题、标签、单词用法、元数据和其他文档特征等特征对文档进行分组。 它还可用于根据帖子和评论等活动模式将用户分类为机器人或非机器人。 K 均值聚类还可用于根据监测健康状况时的关注程度、合并症、年龄、患者病史等特征将人们分组。

K 均值聚类还可以用于更多开放式任务,例如创建推荐系统。 Netflix 等系统的用户可以根据观看模式进行分组,并推荐相似的内容。 K 均值聚类可用于异常检测任务,突出显示潜在的欺诈或缺陷商品实例。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

CSRF 攻击

概述 CSRF(Cross-site request forgery,跨站请求伪造)。 它是指攻击者利用了用户的身份信息,执行了用户非本意的操作。 它首先引导用户访问一个危险网站,当用户访问网站后,网站会发送请求到被攻击的站点,这次请求会携带用户的c…

【北京市政府网_注册安全分析报告】

前言 由于网站注册入口容易被黑客攻击,存在如下安全问题: 暴力破解密码,造成用户信息泄露短信盗刷的安全问题,影响业务及导致用户投诉带来经济损失,尤其是后付费客户,风险巨大,造成亏损无底洞…

Vue3+Vite解决跨域问题

Vue3项目 首先找到项目里面的vite.cofig.js找到代码中的server然后替换成下面的即可 server: { //主要是加上这段代码//hostport实际上就是项目的启动地址是多少host: 127.0.0.1,port: 8001,proxy: {/api: {//这里的target实际上就是真实的后端地址,看看你的路径前缀…

Google Play开发者账号被封关联风险分析以及提高上包成功率方法

一:谷歌通过多种方法判断应用是否为马甲包或存在关联,但具体算法和方法并没有对外公开,以下是一些可能属性: 1、开发者账号资料 开发者的身份,付款银行卡,绑定的手机号,辅助邮箱等,其中收款账户还是在其中…

记录github小程序短视频系统的搭建过程

GitHub - lkmc2/AwesomeVideoWxApp: 《倾心短视频》微信小程序 这个项目按readme中的来可以部署成功,但是会发现图片、视频全是空的,如下图: 修改源代码,更换图片上传与保存地址 大概涉及到这些代码块,进行更改即可。…

Ubuntu 20.04中用scrapy爬取博客园新闻首页的简单示例

一、梳理scrapy项目目录创建: 1、命令行终端定位到pycharm主目录:cd PycharmProjects 2、建立项目名称:scrapy startproject searchArticle 3、定位到项目目录下:cd searchArticle 4、设置爬虫名称与欲爬取的域名地址&#xf…

Python使用连接池操作MySQL

测试环境说明:Python版本是 3.8.10 ,DBUtils版本是3.1.0 ,pymysql版本是1.0.3 首先安装指定版本的连接池库DBUtils 、还有pymysql pip install DBUtils3.1.0 pip install pymysql1.0.3创建文件 sqlConfig.py # sqlConfig.pyimport pymysql…

FL Studio21中文版新特性!揭秘中文水果编曲神器

FL Studio 21,被广大音乐创作者昵称为“水果编曲软件”,是比利时的Image-Line公司研发的一款完整的音乐制作环境或数字音频工作站(DAW)。自从1997年首次推出以来,FL Studio一直是许多音乐制作人和爱好者的首选&#xf…

基于 Java 的浏览器——JxBrowser使用分享

软件介绍 JxBrowser 是一个基于 Java 的浏览器,它使用 Chromium 引擎来提供高性能的网页渲染和丰富的功能。它支持多种 GUI 框架,如 Swing、JavaFX 和 SWT,使得在 Java 应用程序中嵌入浏览器组件变得简单。 JxBrowser 是一个适用于多种用途…

Docker技术搭建Grafana监控平台

centos7虚拟机和docker的安装:可以参考之前的博文 CPU、mysql-exporter、docker监控模板:百度网盘 提取码:0000 先查看服务器时间是否和当前时间一致,如果不一致,查看对应设置:centos7时间同步博文 一、…

2024最新php项目加密源码

压缩包里有多少个php就会被加密多少个PHP、php无需安装任何插件。源码全开源 如果上传的压缩包里有子文件夹(子文件夹里的php文件也会被加密),加密后的压缩包需要先修复一下,步骤:打开压缩包 》 工具 》 修复压缩文件…

大小字符判断

//函数int my_isalpha(char c)的功能是返回字符种类 //大写字母返回1,小写字母返回-1.其它字符返回0 //void a 调用my_isalpha(),返回大写,输出*;返回小写,输出#;其它,输出? #inclu…

MySQL存储过程for循环处理查询结果

在MySQL数据库中,存储过程是一种预编译的SQL语句集,可以被多次调用。在MySQL中使用存储过程查询到结果后,有时候需要对这些结果进行循环处理。 1. 创建表 CREATE TABLE t_job (job_id int(11) unsigned NOT NULL AUTO_INCREMENT,job_name v…

python02 循环与容器

一、if的条件判断 1-1 if elif else 判断年龄属于哪个年龄段 # 判断学生 core input(请输入成绩) ​ if int(core) >90 :print(优秀) elif int(core) >70 and int(core) <90:print(中等) elif int(core) >60 and int(core) <70:print(及格) else:print(不及…

抖音运营_打造高流量的抖音账号

目录 一 账号定位 行业定位 用户定位 内容定位 二 账号人设 我是谁? 我的优势 我的差异化 三 创建账号 名字 头像 简介 四 抖音养号 为什么要养号&#xff1f; 抖音快速养号 正确注册抖音账号 一机一卡一号 实名认证 正确填写账号信息 养号期间的操作 五…

如何在Windows 11和10上检查计算机的正常运行时间,这里有两种方法

序言 你的计算机的正常运行时间告诉你打开计算机已经有多长时间了。如果你需要这些信息进行故障排除或其他操作&#xff0c;那么很容易在Windows 11和Windows 10操作系统上找到你的正常运行时间。我们将向你展示图形和命令行方法。让我们开始吧。 使用任务管理器查找Windows正…

webman使用summernote富文本编辑器

前言 Summernote富文本编辑器功能强大&#xff0c;可以直接从word直接复制内容过来而不破坏原有的文档格式&#xff0c;非常适合做商品详情等内容的编辑工具。本文将展示如何在php高性能框架webman中使用summernote编辑器。 下载 去Bootstrap 中文网、Summernote、jQuery官网…

JavaWeb知识点汇总(Tomcat、Servlet、MVC架构、模拟IOC、Filter、Listener)

CS、BS架构模式 创建Web项目 介绍 Tomcat是Web容器。可以将一个或多个Web项目 部署在tomcat服务器中。 Tomcat目录&#xff1a; 创建web项目步骤 新建一个project项目 pro-web 项目project和模块module的区别&#xff1a; project 通常指一个完整的软件开发实体&#xff0c;它…

小程序视频怎么保存到本地相册

在快节奏的生活中&#xff0c;小程序已成为我们获取信息和娱乐的重要渠道。但当您遇到那些精彩绝伦的小程序视频&#xff0c;是否曾想过如何将它们保存到本地相册&#xff0c;以便随时回味&#xff1f;无论您是安卓用户还是iPhone用户&#xff0c;本文将为您揭秘如何轻松实现这…

机器学习之常用算法与数据处理

一、机器学习概念&#xff1a; 机器学习是一门多领域交叉学科&#xff0c;涉及概率论、统计学、计算机科学等多门学科。它的核心概念是通过算法让计算机从数据中学习&#xff0c;改善自身性能。机器学习专门研究计算机怎样模拟或实现人类的学习行为&#xff0c;以获取新的知识…