【机器学习5】无监督学习聚类

相比于监督学习, 非监督学习的输入数据没有标签信息, 需要通过算法模型来挖掘数据内在的结构和模式。 非监督学习主要包含两大类学习方法: 数据聚类和特征变量关联。

1 K均值聚类及优化及改进模型

1.1 K-means

聚类是在事先并不知道任何样本类别标签的情况下, 通过数据之间的内在关系把样本划分为若干类别, 使得同类别样本之间的相似度高, 不同类别之间的样本相似度低 。
K均值聚类(KMeans Clustering) 的基本思想是, 通过迭代方式寻找K个簇(Cluster) 的一种划分方案, 使得聚类结果对应的代价函数最小。 特别地, 代价函数可以定义为各个样本距离所属簇中心点的误差平方和 :

在这里插入图片描述xi代表第i个样本, ci是xi所属于的簇, μci代表簇对应的中心点, M是样本总数。
在这里插入图片描述K均值算法在迭代时, 假设当前 J 没有达到最小值, 那么首先固定簇中心{μk},调整每个样例xi所属的类别ci来让J函数减少; 然后固定{ci}, 调整簇中心{μk}使J减小。 这两个过程交替循环, J单调递减: 当J递减到最小值时, {μk}和{ci}也同时收敛。

1.2 调优

K均值算法的调优一般可以从以下几个角度出发:

(1) 数据归一化和离群点处理。
(2) 合理选择K值。手肘法、Gap Statistic方法。
(3) 采用核函数。核聚类方法的主要思想是通过一个非线性映射, 将输入空间中的数据点映射到高位的特征空间中, 并在新的特征空间中进行聚类。 非线性映射增加了数据点线性可分的概率, 从而在经典的聚类算法失效的情况下, 通过引入核函数可以达到更为准确的聚类结果。

1.3 改进模型

K均值算法的主要缺点如下。
(1) 需要人工预先确定初始K值, 且该值和真实的数据分布未必吻合。
(2) K均值只能收敛到局部最优, 效果受到初始值很大。
(3) 易受到噪点的影响

1.3.1 K-means++

原始K均值算法最开始随机选取数据集中K个点作为聚类中心, 而K-means++按照如下的思想选取K个聚类中心。 假设已经选取了n个初始聚类中心( 0<n<K) , 则在选取第n+1个聚类中心时, 距离当前n个聚类中心越远的点会有更高的概率被选为第n+1个聚类中心。 在选取第一个聚类中心( n=1) 时同样通过随机的方法。 K-means++后续的执行和经典K均值算法相同。

2 ISODATA算法

当K值的大小不确定时, 可以使用ISODATA算法。 ISODATA的全称是迭代自组织数据分析法。当属于某个类别的样本数过少时, 把该类别去除; 当属于某个类别的样本数过多、 分散程度较大时, 把该类别分为两个子类别。 ISODATA算法在K均值算法的基础之上增加了两个操作, 一是分裂操作, 对应着增加聚类中心数; 二是合并操作, 对应着减少聚类中心数。 ISODATA算法是一个比较常见的算法, 其缺点是需要指定的参数比较多, 不仅仅需要一个参考的聚类数量K
, 还需要制定3个阈值。
下面介绍ISODATA算法的各个输入参数。
( 1) 预期的聚类中心数目K
在ISODATA运行过程中聚类中心数可以变化, K是一个用户指定的参考值, 该算法的聚类中心数目变动范围也由其决定。具体地, 最终输出的聚类中心数目常见范围是从Ko的一半, 到两倍Ko。
( 2) 每个类所要求的最少样本数目Nmin。
如果分裂后会导致某个子类别所包含样本数目小于该阈值, 就不会对该类别进行分裂操作。
( 3) 最大方差Sigma。
用于控制某个类别中样本的分散程度。 当样本的分散程度超过这个阈值时, 且分裂后满足( 1) , 进行分裂操作。
( 4) 两个聚类中心之间所允许最小距离Dmin。
如果两个类靠得非常近( 即这两个类别对应聚类中心之间的距离非常小) , 小于该阈值时, 则对这两个类进行合并操作。

3 高斯混合模型(GMM)

高斯混合模型假设每个簇的数据都是符合高斯分布(又叫正态分布) 的, 当前数据呈现的分布就是各个簇的高斯分布叠加在一起的结果。
高斯混合模型的核心思想是, 假设数据可以看作从多个高斯分布中生成出来的。 在该假设下, 每个单独的分模型都是标准高斯模型, 其均值μi和方差Σi是待估计的参数。 此外, 每个分模型都还有一个参数πi, 可以理解为权重或生成数据的概率。 高斯混合模型的公式为:
在这里插入图片描述高斯混合模型是一个生成式模型。 可以这样理解数据的生成过程, 假设一个
最简单的情况, 即只有两个一维标准高斯分布的分模型N(0,1)和N(5,1), 其权重分别为0.7和0.3。 那么, 在生成第一个数据点时, 先按照权重的比例, 随机选择一个分布, 比如选择第一个高斯分布, 接着从N(0,1)中生成一个点, 如−0.5, 便是第一个数据点。 在生成第二个数据点时, 随机选择到第二个高斯分布N(5,1), 生成了第二个点4.7。 如此循环执行, 便生成出了所有的数据点。
高斯混合模型的计算, 便成了最佳的均值μ, 方差Σ、 权重π的寻找,EM算法框架来求解该优化问题。EM算法是在最大化目标函数时, 先固定一个变量使整体函数变为凸优化函数, 求导得到最值, 然后利用最优参数更新被固定的变量, 进入下一个循环。 具体到高斯混合模型的求解, EM算法的迭代过程如下:
首先, 初始随机选择各参数的值。 然后, 重复下述两步, 直到收敛。
(1) E步骤。 根据当前的参数, 计算每个点由某个分模型生成的概率。
(2) M步骤。 使用E步骤估计出的概率, 来改进每个分模型的均值, 方差和权重。

算法相同不同
K均值可用于聚类;需要指定K值;使用EM算法;收敛于局部最优
高斯混合模型可用于聚类;需要指定K值;使用EM算法;收敛于局部最优可以给出一个样本属于某类的概率是多少; 可以用于概率密度的估计;可以用于生成新的样本点

3 自组织映射神经网络(SOM)

无监督学习方法的一种,可以用作聚类、 高维可视化、 数据压缩、 特征提取等多种用途。
自组织映射神经网络本质上是一个两层的神经网络, 包含输入层和输出层(竞争层)。输入层模拟感知外界输入信息的视网膜, 输出层模拟做出响应的大脑皮层。 输出层中神经元的个数通常是聚类的个数, 代表每一个需要聚成的类。训练时采用“竞争学习”的方式, 每个输入的样例在输出层中找到一个和它最匹配
的节点, 称为激活节点, 也叫winning neuron; 紧接着用随机梯度下降法更新激活节点的参数; 同时, 和激活节点临近的点也根据它们距离激活节点的远近而适当地更新参数。
在这里插入图片描述

4 聚类算法的评估

4.1数据簇

为了评估不同聚类算法的性能优劣, 我们需要了解常见的数据簇的特点。

数据簇数据分布数据特点
以中心定义集合中数据倾向于球形分布集合中的数据到中心的距离相比到其他簇中心的距离更近
以密度定义集合中数据呈现和周围数据簇明显不同的密度, 或稠密或稀疏当数据簇不规则或互相盘绕, 并且有噪声和离群点时, 常常使用基于密度的簇定义
以连通定义集合中的数据点和数据点之间有连接关系,整个数据簇表现为图结构对不规则形状或者缠绕的数据簇有效
以概念定义集合中的所有数据点具有某种共同性质

4.2 评估任务

4.2.1 估计聚类趋势

检测数据分布中是否存在非随机的簇结构。 如果数据是基本随机的, 那么聚类的结果也是毫无意义的。
应用霍普金斯统计量(Hopkins Statistic) 来判断数据在空间上的随机性[7]。 首先, 从所有样本中随机找n个点, 记为p1,p2,…,pn, 对其中的每一个点pi, 都在样本空间中找到一个离它最近的点并计算它们之间的距离xi, 从而得到距离向量x1,x2,…,xn; 然后, 从样本的可能取值范围内随机生成n个点, 记为q1,q2,…,qn, 对每个随机生成的点, 找到一个离它最近的样本点并计算它们之间的距离, 得到y1,y2,…,yn。 霍普金斯统计量H可以表示为:

在这里插入图片描述
如果样本接近随机分布, 那么分母的两个取值应该比较接近, 即H的值接近于0.5; 如果聚类趋势明显, 则随机生成的样本点距离应该远大于实际样本点的距离, 即 H值接近于1。

4.2.2 判定数据簇数

数据簇数的判定方法有很多, 例如手肘法和Gap Statistic方法。 需要说明的是, 用于评估的最佳数据簇数可能与程序输出的簇数是不同的。例如, 有些聚类算法可以自动地确定数据的簇数, 但可能与我们通过其他方法确定的最优数据簇数有所差别

4.2.3测定聚类质量

给定预设的簇数, 不同的聚类算法将输出不同的结果, 如何判定哪个聚类结果的质量更高呢? 在无监督的情况下, 我们可以通过考察簇的分离情况和簇的紧凑情况来评估聚类的效果。

度量指标定义特点
轮廓系数在这里插入图片描述a§是点p与同一簇中的其他点p’之间的平均距离; b§是点p与另一个不同簇中的点之间的最小平均距离(如果有n个其他簇, 则只计算和点p最接近的一簇中的点与该点的平均距离)a§反映的是p所属簇中数据的紧凑程度, b§反映的是该簇与其他临近簇的分离程度。 显然, b§越大, a§越小, 对应的聚类质量越好
均方根标准偏差 RMSSTD集合中数据呈现和周围数据簇明显不同的密度, 或稠密或稀疏其中Ci代表第i个簇, ci是该簇的中心, x∈ Ci代表属于第i个簇的一个样本点, ni为第i个簇的样本数量, P为样本点对应的向量维数。RMSSTD可以看作是经过归一化的标准差
R方(R-Square)集合中的数据点和数据点之间有连接关系,整个数据簇表现为图结构D代表整个数据集, c代表数据集D的中心点RS代表了聚类之后的结果与聚类之前相比, 对应的平方误差和指标的改进幅度
改进的HubertΓ统计集合中的所有数据点具有某种共同性质Γ值越大说明聚类的结果与样本的原始距离越吻合, 也就是聚类质量越高

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

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

相关文章

合肥中科深谷嵌入式项目实战——基于ARM语音识别的智能家居系统(二)

目录 基于ARM语音识别的智能家居系统 练习一 一、程序编译 练习二&#xff1a; 二、文件IO 三、文件IO常用API接口函数 1、打开文件 open&#xff08;&#xff09; 2、将数据内容写入文件 write&#xff08;&#xff09; 3、关闭&#xff08;保存&#xff09;文件 四、…

分类预测 | Matlab实现QPSO-SVM、PSO-SVM、SVM多特征分类预测对比

分类预测 | Matlab实现QPSO-SVM、PSO-SVM、SVM多特征分类预测对比 目录 分类预测 | Matlab实现QPSO-SVM、PSO-SVM、SVM多特征分类预测对比分类效果基本描述程序设计参考资料 分类效果 基本描述 1.Matlab实现QPSO-SVM、PSO-SVM、SVM分类预测对比&#xff0c;运行环境Matlab2018b…

uniapp生成自定义(分享)图片并保存到相册

需求描述 在一个页面中底部有个保存图片的功能&#xff0c;点击能够保存一张生成的自定义表格图片。 第一眼见到这个需求 自己会出现了两个问题 如何去处理图片中的自定义内容以及样式如何将自定义内容转化成图片 至于保存图片&#xff0c;uniapp有对应的api去实现uni.saveIma…

小样本目标检测(Few-Shot Object Detection)综述

背景 前言:我的未来研究方向就是这个,所以会更新一系列的文章,就关于FSOD,如果有相同研究方向的同学欢迎沟通交流,我目前研一,希望能在研一发文,目前也有一些想法,但是具体能不能实现还要在做的过程中慢慢评估和实现.写文的主要目的还是记录,避免重复劳动,我想用尽量简洁的语言…

【移远QuecPython】EC800M物联网开发板的MQTT协议腾讯云数据上报

【移远QuecPython】EC800M物联网开发板的MQTT协议腾讯云数据上报 文章目录 导入库初始化设置MQTT注册回调订阅发布功能开启服务发送消息函数打包调用测试效果附录&#xff1a;列表的赋值类型和py打包列表赋值BUG复现代码改进优化总结 py打包 导入库 from TenCentYun import TX…

Clickhouse学习笔记(15)—— Clickhouse备份

手动备份 参考官网&#xff1a;Backup and Restore | ClickHouse Docs 简单来说&#xff0c;就是我们可以通过ALTER TABLE ... FREEZE PARTITION ...命令为表分区创建一个本地副本&#xff0c;然后这个副本硬链接到/var/lib/clickhouse/shadow/文件夹&#xff0c;因此其不会耗…

Unity性能优化分析篇

性能优化是游戏项目开发中一个重要环节。游戏帧率过低&#xff0c;手机发烫&#xff0c; 包体太大&#xff0c;低端机上跑不起来等, 这些都需要来做优化&#xff0c;不管过去&#xff0c;现在&#xff0c;未来&#xff0c;性能优化都是永恒的话题。 而性能优化首先要掌握的是性…

BIO、NIO、AIO三者的区别及其应用场景(结合生活例子,简单易懂)

再解释三者之前我们需要先了解几个概念&#xff1a; 阻塞、非阻塞&#xff1a;是相较于线程来说的&#xff0c;如果是阻塞则线程无法往下执行&#xff0c;不阻塞&#xff0c;则线程可以继续往下 执行。同步、异步&#xff1a;是相较于IO来说的&#xff0c;同步需要等待IO操作完…

Outlook邮件视图设置怎么修复

故障现象 Outlook邮箱显示不对 故障截图 故障原因 邮箱视图设置不对 解决方案 1、在Outlook上方工具栏找到视图按钮&#xff0c;以此选择视图→视图设置→列&#xff0c;打开选择的列 2、在视图→邮件预览里面&#xff0c;选择1行&#xff0c;在阅读格式选择靠右&#xff…

AI创作系统ChatGPT网站源码+支持最新GPT-Turbo模型+支持DALL-E3文生图/AI绘画源码

一、AI创作系统 SparkAi创作系统是基于OpenAI很火的ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统&#xff0c;支持OpenAI-GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美&#xff0c;可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如…

Nodejs操作缓存数据库-Redis

Hi I’m Shendi Nodejs专栏 Nodejs操作缓存数据库-Redis 在服务端开发中&#xff0c;缓存数据库也是不可或缺的&#xff0c;可以提高程序并发以及方便后续扩展&#xff0c;而目前最常用的莫过于Redis了 安装依赖 和之前的mysql一样&#xff0c;redis的依赖最常用的就是redis …

自学SLAM(8)《第四讲:相机模型与非线性优化》作业

前言 小编研究生的研究方向是视觉SLAM&#xff0c;目前在自学&#xff0c;本篇文章为初学高翔老师课的第四次作业。 文章目录 前言1.图像去畸变2.双目视差的使用3.矩阵微分4.高斯牛顿法的曲线拟合实验 1.图像去畸变 现实⽣活中的图像总存在畸变。原则上来说&#xff0c;针孔透…

51单片机应用从零开始(三)

51单片机应用从零开始&#xff08;一&#xff09;-CSDN博客 51单片机应用从零开始&#xff08;二&#xff09;-CSDN博客 详解 KEIL C51 软件的使用建立工程-CSDN博客 详解 KEIL C51 软件的使用设置工程编绎与连接程序-CSDN博客 目录 1. 用单片机控制第一个灯亮 2. 认识单片…

leetcode:476. 数字的补数

一、题目 476. 数字的补数 - 力扣&#xff08;LeetCode&#xff09; 函数原型&#xff1a; int findComplement(int num) 二、思路 将num的每一位取出来&#xff0c;取反后&#xff0c;乘以2的位次方&#xff0c;最终所有结果相加即可得到结果。 如何取出num的每一位&#xff1…

<MySQL> 查询数据进阶操作 -- 联合查询

目录 一、什么是笛卡尔积&#xff1f; 二、什么是联合查询&#xff1f; 三、内连接 3.1 简介 3.2 语法 3.3 更多的表 3.4 操作演示 四、外连接 4.1 简介 4.2 语法 4.3 操作演示 五、自连接 5.1 简介 5.2 自连接非必要不使用 六、子查询(嵌套查询) 6.1 简介 6.…

电源电压范 围宽、功耗小、抗干扰能力强的国产芯片GS069适用于电动工具等产品中,采用SOP8的封装形式封装

GS069电动工具直流调速电路是CMOS专用集成电路&#xff0c;具有电源电压范 围宽、功耗小、抗干扰能力强等特点。通过外接电阻网络&#xff0c;改变与之相接 的VMOS 管的输出&#xff0c;达到控制电动工具转速的作用。该电路输出幅值宽&#xff0c; 频率变化小&#xff0c;占空比…

自己动手实现一个深度学习算法——六、与学习相关的技巧

文章目录 1.参数的更新1&#xff09;SGD2&#xff09;Momentum3&#xff09;AdaGrad4&#xff09;Adam5&#xff09;最优化方法的比较6&#xff09;基于MNIST数据集的更新方法的比较 2.权重的初始值1&#xff09;权重初始值不能为02&#xff09;隐藏层的激活值的分布3&#xff…

04-学成在线之系统管理服务模块之查询数据字典表中的内容,前后端联调测试

前后端联调 配置前端环境 实际开发中先由后端工程师将接口设计好并编写接口文档并交给前端工程师&#xff0c;前后端的工程师就开始并行开发 前端开发人员先自己mock数据即使用假数据进行开发,当后端代码完成后前端工程师尝试请求后端接口获取数据然后渲染到页面 第一步: 首…

计算机网络之物理层

物理层 1. 物理层的基本概念 2.物理层下面的传输媒体 传输媒体可分为两类&#xff0c;一类是导引型传输媒体&#xff0c;另一类是非导引型传输媒体。 3.传输方式 3.1 串行传输和并行传输 串行传输&#xff1a;串行传输是指数据是一个比特依次发送的&#xff0c;因此在发送端…

C/C++轻量级并发TCP服务器框架Zinx-框架开发002: 定义通道抽象类

文章目录 2 类图设计3 时序图数据输入处理&#xff1a;输出数据处理总流程 4 主要实现的功能4.1 kernel类&#xff1a;基于epoll调度所有通道4.2 通道抽象类&#xff1a;4.3 标准输入通道子类4.4 标准输出通道子类4.5 kernel和通道类的调用 5 代码设计5.1 框架头文件5.2 框架实…