基于模型的聚类和R语言中的高斯混合模型

news2024/11/27 2:44:11

介绍

四种最常见的聚类方法模型是层次聚类,k均值聚类,基于模型的聚类和基于密度的聚类 .

最近我们被客户要求撰写关于聚类的研究报告,包括一些图形和统计输出。

可以基于两个主要目标评估良好的聚类算法:

  • 高组内相似性
  • 低组间相似性

 

  【视频】KMEANS均值聚类和层次聚类:R语言分析生活幸福质量系数可视化实例

KMEANS均值聚类和层次聚类:R语言分析生活幸福质量系数可视化实例

,时长06:05

 

基于模型的聚类是迭代方法,通过优化聚类中数据集的分布,将一组数据集拟合到聚类中。高斯分布只不过是正态分布。此方法分三步进行:

  1. 首先随机选择高斯参数并将其拟合到数据集。
  2. 迭代地优化分布参数以拟合尽可能多的点。
  3. 一旦收敛到局部最小值,您就可以将数据点分配到更接近该群集的分布。

高斯混合模型

基于概率模型的聚类技术已被广泛使用,并且已经在许多应用中显示出有希望的结果,从图像分割,手写识别,文档聚类,主题建模到信息检索。基于模型的聚类方法尝试使用概率方法优化观察数据与某些数学模型之间的拟合。

生成模型通常使用EM方法求解,EM方法是用于估计有限混合概率密度的参数的最广泛使用的方法。基于模型的聚类框架提供了处理此方法中的几个问题的主要方法,例如密度(或聚类)的数量,参数的初始值(EM算法需要初始参数值才能开始),以及分量密度的分布(例如,高斯分布)。EM以随机或启发式初始化开始,然后迭代地使用两个步骤来解决计算中的循环:

  • E-Step。使用当前模型参数确定将数据点分配给集群的预期概率。
  • M-Step。通过使用分配概率作为权重来确定每个集群的最佳模型参数。

R中的建模

mb = Mclust(iris[,-5])

#或指定集群数
mb3 = Mclust(iris[,-5], 3)

# 或指定集群数
mb$modelName

# 或指定集群数
mb$G

# 在给定聚类中观察的概率
head(mb$z)

# 获取概率,均值,方差
summary(mb, parameters = TRUE)

table(iris$Species, mb$classification)
# 比较
table(iris$Species, mb3$classification)

比较每个群集中的数据量

在将数据拟合到模型中之后,我们基于聚类结果绘制模型。

让我们绘制估计的密度。 

plot(mb, "density")

您还可以使用该summary()函数来获取最可能的模型和最可能数量的集群。对于此示例,最可能的簇数为5,BIC值等于-556.1142。

比较聚类方法

在使用不同的聚类方法将数据拟合到聚类中之后,您可能希望测量聚类的准确性。在大多数情况下,您可以使用集群内集群度量标准作为度量。集群间距离越高越好,集群内距离越低、越好。

接下来,检索聚类方法的集群验证统计信息:

通常,我们使用within.cluster.ssavg.silwidth验证聚类方法。该within.cluster.ss测量表示所述簇内总和的平方,和avg.silwidth表示平均轮廓宽度

  • within.cluster.ss测量显示了相关对象在群集中的紧密程度; 值越小,集群中的对象越紧密。
  • avg.silwidth是一种度量,它考虑了群集中相关对象的紧密程度以及群集之间的区别程度。轮廓值通常为0到1; 接近1的值表明数据更好地聚类。

k-means和GMM之间的关系

K均值可以表示为高斯混合模型的特例。通常,高斯混合有更好的表现力,因为数据的群集分配还取决于该群集的形状,而不仅仅取决于其接近度。

与k-means一样,用EM训练高斯混合模型可能对冷启动条件非常敏感。如果我们将GMM与k-means进行比较和对比,我们会发现前者的初始条件比后者更多。 

结果

 每个聚类被建模为多元高斯分布,并通过给出以下内容来指定模型:

  1. 集群数量。
  2. 每个群集中所有数据点的分数。
  3. 每个聚类的均值和它的协方差矩阵。

  

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

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

相关文章

小程序中的自定义组件以及组件通信、数据共享、插槽、behaviors

一、创建组件和使用自定义组件 1.创建组件 ①在项目的根目录中,鼠标右键,创建components -> 文件夹 ②在新建的components -> 文件夹上,鼠标右键,点击“新建Component ③键入组件的名称之后回车,会自动生成组件对应的4个…

卡尔曼滤波Kalman Filtering:介绍

本文是Quantitative Methods and Analysis: Pairs Trading此书的读书笔记。 控制理论(control theory)是工程学的分支之一,主要应对工程系统控制的问题。比如控制汽车发动机的功率输出,稳定电动机的转速,控制“反应速率”&#x…

企业数字化办公利器——华为云桌面Workspace

随着云办公生态的逐渐成熟,华为云桌面也成为了越来越多企业实现随时随地移动办公的选择。 华为云桌面Workspace是一款SAAS产品,是基于华为云云原生架构设计和构建的云桌面服务,可支持云桌面的快速创建、部署和集中运维管理,免除大…

2023年java代做题目参考整理

为方便毕业设计选题,特别整理以下几百题目供参考 班级风采网站的设计 工资绩效管理系统的开发 电子产品销售网站的设计与实现 酒店预订信息管理系统的设计 成绩管理系统 B2C的电子商务系统(J2EE) B2C购物网站设计 教学网站及网上考试系统的设计与实现 ERP采…

STM32学习之Keil5软件配置

前言:代码编写环境可以让编写者在代码编写上有一定的好处,从而得到高效的代码编写。本次笔者写的是一些市面上常用的嵌入式开发软件Keil5,在初始化使用软件界面需要进行配置的。主要分为五大部分(文本美化、代码编辑技巧、查找和替…

一篇图解Linux内存碎片整理

我们知道物理内存是以页为单位进行管理的,每个内存页大小默认是4K(大页除外)。申请物理内存时,一般都是按顺序分配的,但释放内存的行为是随机的。随着系统运行时间变长后,将会出现以下情况: 要解…

树莓派板载蓝牙使用

1 设置树莓派板载蓝牙 1.1 相关环境安装、配置 sudo apt-get update sudo apt-get install pi-bluetooth bluez bluez-firmware blueman1.2 树莓派蓝牙操作 参考: https://blog.csdn.net/guzhong10/article/details/78574577 有时候会失败, 可以尝试…

[附源码]SSM计算机毕业设计学校缴费系统JAVA

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

文件包含总结

概念 是指将已有的代码以文件形式包含到某个指定的代码中,从而使用其中的代码或者数据,一般是为了方便直接调用所需文件,文件包含的存在使得开发变得更加灵活和方便。 文件包含常见函数 include() // 执行到include时才包含文件&#xff…

区间信息维护与查询【线段树 】 - 原理2 线段树中的“懒操作”

区间信息维护与查询【线段树 】 - 原理2 线段树中的“懒操作” 之前我们已经说了对线段树的点更新和区间查询,若要求对区间中的所有点都进行更新,该怎么办? 若对区间的每个点都进行更新,则时间复杂度较高,可以引入懒…

Cocos2d-x 3D渲染技术 (三)

包围盒算法 说白了就是给物体装进一个盒子里,该盒子可以装下物体。目的是为了进行碰撞检测。 种类: 球状碰撞体立方体碰撞体胶囊碰撞体Mesh碰撞体 实现原理是OBB包围盒。 经常使用的两种碰撞算法是OBB包围盒和AABB包围盒算法。 OBB包围盒算法 方向…

JavaScript -- 01. 基础语法介绍

文章目录基础语法1 Hello World2 JS的编写位置3 基本语法3.1 多行注释3.2 单行注释3.3 区分大小写3.4 空格和换行会被忽略3.5 以分号结尾3.6 字面量3.7 变量3.8 变量的内存结构3.9 常量3.10 标识符基础语法 JS的基本语法 1 Hello World js的三种输出方式 <!DOCTYPE html&g…

精彩回顾 | 云原生系统软件的产业应用

11月18日&#xff0c;2022年第五届中国金融科技产业大会暨第四届中新&#xff08;苏州&#xff09;数字金融应用博览会“基础软件与云原生系统软件”分论坛成功举办。该论坛由由中国计算机学会CTO CLUB&#xff08;苏州&#xff09;承办&#xff0c;江苏省金融科技云原生融合创…

如何用 Python 做一个简单的翻译工具?

前言 平时经常在网上翻译一些单词&#xff0c;突发奇想&#xff0c;可不可以直接调某些免费翻译网站的接口呢&#xff1f;然后做一个图形界面的翻译小工具&#xff1f;下面开始实践 &#xff08;文末送读者福利&#xff09; 1.先找一下有哪些免费翻译的接口 百度了一下关键字…

神经架构搜索的综合调查:挑战和解决方案(二)

4 PERFORMANCE COMPARISON NAS 是一项很有前途的研究。在本节中&#xff0c;我们根据主流搜索方法 [27, 28] 对现有 NAS 的性能进行分类和比较&#xff0c;同时还根据第 3 节报告了它们使用的优化策略。这些搜索方法主要包括以下内容&#xff1a;强化学习&#xff08;RL&#…

操作系统学习笔记(Ⅲ):内存

目录 1 内存管理 1.1 内存基础知识 1.内存 2.进程运行 1.2 内存管理的概念 1.3 覆盖与交换 1.覆盖 2.交换 3.区别 1.4 连续分配管理方式 1.单一连续分配 2.固定分区分配 3.动态分区分配 1.5 动态分区分配算法 1.首次适应算法 2.最佳适应算法 3.最坏适应算法 …

网络安全与IP安全

网络安全 是指网络系统的硬件&#xff0c;软件以及系统中的数据收到的保护。 保护的基本属性为&#xff1a;机密性&#xff0c;身份认证&#xff0c;完整性和可用性&#xff1b; 基本特征&#xff1a;相对性&#xff0c;时效性&#xff0c;相关性&#xff0c;不确定性&#xf…

React项目实战之租房app项目(六)渲染房源列表axios优化封装顶部搜索栏列表找房模块之条件筛选

前言 目录前言一、地图找房模块-获取并渲染房源列表1.1 房源列表示例图1.2 实现步骤1.3 代码示例二、axios优化2.1 问题概述2.2 配置生产环境和开发环境2.3 axios优化三、封装顶部搜索导航栏四、列表找房模块-导入顶部导航栏组件五、列表找房模块-条件筛选&#xff08;上&#…

Python将Excel文件插入Mysql数据库(脚本)

目录前言最近接到一个需求&#xff0c;就是将多个Eccel文件&#xff08;表头相同&#xff1b;每个都非常大&#xff0c;约60多万行&#xff0c;每个都是&#xff01;&#xff01;&#xff09;先合并在一起&#xff0c;再做一些处理&#xff0c;但是Excel表格一个文件根本存不下…

Python矩阵乘法 二重循环实现 + 列表推式

这是python 矩阵乘法的简单例子 col 2 row 2 a [[1, 2], [3, 4]] b [[5, 6], [7, 8]] c [[0, 0], [0, 0]] “”" a b c 二维矩阵初始化 c [[0 for col in range(col)] for row in range(row)] a [[0 for col in range(col)] for row in range(row)] b [[0 for c…