资源简介
HMM(Hidden Markov Model,隐马尔科夫模型)是一种用参数表示的用于描述随机过程统计特性的概率模型,是一个双重随机过程, 由两个部分组成:马尔可夫链和一般随机过程。 其中马尔可夫链用来描述状态的转移,用转移概率描述。一般随机过程用来描述状态与观察序列间的关系,用观察值概率描述。
代码片段和文件信息
/* ----------------------------------------------------------
功能描述:
1.前向算法(forward algorithm):给定HMM求一个观察序列的概率(评估)
2.后向算法(backward algorithm):给定HMM求一个观察序列的概率(评估)
3.前向-后向算法(forward-backward algorithm):根据观察序列生成隐马尔科夫模型(学习)
4.维特比算法(Viterbi algorithm):搜索最有可能生成一个观察序列的隐藏状态序列(解码)
参考资料:
C代码:http://www.kanungo.com/software/umdhmm-v1.02.zip
学习资料:http://www.52nlp.cn/category/hidden-markov-model
------------------------------------------------------------ */
using System;
using System.Collections.Generic;
using System.Text;
namespace loitering_Markov_
{
public partial class HMM
{
///
/// 隐藏状态数目 N
///
public readonly Int32 N;
///
/// 观察符号数目 M
///
public readonly Int32 M;
///
/// 状态转移矩阵 A
///
public Double[] A;
///
/// 混淆矩阵(confusion matrix)B
///
public Double[] B;
///
/// 初始概率向量 PI
///
public Double[] PI;
///
/// 构造函数
///
/// 隐藏状态数目
/// 观察符号数目
public HMM(Int32 StatesNum Int32 ObservationSymbolsNum)
{
N = StatesNum; // 隐藏状态数目
M = ObservationSymbolsNum; // 观察符号数目
A = new Double[N N]; // 状态转移矩阵
B = new Double[N M]; // 混淆矩阵
PI = new Double[N]; // 初始概率向量
}
///
/// 维特比算法:通过给定的观察序列,推算出可能性最大的隐藏状态序列
/// Viterbi Algorithm: Finding most probable sequence of hidden states
///
/// 已知的观察序列
/// 可能性最大的隐藏状态序列的概率
/// 可能性最大的隐藏状态序列
/// 使用双精度运算,不输出中间结果
public Int32[] Viterbi(Int32[] OB out Double Probability)
{
Double[] DELTA;
Int32[] PSI;
return Viterbi(OB out DELTA out PSI out Probability);
}
///
/// 维特比算法:通过给定的观察序列,推算出可能性最大的隐藏状态序列
///
/// 已知的观察序列
/// 输出中间结果:局部最大概率
/// 输出中间结果:反向指针指示最可能路径
/// 可能性最大的隐藏状态序列的概率
/// 可能性最大的隐藏状态序列
/// 使用双精度运算,且输出中间结果
public Int32[] Viterbi(Int32[] OB out Double[] DELTA out Int32[] PSI out Double Probability)
{
- 上一篇:DayLoadSet.csv
- 下一篇:C#仿简单的CAD矢量绘图源码
相关资源
- asp.net C#购物车源代码
- C#实时网络流量监听源码
- C#百度地图源码
- Visual C#.2010从入门到精通配套源程序
- C# 软件版本更新
- C#屏幕软键盘源码,可以自己定制界面
- 智慧城市 智能家居 C# 源代码
- c#获取mobile手机的IMEI和IMSI
- C#实现简单QQ聊天程序
- 操作系统 模拟的 欢迎下载 C#版
- C#写的计算机性能监控程序
- 用C#实现邮件发送,有点类似于outlo
- MVC model层代码生成器 C#
- c#小型图书销售系统
- C# Socket Server Client 通讯应用 完整的服
- c# winform 自动登录 百度账户 源代码
- C#编写的16进制计算器
- C#TCP通信协议
- C# 数据表(Dataset)操作 合并 查询一
- C#语音识别系统speechsdk51,SpeechSDK51L
- 数据库备份还原工具1.0 C# 源码
-
[免费]xm
lDocument 节点遍历C# - EQ2008LEDc#开发实例
- DirectX.Capturec# winform 操作摄像头录像附
- c# 实现的最大最小距离方法对鸢尾花
- C#版保龄球记分代码
- C#自定义控件
- 基于c#的实验室设备管理系统621530
- C# 使用ListView控件实现图片浏览器(源
- C#简单窗体聊天程序
评论
共有 条评论