matlab中的隐马尔可夫模型(HMM)实现

            原文链接:http://tecdat.cn/?p=7960

             

            隐马尔可夫模型(HMM)简介

            隐马尔可夫模型(HMM)是一个在你观察到的输出顺序,但不知道状态序列模型产生输出的过程。隐马尔可夫模型的分析试图从观察到的数据中恢复状态序列。

            例如,考虑具有两个状态和六个可能输出的马尔可夫模型。该模型使用:

            • 红色骰子,有六个面,标记为1到6。

            • 一个绿色骰子,具有十二个侧面,其中五个侧面标记??为2到6,其余七个侧面标记??为1。

            • 加权的红色硬币,正面出现概率为.9,背面出现概率为1.。

            • 加权绿色硬币,其正面概率为0.95,背面概率为.05。

            该模型使用以下规则从集合{1、2、3、4、5、6}中创建数字序列:

            • 首先滚动红色骰子,然后写下出现的数字 。

            • 投掷红色硬币并执行以下操作之一:

              • 如果结果为正面,则滚动红色骰子并记下结果。

              • 如果结果是反面,则滚动绿色骰子并记下结果。

            • 在随后的每个步骤中,您翻转与上一步中滚动的骰子颜色相同的颜色的硬币。如果硬币正面朝上,则与上一步骤滚动相同的骰子。如果硬币出现反面,请切换到另一个骰子。

            该模型的状态图具有红色和绿色两种状态,如下图所示。

            分享图片分享图片?

             

            您可以通过滚动具有与状态相同颜色的骰子来确定状态的发射。您可以通过翻转与状态相同颜色的硬币来确定到下一个状态的过渡。

            转换矩阵为:

            = [0.90.050.10.95]

            输出矩阵为:

            分享图片分享图片?

            该模型不是隐藏的,因为您可以从硬币和骰子的颜色知道状态的顺序。但是,假设其他人 没有向您显示骰子或硬币。您所看到的只是输出的顺序。如果开始看到的数字比其他数字多1,则可能会怀疑骰子处于绿色状态,但由于无法看到要滚动的骰子的颜色,因此无法确定。

            隐藏的马尔可夫模型提出以下问题:

            • 给定一系列输出,最可能的状态路径是什么?

            • 给定一系列输出,您如何估算模型的转换和输出概率?

            • 什么是后验概率

            分析隐马尔可夫模型

             

            本节说明如何来分析隐马尔可夫模型。

            生成测试序列

             

            TRANS = [.9 .1; .05 .95];
            
            EMIS = [1/6, 1/6, 1/6, 1/6, 1/6, 1/6;...
            7/12, 1/12, 1/12, 1/12, 1/12, 1/12];
            分享图片

            要从模型生成状态和发射的随机序列 :

            输出seq是序列,输出states是状态序列。

            估计状态序列

             

            likelystates是与长度相同的序列seq

            要测试的准确性hmmviterbi 

            sum(states==likelystates)/1000
            ans =
               0.8200
            分享图片

            在这种情况下,最有可能的状态序列在82%的时间内与随机序列一致。

             

            估算转移和输出矩阵

             返回转换矩阵和输出矩阵的估计值:

            您可以将输出与原始 矩阵进行比较, TRANS并且EMIS

            TRANS
            TRANS =
            0.9000    0.1000
            0.0500    0.9500
            
            EMIS
            EMIS =
            0.1667    0.1667    0.1667    0.1667    0.1667    0.1667
            0.5833    0.0833    0.0833    0.0833    0.0833    0.0833
            分享图片

             

            假设您对TRANS和 有以下初步猜测EMIS

            TRANS_GUESS = [.85 .15; .1 .9];
            EMIS_GUESS = [.17 .16 .17 .16 .17 .17;.6 .08 .08 .08 .08 08];
            分享图片

            您估计TRANSEMIS如下:

            TRANS_EST2 =
            0.2286    0.7714
            0.0032    0.9968
            
            EMIS_EST2 =
            0.1436    0.2348    0.1837    0.1963    0.2350    0.0066
            0.4355    0.1089    0.1144    0.1082    0.1109    0.1220
            分享图片

             如果算法在最大迭代次数(默认值为)内未能达到此容差100,则算法将暂停。 

            如果算法未能达到所需的容差,请使用以下命令增加最大迭代次数的默认值:

            其中,maxiter是算法执行的最大步骤数。

             

             

            估计后验状态概率

             

            输出PSTATESM × L矩阵,其中M为状态数,L为的长度seqPSTATES(i,j)是条件概率,该模型处于状态i时,它产生j的 seq给出的是,seq 

            要返回序列概率的对数seq,请使用第二个输出参数hmmdecode

            随着序列长度的增加,序列的概率趋于0 。

            更改初始状态分布

            默认情况下, 隐藏的Markov模型函数从状态1开始。换句话说,初始状态的分布将其所有概率质量都集中在状态1处。要分配不同的概率分布,p = [ 1,2,...,M ],到M个初始状态,执行以下操作:

            如果转换矩阵和发射矩阵分别为TRANSEMIS,则可以使用以下命令来创建增强矩阵:

            TRANS_HAT = [0 p; zeros(size(TRANS,1),1) TRANS];
            
            EMIS_HAT = [zeros(1,size(EMIS,2)); EMIS];

            有问题欢迎联系我们!

             

            大数据部落 -中国专业的第三方数据服务提供商,提供定制化的一站式数据挖掘和统计分析咨询服务

            统计分析和数据挖掘咨询服务:y0.cn/teradat(咨询服务请联系官网客服

            分享图片?点击这里给我发消息QQ:3025393450

            分享图片?

            【服务场景】  

            科研项目; 公司项目外包;线上线下一对一培训;数据采集;学术研究;报告撰写;市场调查。

            【大数据部落】提供定制化的一站式数据挖掘和统计分析咨询

            分享图片

            欢迎选修我们的R语言数据分析挖掘必知必会课程!

            分享图片

             

             
            分享图片
            相关文章
            相关标签/搜索
            每日一句
              每一个你不满意的现在,都有一个你没有努力的曾经。
            公众号推荐
               一个历史类的公众号,欢迎关注
            一两拨千金
            2020王中王资料一肖中2018年香港开奖日期表2018香港历史开奖结果香港最快开奖现场直播 岚皋县| 湖州市| 广河县| 红桥区| 高唐县| 辉南县| 普安县| 绵竹市| 九龙县| 金华市| 铜川市| 东光县| 怀远县| 奈曼旗| 义乌市| 麦盖提县| 秀山| 牟定县| 高阳县| 桃江县| 肃南| 高阳县| 凤阳县| 黄龙县| 台南县| 新巴尔虎右旗| 娱乐| 阜新市| 攀枝花市| 仁布县| 鄂尔多斯市| 菏泽市| 安多县| 台东市| 错那县| 微博| 牡丹江市| 剑阁县| 延长县| 古浪县| 桂平市| 都匀市| 巴林左旗| 东丽区| 延津县| 清水县| 洞头县| 平度市| 滨海县| 安泽县| 交口县| 介休市| 平山县| 永善县| 建始县| 黄大仙区| 台前县| 广元市| 柯坪县| 清原| 神农架林区| 湘阴县| 鄂州市| 宣恩县| 邓州市| 宜春市| 元江| 东乡族自治县| 治多县| 清流县| 合水县| 高清| 黑山县| 休宁县| 尤溪县| 神池县| 安乡县| 平舆县| 安陆市| 如皋市| 米脂县| 龙山县| 岑溪市| 肥西县| 西吉县| 龙江县| 株洲县| 广州市| 临沧市| 哈巴河县| 原阳县| 枣庄市| 伊川县| 涪陵区| 阳春市| 绩溪县| 前郭尔| 修水县| 汝州市| 和平县| 抚宁县| 乐清市| 万年县| 安仁县| 无棣县| 韶关市| 青冈县| 昌平区| 陇西县| 泰宁县| 临桂县| 棋牌| 肥西县| 湖北省| 县级市| 琼结县| 巴东县| 滦南县| 星座| 贵港市| 武川县| 琼中| 苍梧县| 裕民县| 贺州市| 陇西县| 萝北县| 江陵县| 南部县| 兰州市| 土默特左旗| 福清市| 繁峙县| 中宁县| 冷水江市| 莱阳市| 澄迈县| 扎鲁特旗| 沧源| 龙游县| 舒城县| 连城县| 开封县| 阳江市| 于都县| 广西| 固安县| 崇州市| 遵化市| 林州市| 沿河| 弋阳县| 封开县| 浪卡子县| 和田县| 南木林县| 随州市| 温州市| 杭锦后旗| 甘南县| 博客| 肃南| 常州市| 普洱| 伽师县| 浠水县| 留坝县| 南靖县| 绍兴县| 南城县| 东安县| 安顺市| 梅州市| 海阳市| 阿拉善盟| 镇平县| 临江市| 遵义县| 大丰市| 甘洛县| 武川县| 镇江市| 岳西县| 西充县| 蓝田县| 沐川县| 康乐县| 台东市| 新竹市| 甘肃省| 金昌市| 平武县| 福安市| 离岛区| 嘉禾县| 安宁市| 安国市| 疏附县| 东台市| 辽中县| 东辽县| 兴安盟| 遵义市| 申扎县| 开封市| 拜泉县| 石林| 万全县| 旬邑县| 灵璧县| 陵水| 古蔺县| 永清县| 乌拉特前旗| 泰安市| 新乡县| 建宁县| 南开区| SHOW| 盘锦市| 金昌市| 博乐市| 罗江县| 包头市| 化州市| 措勤县| 科技| 宜宾县| 吴堡县| 和田市| 甘泉县| 弥渡县| 虞城县| 柯坪县| 瑞安市| 海南省| 高邮市| 新河县| 镇坪县| 富阳市| 武汉市| 隆安县| 额尔古纳市| 得荣县| 宝鸡市| 台湾省| 四川省| 石渠县| 北川| 清徐县| 从化市| 龙南县| 元氏县| 益阳市| 册亨县| 耿马| 徐闻县| 阿拉尔市| 英超| 玉山县| 茂名市| 涪陵区| 湖南省| 十堰市| 高青县| 满洲里市| 宜州市| 福安市| 大关县| 旌德县| 思南县| 通道| 龙门县| 稻城县| 洱源县| 新乡市| 青川县| 丹东市| 长丰县| 章丘市| 安吉县| 龙陵县| 博爱县| 综艺| 澜沧| 杂多县| 长治市| 巴彦县| 纳雍县| 凤翔县| 延川县| 榕江县| 防城港市| 泗水县| 顺昌县| 手机| 台湾省| 济宁市| 科尔| 油尖旺区| 永登县| 信丰县| 永康市| 织金县| 康定县| 晋州市| 太仓市| 桐庐县| 滕州市| 琼中| 双城市| 昂仁县| 丹阳市| 开平市| 兴化市| 杂多县| 横峰县| 遵义市| 康保县| 来宾市| 东海县| 洪泽县| 建始县| 南阳市| 重庆市| 开封县| 黑山县| 玛多县| 长汀县| 永平县| 尤溪县| 徐闻县| 达日县| 论坛| 泽库县| 梅河口市| 舒兰市| 静海县| 彝良县| 象山县| 文安县| 玛沁县| 井冈山市| 龙州县| 西城区| 淄博市| 高州市| 于田县| 扎鲁特旗| 托克逊县| 罗山县| 泉州市| 松原市| 如皋市| 合作市| 富宁县| 秭归县| 汉中市| 福安市| 吉木萨尔县| 沾益县| 沿河| 定州市| 婺源县| 常宁市| 新营市| 涞水县| 两当县| 玛多县| 垫江县| 建瓯市| 明溪县| 新平| 南城县| 邢台县| 麻城市| 寻甸| 奈曼旗| 延寿县| 锦州市| 中牟县| 崇义县| 临清市| 宜都市| 焦作市| 大渡口区| 长丰县| 疏附县| 莱芜市| 根河市| 蒙山县| 永泰县| 青海省| 长乐市| 德钦县| 施甸县| 留坝县| 隆子县| 灵武市| 岳池县| 虞城县| 绥滨县| 岐山县| 栾川县| 乐亭县| 南澳县| 舟山市| 宽城| 梅河口市| 博罗县| 齐齐哈尔市| 德昌县| 改则县| 类乌齐县| 巴中市| 桃江县| 清新县| 海林市| 页游| 安庆市| 资阳市| 利辛县| 崇阳县| 屏东县| 晋州市| 凌海市| 云和县| 上饶市| 尤溪县| 沙田区| 波密县| 吴川市| 逊克县| 永登县| 襄城县| 裕民县| 南充市| 西乌| 台南县| 永定县| 桑日县| 朝阳县| 芜湖县| 垦利县| 防城港市| 醴陵市| 阳信县| 东丰县| 汽车| 罗山县| 怀仁县| 六枝特区| 旅游| 克拉玛依市| 庐江县| 电白县| 米泉市| 应城市| 丰都县| 榕江县| 垫江县| 中山市| 嵊泗县| 阳原县| 尉犁县| 开封县| 玛沁县| 诸暨市| 武城县| 石嘴山市| 通化县| 惠州市| 建水县| 靖边县| 临湘市| 金乡县| 上林县| 繁昌县| 游戏| 安丘市| 南靖县| 扎鲁特旗| 丹棱县| 松江区| 道孚县| 渭源县| 五寨县| 赣榆县| 杭州市| 迁西县| 沙湾县| 秀山| 古丈县| 宁城县| 和林格尔县| 盱眙县| 石柱| 双桥区| 铜陵市| 泸西县| 台湾省| 鄂托克旗| 任丘市| 西城区| 永康市| 金门县| 鞍山市| 扎赉特旗| 黔东| 田东县| 肇源县| 凌源市| 林芝县| 镶黄旗| 永修县| 库尔勒市| 丰城市| 福泉市| 盐池县| 长子县| 金湖县| 宝应县| 平度市| 屯留县| 登封市| 枣庄市| 宣武区| 天峻县| 延川县| 三明市| 河间市| 新邵县| 西安市| 巴马| 五寨县| 岳阳市| 宜君县| 黑水县| 扎囊县| 武冈市| 双城市| 阿拉善盟| 巩留县| 天峨县| 衢州市| 隆德县| 兴城市| 林州市| 志丹县| 通州区| 上思县| 长宁县| 合水县| 保山市| 合水县| 弥勒县| 邹城市| 乌拉特前旗| 如东县| 新和县| 丘北县| 长岭县| 军事| 顺昌县| 彭州市| 镇巴县| 廊坊市| 昌图县| 伊春市| 科技| 望奎县| 和林格尔县| 仪征市| 瑞安市| 扶余县| 图木舒克市| 虎林市| 剑川县| 牙克石市| 防城港市| 保定市| 香格里拉县| 宜黄县| 安新县| 丽江市| 拜城县| 苍溪县| 文昌市| 龙门县| 高州市| 临安市| 石柱| 宁都县| 嵊泗县| 海口市| 无为县| 南投市| 县级市| 中牟县| 宜宾市| 从化市| 宜宾市| 天柱县| 双柏县| 永兴县| 上蔡县| 青田县| 富锦市| 丹东市| 自治县| 蒲江县| 鄂尔多斯市| 云阳县| 晋城| 泗阳县| http://jx1870groupv.fun http://wap.jx1870juzpv.fun http://jx1870forecastv.fun http://jx1870fieldv.fun http://m.hz0j0r9vo.fun http://wap.jx1870exitv.fun http://m.jx1870gazev.fun http://m.jx1870holidayv.fun http://wap.jx1870ironv.fun http://wap.jx1870gradev.fun http://www.jx1870grantv.fun http://m.jx1870finev.fun http://www.jx1870fixv.fun http://m.jx1870graduatev.fun http://m.hz0j3r5vo.fun http://m.jx1870graduatev.fun http://wap.hz0j3r1vo.fun http://m.hz0j0r7vo.fun