无监督学习 聚类分析④

简介: 无监督学习 聚类分析④EM(Expectation Maximization Algorithm)1.EM算法的基本思想假如我们随机选取了100名男生和100名女生,两百个人混在一起,而目前只有每个人学生的身高数据,我们既不知道每个身高数据所对应的性别,也不知道男生和女生两个群体的总体身高分布情况。

无监督学习 聚类分析④

  • EM(Expectation Maximization Algorithm)

1.EM算法的基本思想

假如我们随机选取了100名男生和100名女生,两百个人混在一起,而目前只有每个人学生的身高数据,我们既不知道每个身高数据所对应的性别,也不知道男生和女生两个群体的总体身高分布情况。首先我们假设男生身高分布符合170cm的正太分布,而女生身高符合160cm的正态分布。通过这个假设的参数,对所有的身高数据进行性别分类。当完成分类后,通过对预测的男生,女生两个群体的分布来修改之前假设的身高分部参数。如此循环,直至收敛。

2.EM算法的基本步骤

  1. EM是一个在已知部分相关变量的情况下,估计未知变量的迭代技术。EM的算法流程如下:
    1. 初始化分布参数
    2. 重复直到收敛:
      1. E步骤:估计未知参数的期望值,给出当前的参数估计。
      2. M步骤:重新估计分布参数,以使得数据的似然性最大,给出未知变量的期望估计。

3. 高斯混合模型

高斯混合模型(GMM,Gaussian Mixture Model)可以看成是EM算法的一种现实应用。利用这个模型可以解决聚类分析、机器视觉等领域中的许多实际问题。讨论EM算法时,我们并未指定样本来自于何种分布。实际应用中,常常假定样本是来自正态分布之总体的。也就是说,在进行聚类分析时,认为所有样本都来自具有不同参数控制的数个正态总体。例如前面讨论的男性女性身高问题,我们就可以假定样本数据是来自一个双正态分布混合模型。这便有了接下来要讨论的高斯混合模型。

4.mclust包

mclust包是聚类分析非常强大的一个包 帮助文档非常详尽,可以进行聚类、分类、密度分析。Mclust包方法有点“暴力”,聚类数目自定义,比如我选取的从1到20,然后一共14种模型,每一种模型都计算聚类数目从1到20的BIC值,最终确定最佳聚类数目,这种方法的思想很直接了当,但是弊端也就显然易见了——时间复杂度太高,效率低。

setwd("E:\\Rwork")
library(gclus)
data(wine)
head(wine)
dataset <- wine[,-1] #去除分类标签
dataset <- scale(dataset)
set.seed(1234)
library(mclust)
m_clust <- Mclust(as.matrix(dataset), G=1:20) #聚类数目从1一直试到20
summary(m_clust)
plot(m_clust, "BIC")
img_272d2feb289eef8d68d5ffd56040f164.png

5.结论

它们应该分别代表着相关性(完全正负相关——对角线、稍强正负相关——椭圆、无关——圆)等参数的改变对应的模型,BIC值越大则说明所选取的变量集合拟合效果越好** 上图中除了两个模型一直递增,其他的12模型数基本上都是在聚类数目为3的时候达到峰值,所以该算法由此得出最佳聚类数目为3的结论。

目录
相关文章
|
消息中间件 Cloud Native 物联网
深度剖析 RocketMQ 5.0,事件驱动:云时代的事件驱动有啥不同?
本文技术理念的层面了解一下事件驱动的概念。RocketMQ 5.0 在面向云时代的事件驱动架构新推出的子产品 EventBridge,最后再结合几个具体的案例帮助大家了解云时代的事件驱动方案。
79558 6
|
JavaScript
Vue中如何设置在执行删除等危险操作时给用户提示(二次确认后执行对应的操作)
这篇文章介绍了在Vue项目中如何实现执行删除等危险操作时的二次确认机制,使用Element UI的`el-popconfirm`组件来弹出确认框,确保用户在二次确认后才会执行删除操作。
Vue中如何设置在执行删除等危险操作时给用户提示(二次确认后执行对应的操作)
|
1月前
|
Web App开发 数据采集 前端开发
集成Scrapy与异步库:Scrapy+Playwright自动化爬取动态内容
集成Scrapy与异步库:Scrapy+Playwright自动化爬取动态内容
|
10月前
|
人工智能 负载均衡 并行计算
DeepSeek-V3 高效训练关键技术分析
本文从模型架构、并行策略、通信优化和显存优化四个方面展开,深入分析了DeepSeek-V3高效训练的关键技术,探讨其如何以仅5%的算力实现对标GPT-4o的性能。
1667 146
|
存储
计算机组成原理(8)----专用数据通路
计算机组成原理(8)----专用数据通路
758 1
|
数据采集 供应链 搜索推荐
商业案例 I AllData数据中台商业版落地实践
杭州奥零数据科技有限公司成立于2023年,专注于数据中台业务,维护开源项目AllData并提供商业版解决方案。AllData提供数据集成、存储、开发、治理及BI展示等一站式服务,支持AI大模型应用,助力企业高效利用数据价值。
|
网络协议 安全 网络架构
NAT穿透技术、穿透原理和方法
【10月更文挑战第19天】 NAT穿透技术、穿透原理和方法
1179 7
|
SQL Java 数据库连接
快速搭建SSM项目【最全教程】~令狐小哥版
快速搭建SSM项目【最全教程】~令狐小哥版
902 1
|
索引 Python
python pandas 把数据保存成csv文件,以及读取csv文件获取指定行、指定列数据
该文档详细介绍了如何使用Python的Pandas库处理图像数据集,并将其保存为CSV文件。示例数据集位于`test_data`目录中,包含5张PNG图片,每张图片名中的数字代表其标签。文档提供了将这些数据转换为CSV格式的具体步骤,包括不同格式的数据输入方法(如NumPy数组、嵌套列表、嵌套元组和字典),以及如何使用`pd.DataFrame`和`to_csv`方法保存数据。此外,还展示了如何读取CSV文件并访问其中的每一行和每一列数据,包括获取列名、指定列数据及行数据的操作方法。
863 1
Excel如何使用VBA操作引用其它工作簿中的单元格
Excel引用其它工作簿中的单元格的值及使用VBA操作