建模杂谈系列254 GMM的拟合

news2024/11/15 2:22:58

说明

首先假设数据由多个正态分布叠加而成,这个场景应该也是比较有普遍意义的。

内容

数据还是之前产生的三波

import numpy as np
import matplotlib.pyplot as plt
from sklearn.mixture import GaussianMixture

# 生成示例数据
np.random.seed(0)
data1 = np.random.normal(loc=20, scale=5, size=300)
data2 = np.random.normal(loc=50, scale=10, size=700)
data3 = np.random.normal(loc=70, scale=30, size=500)
data = np.concatenate([data1, data2,data3])

进行拟合并画图


# 拟合 GMM
gmm = GaussianMixture(n_components=3, random_state=0)
gmm.fit(data.reshape(-1, 1))

# 生成拟合的 GMM 密度曲线
xmin, xmax = plt.xlim()
x = np.linspace(data.min(), data.max(), 1000)
logprob = gmm.score_samples(x.reshape(-1, 1))
pdf = np.exp(logprob)

# 绘制直方图和拟合的 GMM 密度曲线
plt.hist(data, bins=30, density=True, alpha=0.6, color='g', label='Data')
plt.plot(x, pdf, 'k', linewidth=2, label='GMM')

# 添加图例和标签
plt.title('Gaussian Mixture Model Fit')
plt.xlabel('Value')
plt.ylabel('Density')
plt.legend()

# 显示图形
plt.show()

在这里插入图片描述
从图像上看,是不太对的,看起来只有两个波。但是看模型拟合的参数是对的

gmm.means_
array([[49.35769361],
       [75.36264743],
       [20.41493429]])

再看标准差

import numpy as np
from sklearn.mixture import GaussianMixture
# 获取每个成分的标准差
std_devs = np.sqrt(gmm.covariances_).flatten()
print(f"Standard Deviations of each component: {std_devs}")
Standard Deviations of each component: [ 9.57180175 27.62374819  5.43236064]

已经非常接近真相了。

很有意思,把几种豆子混在一起撒进去,然后还能分出来。

如果假设的n_components为7,乍一看不出问题,之后再用其他来进行检验。之前我还认为多给的类会几种在一起,现在看来不是这样。

gmm.means_

array([[ 45.51781429],
       [ 76.17244197],
       [ 30.74652342],
       [ 94.62139471],
       [ 56.99546783],
       [ 19.9330969 ],
       [117.56899306]])

方差

Standard Deviations of each component: [ 5.20720528  7.61508437  7.3278159   8.05410436  5.92218708  7.04771942
 15.85456659]

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

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

相关文章

51单片机的pwm控制的智能台灯设计【proteus仿真+程序+报告+原理图+演示视频】

1、主要功能 该系统由AT89C51/STC89C52单片机LCD1602显示模块DS1302时间模块光敏传感器模块人体红外模块按键等模块构成。适用于智能台灯、PWM调节灯光亮度等相似项目。 可实现基本功能: 1、LCD1602实时显示北京时间、环境光照强度、手动/自动模式、台灯亮度等信息&#xff1…

029、架构_高可用_水位和分组

GoldenDB分组技术 GoldenDB灵活智能的数据可用性策略名称是gTank。包含了分组技术和高低水位两个技术点。在分布式一主多备架构下,全节点的数据同步,耗时长、用户体验差。因此GoldenDB采用分组技术,将数据节点和事务节点GTM实现分组管理,实现业务的灵活配置。 数据节点集群…

【实战教程】用 Next.js 和 shadcn-ui 打造现代博客平台

你是否梦想过拥有一个独特、现代化的个人博客平台?今天,我们将一起动手,使用 Next.js 和 shadcn-ui 来创建一个功能丰富、外观精美的博客系统。无论你是刚接触 Web 开发,还是经验丰富的程序员,这个教程都将带你step by…

【Next.js 入门指南】5分钟创建你的第一个 Next.js 应用

你是否曾经梦想过构建一个快速、高效且 SEO 友好的 React 应用?今天,我们将一起探索 Next.js —— 一个革命性的 React 框架,它将帮助你轻松实现这个梦想。在接下来的 5 分钟里,你将创建并运行你的第一个 Next.js 应用&#xff0c…

开发团队如何应对突发的技术故障与危机:策略与实践

💓 博客主页:倔强的石头的CSDN主页 📝Gitee主页:倔强的石头的gitee主页 ⏩ 文章专栏:《热点时事》 期待您的关注 目录 引言 一、快速响应与问题定位策略 1. 建立紧急响应团队 2. 利用自动化监控工具 3. 快速定位问…

图片转PDF:2024四大转换工具推荐!

在数字化时代,我们经常需要将图片转换成PDF格式,无论是为了打印、存档还是分享。“图片转PDF”已经成为一个常见的需求,而市场上有多种工具可以帮助我们轻松实现这一转换。本文将介绍几款备受好评的图片转PDF工具! 福昕PDF转换大…

代码随想录算法训练营第三十四天| 62.不同路径 63. 不同路径 II

62.不同路径 题目: 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。 问总共有多少…

Java 入门指南:Java 并发编程 —— LockSupport 线程阻塞唤醒类

LockSupport LockSupport 是Java并发包中用于线程阻塞和唤醒的工具类。它提供了一种基于线程的阻塞和唤醒机制,类似于 Object 类中的 wait() 和 notify() 方法,但与 wait() 和 notify() 方法相比,LockSupport,它不依赖于对象的监…

SpringBoot2:配置绑定与自动配置功能源码解读

一、配置绑定 1、作用说明 我们在开发springboot项目时,会有个配置文件,application.properties文件。 我们知道,像什么访问端口、上传功能的相关配置,都会在这里进行配置。 而这些,都是springboot自带的或者第三方j…

储能电站变流器设计与仿真研究(文章复现matlab)

为了有效解决交流子网与直流子网间的功率传输, 降低电流谐波, 基于三相电压源型变流器及变流器的控制方法, 在 MATLAB R2018a 环境下搭建了储能变流器的整体仿真模型。 电路主要由三相电网、 三相 PWM 变流器、Buck/Boost 变换器和蓄电池构成…

MQTT - EMQX安装使用

阅读本文前可先参考: MQTT - 消息队列遥测传输协议 MQTT(Message Queuing Telemetry Transport)是一种轻量级、基于发布-订阅模式的消息传输协议,适用于资源受限的设备和低带宽、高延迟或不稳定的网络环境。它在物联网应用中广受…

【html】新建一个html并且在浏览器运行

以下是一个简单的 HTML 小项目&#xff0c;展示一个包含标题、按钮和点击按钮后弹出提示框的基本页面 <!DOCTYPE html> <html lang"en"> <head> <meta charset"UTF-8"> <meta name"viewport" content"widthde…

视频提取字幕的软件有哪些?高效转录用这些

探索视频的奥秘&#xff0c;从字幕开始&#xff01;你是否曾被繁复的字幕处理困扰&#xff0c;渴望有一款简单好用的在线免费软件来轻松解锁字幕提取&#xff1f; 告别手动输入的烦恼&#xff0c;我们为你精选了6款视频字幕提取在线免费软件&#xff0c;它们不仅能一键转录&am…

新手常见错误:Unable to find a @SpringBootConfiguration

目录 报错信息 &#xff1a; 1. 使用SpringBootTest注解 2. 使用ContextConfiguration注解 3. 检查包结构和注解&#xff08;一般都是这问题&#xff09; 4. 清理和重建项目 5. 检查依赖 报错信息 &#xff1a; Unable to find a SpringBootConfiguration, you need to use C…

pdf转word怎么转换?2024快速进行文件格式转换的几款软件

pdf转word怎么转换&#xff1f;2024快速进行文件格式转换的几款软件 将PDF文件转换为Word文档是日常工作中常见的需求&#xff0c;尤其是当你需要编辑或重新利用PDF中的内容时。市面上有许多软件可以帮助你轻松完成PDF转Word的任务&#xff0c;以下是五款值得推荐的软件&#…

WordPress 资源展示型下载类主题 CeoMax-Pro_v7.6 开心版

WordPress 资源展示型下载类主题 CeoMax-Pro_v7.6 开心版&#xff1b; CeoMax-Pro是一款极致美观强大的WordPress付费资源下载主题&#xff0c;它能满足您所有付费资源下载的业务需求&#xff01; 你的想法与业务不能被主题所限制&#xff01;CeoMax-Pro强大的功能&#xff0…

Spring Security 认证源码超详细分析

Spring Security 认证源码超详细分析 认证&#xff08;Authentication&#xff09;是系统确认用户信息的重要途径&#xff0c;用户通过认证之后&#xff0c;系统才能明确用户的身份&#xff0c;进而才可以为该用户分配一定的权限&#xff0c;这个过程也叫授权&#xff08;Auth…

智慧理财新纪元:蚂蚁集团“支小宝”智能理财助理深度体验与测评

2023年9月8日&#xff0c;蚂蚁集团宣布推出面向消费者的智能金融助理“支小宝2.0”&#xff0c;这是该公司首个基于金融大模型的应用产品。该产品在语言力、知识力、专业力和安全力方面展现出卓越性能&#xff0c;旨在为用户提供包括行情分析、持仓诊断、资产配置和投资教育陪伴…

MS SQL Server partition by 函数实战三 成绩排名

目录 需求 范例运行环境 视图样本设计 功能实现 基础数据展示 SQL语句 继续排序 小结 需求 假设有若干已更新考试成绩的考生&#xff0c;考试成绩包括总成绩、分项成绩1、分项成绩2&#xff0c;其它信息包括应聘岗位名称、姓名等信息。现希望根据总成绩计算排名&#…

C语言代码练习(第十一天)

今日练习&#xff1a; 25、用指针方法对10个整数按由大到小顺序排序 26、有一个班&#xff0c;3个学生&#xff0c;各学习4门课&#xff0c;计算总平均分数以及第 n 个学生的成绩 27、有一个3 * 4的二维数组&#xff0c;要求用指向元素的指针变量输出二维数组个元素的值。 用指…