EM算法学习

1.EM算法的介绍


可以发现:计算出θA和θB的值的前提是知道A、B币种的抛掷情况。
所以我们需要使用EM算法:求出每轮选择硬币种类的概率

2.EM算法执行过程:

第一步:首先初始化设置一组PA和PB证明的值。然后通过最大似然估计得到每轮实验对于硬币种类的选择。【E步】

第二步:继续用最大似然估计,和第一步进行迭代。

首先得到标准答案:

然后随机初始化,进行假设第一轮是AorB:

得到第一轮PA正=0.005

然后假设第一轮的硬币是B,得到概率:0.03

可以得到:【这个过程就是E步】

得到隐变量的选择序列后,再根据这个序列重新计算PA和PB的结果**(M步:)**

然后E和M所对应的初始化值和估计值进行对比:

然后在第二轮迭代时,重选择使用的硬币

然后基于新的硬币序列重新计算PA和PB,会发现计算结果越来越接近真实的PA=0.4和PB=0.5

结论:

EM最终迭代后的结果不一定就刚好满足最初设想的真实值,最终结果取决于初始化情况。

相关推荐
德先生&赛先生23 分钟前
LeetCode-542. 01 矩阵
算法·leetcode·矩阵
HAH-HAH27 分钟前
【洛谷】P2197【模板】Nim 游戏
算法·游戏
长安即是故里32 分钟前
Maxwell学习笔记
笔记·学习
lichkingyang1 小时前
最近遇到的几个JVM问题
java·jvm·算法
feifeigo1232 小时前
matlab中随机森林算法的实现
算法·随机森林·matlab
躲着人群2 小时前
次短路&&P2865 [USACO06NOV] Roadblocks G题解
c语言·数据结构·c++·算法·dijkstra·次短路
★YUI★2 小时前
学习制作记录(选项UI以及存档系统)8.24
学习·游戏·ui·unity·c#
咸甜适中2 小时前
rust语言 (1.88) egui (0.32.1) 学习笔记(逐行注释)(十四)垂直滚动条
笔记·学习·rust·egui
心动啊1213 小时前
支持向量机
算法·机器学习·支持向量机
小欣加油4 小时前
leetcode 1493 删掉一个元素以后全为1的最长子数组
c++·算法·leetcode