资源简介
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矢量绘图源码
相关资源
- C#仿简单的CAD矢量绘图源码
- C#程序编程期末考试题
- c# 温度检测上位机
- C#p2p源码聊天程序百分百可用的源码
- (亲测正确版)ASP.NET-c#-捕捉网页快照
- 扫雷游戏_C# 源码
- 基于C#的简单抄表界面
- 档案管理系统 C# 源码
- 托利多电子称开发下传C#源代码
- DirectShow视频播放器C#实现的媒体播放
- C# 实现微信企业号的用户发消息和返
- 遗传算法最短路径c#实现
- visual studio c#用于串口上位机 内部有
- C#指纹机考勤查询系统源码
- 用C#实现的tcp聊天程序
- asp.net c#企业信息管理系统
- asp.net 学生信息管理系统源码C#
- c#获取CPU序列号、主板序列号、硬盘
- C# 开发 andriod 环境搭建详细步骤
- C#读取串口数据画图
- C# POP3接收邮件程序(可用)
- ASP.NET车辆管理系统
- C#多线程计算pi
- C#仓库管理系统
- 如鹏网最新.net视频Asp.net Mvc课件
- C# 图片循环滚动
- 植物大战僵尸C#源码mvc
- messageBox居中父窗体
- C#通过串口采集数据,然后将数据点绘
- C#开发之洪水淹没
评论
共有 条评论