问题标签 [expectation-maximization]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
algorithm - Would non-decrease property change if the denominator is a non-invertible matrix in M step of EM algorithm?
Suppose in the M-step of EM algorithm, the denominator of some parameters are matrix and they are non-invertible, we would use pseudo inverse matrix instead of it. If so, would the log likelihood still always increase?
I couldn't give a specific case and I fabricated this question. If you really need one, you could follow the EM algorithm of wiki page. In the filtering and smoothing part. suppose the denominator are matrix and the sum of them are not invertible, so what would happen for the loglikelihood? Still always increase?
r - 多元 t 混合模型的 EM 算法
我正在尝试为家庭数据实现 EM 算法,我假设我的观察结果具有多元 t 分布。我每个家庭只有两个兄弟姐妹,所以所有家庭组只有两个观察结果。基本上我正在尝试遵循本文中的 E(C)M 步骤: https ://pdfs.semanticscholar.org/9445/ef865c4eb1431f9cb2abdb5efc1c361172cc.pdf
但是,现在我不确定 EM 是否适用于此类数据,因为我的相关矩阵 Psi 对于家庭来说应该是块对角线。
所以这是一个关于我的家庭结构的 R 示例
EM 算法在第 5 次迭代后阻塞,表示相关矩阵 Psi 不是:
solve.default(psi_hat) 中的错误:系统在计算上是奇异的
如果有人能对此有所了解,我会非常高兴!
opencv - C#中的期望最大化
在 Internet 上,有很多 C++ 或 Python 的代码示例。但是C#中没有一个例子。
我自己试了一下,报错了。
我的问题是什么?有人可以提供有关期望最大化主题的工作示例吗?
bayesian - 平均场变分推理的更新
我想知道 ELBO 是否应该随着变分参数 q_i的每次更新而单调增加?我知道它应该在每次迭代中增加,但是在每个 q_i 的一次迭代中也是如此吗?
python - 是否应该在运行 EM 记录链接算法之前删除重复条目?
示例设置
我正在链接一个数据集以查找其中的重复条目。我不知道在我的数据集中重复出现的次数。
在我的阻塞之后,我最终得到了以下数据集:
[这是一个示例数据集,不是我的真实数据]
因此,我将同一数据集中的记录相互比较。
我使用基于 Fellegi Sunter 算法的 EM 算法将上述数据集与协议变量“forename”、“surname”和“age”进行比较。
我通过将数据集 1 中的每条记录与数据集 2 中的每条记录进行比较来创建我的比较空间,即 4 * 4 = 16 个可能的记录对。
例如
问题
但是,这意味着与它们自身相比相同的记录正在传递到我的 EM 算法中:
例如
这些不是必需的,它们只是形成比较空间的残余物。
由于 EM 算法是一种“学习算法”,它根据其输入信息优化一致性和不一致性变量权重,我本质上是在为其提供更多的训练信息。
这反映在结果中;
如果我在运行算法之前删除这些记录,我会得到 3001 条记录,得分高于 0.9(使用我的真实数据集)。
但是,如果我在运行算法后删除了这些记录,我只会得到 2486 条记录,得分高于 0.9(使用我的真实数据集)。
即,如果我包含这些重复的示例,则更具选择性。
最终:
将它们包含在 EM 中对我来说没有意义,但我担心删除会降低算法的准确性。
我应该在运行 EM 之前删除这些已知的重复项吗?
parameters - 如何使用 EM 算法确定 DBSCAN 在一个数据集上的参数(eps,minpts)?
最近我选择在公共数据集上使用 DBSCAN 聚类。但是参数 Eps 和 minpts 非常敏感,以至于很难在整个数据集上获得具有良好性能的良好参数值。在调整 DBSCAN 的参数时似乎存在过拟合。我知道EM算法可以用来调整GMM模型的参数。我想知道是否可以在DBSCAN中使用EM算法。我需要一些关于它的想法或建议。以前有人试过吗?
python - EM算法中的参数
我一直在使用斯坦福大学的 Andrew Ng 的材料来学习 EM 算法,链接在这里: http ://cs229.stanford.edu/notes/cs229-notes7b.pdf 我一直在尝试了解EM 通过使用 Python 库,专门用于处理 Old Faithful 数据集。链接如下: https ://mixem.readthedocs.io/en/latest/examples/old_faithful.html 这个数据集有大约272个观测值,两个变量分别是喷发时间和等待时间;其中包含喷发之间的时间信息。我对以下代码行有几个问题:
- 为什么我必须为 mu 创建两个数组以及为什么要考虑这些维度?我想第一个(2,50)第一个2是指变量的数量(爆发和等待),但是为什么要把50作为第二个维度。另外,为什么我需要 (4,80) 的数组和两个维度为 2 的身份数组?
python - EM 算法使用 pykalman 返回不同的答案
我在使用时遇到了一个pykalman 0.9.5
问题Python 3.6.3
请参阅下面的代码,为什么结果来自kf2
和kf3
不同,而结果来自kf1
和kf3
相同?
kf2
和之间过程的区别kf3
在于我只是将迭代拆分为运行 2 次函数 for kf2
。
感谢大家调查它。
python - Baum Welch(EM 算法)似然性 (P(X)) 不是单调收敛的
所以我在机器学习方面有点像业余爱好者,我正在尝试编写 Baum Welch 算法,这是 EM 算法的隐马尔可夫模型的推导。在我的程序中,我正在使用新模型中每个观察序列的概率测试收敛性,然后在新模型小于或等于旧模型时终止。但是,当我运行该算法时,它似乎会收敛一些,并给出比随机更好的结果,但是在收敛时它会在最后一次迭代中下降。这是错误的迹象还是我做错了什么?
在我看来,我应该使用每个观察概率的对数总和来进行比较,因为这似乎是我正在最大化的函数。但是,我读到的论文说要使用观察的概率总和(我很确定与概率总和相同)的对数(https://www.cs.utah.edu/~piyush /teaching/EM_algorithm.pdf)。
我在另一个项目中解决了这个问题,在该项目中,我通过实现一个具有预设时期数的 for 循环而不是一个 while 循环,使用前馈神经网络实现了反向传播,其中新迭代的条件严格大于但我想知道是否这是一个不好的做法。
我的代码位于 nlp.py 文件中的https://github.com/icantrell/Natural-Language-Processing 。
任何意见,将不胜感激。谢谢你。