栏目分类:
子分类:
返回
终身学习网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
终身学习网 > IT > 软件开发 > 后端开发 > Python

隐马尔可夫

Python 更新时间:发布时间: 百科书网 趣学号
import numpy as np
import matplotlib.pyplot as plt
import math
定义第一天的初始概率
start_pro = {'Rainy': 0.6, 'Sunny': 0.4}
定义天气转化的概率
transition_pro = {
    'Rainy': {'Rainy': 0.7, 'Sunny': 0.3},
    'Sunny': {'Rainy': 0.4, 'Sunny': 0.6},
}
定义在不同天气下进行不同工作的概率
emission_pro = {
    'Rainy': {'walk': 0.1, 'shop': 0.4, 'clean': 0.5},
    'Sunny': {'walk': 0.6, 'shop': 0.3, 'clean': 0.1},
}
第一天下雨的概率
v1 = start_pro.get('Rainy') * emission_pro.get('Rainy').get('walk')
Rainy = [v1]
第一天天晴的概率
v11 = start_pro.get('Sunny') * emission_pro.get('Sunny').get('walk')
Sunny = [v11]
array_1 = [v1, v11]
max_1 = 0
for i in array_1:
    if i > max_1:
        max_1 = i
for i in array_1:
    if max_1 in Rainy:
        print('Rainy')
        break
    if max_1 in Sunny:
        print('Sunny')
        break
第二天下雨的概率
v21_1 = v1 * transition_pro.get('Rainy').get('Rainy') * emission_pro.get('Rainy').get('shop')
v21_2 = v11 * transition_pro.get('Sunny').get('Rainy') * emission_pro.get('Rainy').get('shop')
第二天晴天的概率
v22_1 = v1 * transition_pro.get('Rainy').get('Sunny') * emission_pro.get('Sunny').get('shop')
v22_2 = v11 * transition_pro.get('Sunny').get('Sunny') * emission_pro.get('Sunny').get('shop')
max2 = 0
array = [v21_1, v21_2, v22_1, v22_2]
Rainy = [v21_1, v21_2]
Sunny = [v22_1, v22_2]
for i in array:
    if i > max2:
        max2 = i
for i in array:
    if max2 in Rainy:
        print('Rainy')
        break
    if max2 in Sunny:
        print("Sunny")
        break
第三天下雨的概率
v31_1 = v21_1 * transition_pro.get('Rainy').get('Rainy') * emission_pro.get('Rainy').get('clean')
v31_2 = v21_2 * transition_pro.get('Rainy').get('Rainy') * emission_pro.get('Rainy').get('clean')
v31_3 = v22_1 * transition_pro.get('Sunny').get('Rainy') * emission_pro.get('Rainy').get('clean')
v31_4 = v22_2 * transition_pro.get('Sunny').get('Rainy') * emission_pro.get('Rainy').get('clean')
第三天天晴的概率
v32_1 = v21_1 * transition_pro.get('Rainy').get('Sunny') * emission_pro.get('Sunny').get('clean')
v32_2 = v21_2 * transition_pro.get('Rainy').get('Sunny') * emission_pro.get('Sunny').get('clean')
v32_3 = v22_1 * transition_pro.get('Sunny').get('Sunny') * emission_pro.get('Sunny').get('clean')
v32_4 = v22_2 * transition_pro.get('Sunny').get('Sunny') * emission_pro.get('Sunny').get('clean')
max3 = 0
array3 = [v31_1, v31_2, v31_3, v31_4, v32_1, v32_2, v32_3, v32_4]
Rainy = [v31_1, v31_2, v31_3, v31_4]
Sunny = [v32_1, v32_2, v32_3, v32_4]
for i in array3:
    if i > max3:
        max3 = i
for i in array:
    if max3 in Rainy:
        print('Rainy')
        break
    if max3 in Sunny:
        print('Sunny')
        break
转载请注明:文章转载自 www.051e.com
本文地址:http://www.051e.com/it/293605.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 ©2023-2025 051e.com

ICP备案号:京ICP备12030808号