machine-learning - 马尔可夫链 - 具有 "unseen"个观测值的样本的可能性(概率 0)

标签 machine-learning markov-chains markov unsupervised-learning markov-models

我有一个大的马尔可夫链和一个样本,我想计算其可能性。问题是样本中的某些观察或转换不会发生在马尔可夫链中,这使得总似然为 0(或对数似然 - 无穷大)。不可能使用更多的数据来构建马尔可夫链。我想知道是否有办法仍然具有有意义的可能性。

我已经尝试过滤掉样本中的这些“未知”观察结果并单独报告它们。但问题是我想将样本的可能性与同一样本的可能性进行比较,但经过转换。转换后的样本具有不同数量的“未知”观察值。因此,我认为我无法比较这两种可能性,因为它们是通过不同数量的观察结果计算出来的。

有没有办法仍然计算可以比较的有意义的可能性?我正在考虑对样本中观察到的概率进行平均,但我找不到任何正确的信息。

提前致谢!

最佳答案

简单来说 - 概率模型中的关键是概率分布估计器。看来您使用了最简单的可能 - 经验估计器,其形式为

p(event) = count(event) / [count(event) + count(not-event)]

对于未见过的事件估计概率为 0,这会导致明显的问题。有数十种估计器不存在此问题,最简单的估计器之一是拉普拉斯平滑,其中您假设对未见过的事件存在一定的概率限制

p(event) = [count(event) + alpha] / [count(event) + count(not-event) + alpha * #event-types]

这样,即使没有发生的事件也具有非零概率。

关于machine-learning - 马尔可夫链 - 具有 "unseen"个观测值的样本的可能性(概率 0),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32008010/

相关文章:

python - lightgbm.sklearn.LGBMRegressor 无法拟合简单直线

machine-learning - 训练和测试数据分割后是否需要验证数据集的独立ID并进行相同分布的统计测试?

python - 用更好的结构简化 for-if 困惑?

c++ - 从模拟数据构建非常大的马尔可夫链的最佳/最快方法是什么?

马尔可夫链的R仿真

f# - F# 中的马尔可夫库/示例

matlab - matlab中多变量线性回归,公式和代码不匹配

python - 我如何以编程方式为任意数据集生成描述符?

用于 DTMC 稳态解决方案的 Java 库

python - 生成马尔可夫过程的 Kolmogorov-Chapman 方程