pomegranate 是基于 Python 的图模型和概率模型工具包,它使用 Cython 实现以加快反应速度。它源于 YAHMM,可实现快速、高效和极度灵活的概率模型,如概率分布、贝叶斯网络、混合隐马尔可夫模型等。概率建模最基础的级别是简单的概率分布。以语言建模为例,概率分布就是是一个人所说的每个单词出现频率的分布。
1. 概率分布
第二个级别是以更复杂的方式使用简单分布的概率模型。马尔可夫链可以扩展简单的概率分布,仍旧以语言建模为例,即某个单词的概率依赖于先前所说单词。隐马尔可夫模型中某个单词的概率依赖于前一个词的潜在/隐藏状态,如名词通常在形容词后面。
马尔可夫链
贝叶斯分类器和朴素贝叶斯
一般混合物模型
隐马尔可夫模型
贝叶斯网络
因子图
第三个级别是概率模型的堆叠,可以建模更复杂的现象。如果单个隐马尔可夫模型可以捕捉口音(如某个人的说话习惯),那么混合隐马尔可夫模型可以将其调整以适应特定情况。比如,一个人可能在工作时使用更为正式的语言,在与朋友交流时使用稍微随意的语言。通过将其建模为混合隐马尔可夫模型,我们将这个人的语言表示为各种口音的「混合」。
1. GMM-HMMs
2. 混合模型
3. 模型的贝叶斯分类器
2. 安装
pomegranate 依赖项要求:
- Cython (only if building from source) - NumPy - SciPy - NetworkX - joblib
运行测试前,还要安装 nose。
pip 安装:
pip install pomegranate
conda 安装:
conda install pomegranate
无需 C++编译器,快速安装 Windows 版本的 Wheels 已构建完毕。
3. 验证安装
设置已完成,现在需要检查 pomegranate 是否可以使用:
\$ python -c 'from pomegranate import *; print(NormalDistribution(0, 1).probability(0))' 0.398942280402