当前位置: 首页 > news >正文

R拟合 | 一个分布能看到三个峰,怎么拟合出这三个正态分布的参数? | 高斯混合模型 与 EM算法

1. 效果

在这里插入图片描述

已知数据符合上图分布,怎么求下图的三个分布的参数mu, sigma,及每个分布的权重 lambda?

2. 代码: 高斯混合模型(Gaussian Mixture Model,简称GMM)

library(mixtools)
set.seed(123) # 确保结果可重复# 假设x是你的观测数据
x <- rnorm(1000, mean=c(-2, 0, 2), sd=c(1, 1, 1))
x <- c(x, x + 5, x - 5) # 模拟三峰数据# 绘制密度图
par(mfrow=c(2,1))
plot(density(x), main="三峰密度图", xlab="观测值", xlim=c(-10, 10))# 拟合三峰正态混合模型
mix <- normalmixEM(x, k=3, maxit=1000, epsilon=1e-4)
summary(mix)
abline(v=mix$mu, col="red", lty=2, lwd=2)# 绘制拟合结果
# plot(mix, which=2, main="拟合结果")
plot(mix, density = TRUE, w = 1.1)
#plot(mix, which = 2)  # 第2种图,会显示混合分布曲线

3.获取参数

> summary(mix)
summary of normalmixEM object:comp 1   comp 2   comp 3
lambda  0.513487 0.110986 0.375528
mu     -3.613972 6.917701 2.934937
sigma   2.609374 1.088864 2.020785
loglik at estimate:  -8589.094> mix$mu
[1] -3.613972  6.917701  2.934937
> mix$sigma
[1] 2.609374 1.088864 2.020785> mix$lambda
[1] 0.5134868 0.1109857 0.3755276

其中 lambda 是混合模型中的权重参数。每个在0到1之间。和是1。

4.名词解释

  • 高斯混合模型(Gaussian Mixture Model,简称GMM) 是一种概率模型,用于表示由多个高斯分布(正态分布)组成的复杂分布。

  • 谱学习算法(Spectral Learning Algorithms)是一类利用线性代数中的矩阵分解技术来估计模型参数的方法,在自然语言处理、机器学习等领域有广泛的应用。

Ref:

  • https://blog.csdn.net/m0_74259787/article/details/144808292
http://www.dtcms.com/a/296774.html

相关文章:

  • Android tcp socket sample示例
  • 实时云渲染将UE像素流嵌入业务系统,实现二维管理系统与数字孪生三维可视化程序的无缝交互
  • MySQL如何处理并发访问和高负载?
  • qlib Alpha360 因子列表解读
  • C++与WebAssembly打造跨平台游戏
  • 《使用Qt Quick从零构建AI螺丝瑕疵检测系统》——4. 前后端联动:打通QML与C++的任督二脉
  • 计算机网络摘星题库800题笔记
  • 单片机按键的控制
  • 西门子plc IEC_TIMER 与 TON_TIME 异同
  • 【STM32】FreeRTOS 任务的创建(二)
  • ESP32+MicroPython:嵌入式开发的极简入门指南
  • MySQL基础02
  • JavaScript 入门教程
  • 【MySQL】MySQL 事务和锁详解
  • Linux应用开发基础知识——进程学习2(exec函数、system函数、popen函数)(三)
  • C语言:20250724笔记(函数-指针)
  • S7-200 SMART 编程基础详解:从语言、数据结构到寻址方式
  • Spring Bean生命周期七步曲:定义、实例化、初始化、使用、销毁
  • C语言(十)
  • 面试150 寻找峰值
  • Leetcode-.42接雨水
  • 【Linux基础知识系列】第六十四篇 - 了解Linux的硬件架构
  • 【学习】数字化车间与智能工厂如何推进制造业转型
  • 放款需要注意的事项
  • C++实战:人脸识别7大核心实例
  • 【Java】空指针(NullPointerException)异常深度攻坚:从底层原理到架构级防御,老司机的实战经验
  • 网络测试工具
  • UE 加载本地Json文件
  • 【Servo】裸机还是RTOS驱动架构如何选?
  • C++核心编程学习--对象特性--对象的初始化和清理