2个不稳定版本
使用旧的Rust 2015
0.2.0 | 2017年3月10日 |
---|---|
0.1.0 | 2017年3月9日 |
#674 in 机器学习
17KB
275 行
隐马尔可夫模型
hmm是一个早期开源项目。这意味着API可以随时更改。如果您认为这个库可以帮助您,请告诉我。我们可以讨论未来的方向并尝试稳定API。
特性
- Viterbi MAP估计
示例
假设我们有两枚硬币
- 公平硬币,以1/2的概率生成H(正面)和T(反面)
- 有偏硬币 - H: 1/4,T: 3/4的概率
我们还知道,每次投掷后,我们可以以以下概率切换硬币
- 使用同一枚硬币:3/4
- 切换硬币:1/4
第一次投掷硬币的概率为1/2
使用这个库,我们可以回答以下问题
给定观察结果'H H T T T',每次投掷使用了哪些硬币?
让我们构建HMM模型并检查答案
extern crate hmm;
use hmm::models::{HiddenMarkov};
fn main() {
let initials = vec![0.5, 0.5];
let st = vec![ vec![0.75, 0.25],
vec![0.25, 0.75]];
let obs = vec![ vec![0.5, 0.5],
vec![0.25, 0.75]];
let hmm = HiddenMarkov::new(initials, st, obs).unwrap();
let coins = hmm.map_estimate(vec![0, 0, 1, 1, 1]);
println!("Coins used: {:?}", coins);
}
更多示例请查看 示例。
许可证
根据您的选择,许可如下
- Apache License,版本2.0,(LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT许可证(LICENSE-MIT 或 http://opensource.org/licenses/MIT)
。
贡献
除非您明确声明,否则根据Apache-2.0许可证定义的任何有意提交的工作,都应按上述方式双许可,不附加任何额外条款或条件。