如题。

习题10.1-10.2

python代码

# -*- coding: utf-8 -*-
"""
Created on Sun Oct 20 12:46:42 2019@author: Administrator
"""
import numpy as npdef backword(A, B, PI, O):T  = O.shape[0]# initializationbeta = np.ones(shape = PI.shape[0]) # zeros()# mainfor t in range(T - 1, 0, -1): # python 是 start end step!new_beta = np.ones(shape = PI.shape[0])for i in range(beta.size):new_beta[i] = np.dot(A[i,:] * B[:,O[t]], beta)                 beta = new_beta
#        print("beta = ", beta)return sum(PI * B[:,O[0]] * beta), betadef forword(A, B, PI, O):T  = O.shape[0]alpha = PI * B[:,O[0]]for t in range(T - 1):new_alpha = np.zeros(3)for i in range(3):new_alpha[i] = sum(alpha*A[:,i])*B[i][O[t+1]]alpha = new_alphareturn alpha# const setingA = np.array([0.5, 0.2, 0.3, 0.3, 0.5,0.2,0.2,0.3,0.5]).reshape(3,3)
B = np.array([0.5, 0.5, 0.4, 0.6,0.7,0.3]).reshape(3,2)
PI = np.array([0.2, 0.4, 0.4])
O = np.array([0, 1, 0, 1])
res, beta = backword(A, B, PI, O)
print('10.1题的答案: \n', res)A = np.array([0.5, 0.1, 0.4, 0.3, 0.5,0.2,0.2,0.2,0.6]).reshape(3,3)
B = np.array([0.5, 0.5, 0.4, 0.6,0.7,0.3]).reshape(3,2)
PI = np.array([0.2, 0.3, 0.5])
O = np.array([0, 1, 0, 0, 1, 0, 1, 1])
print('\n10.2题的答案: ')
res, beta = backword(A, B, PI, O)
print('后向的结果 beta = ', beta)
alpha = forword(A, B, PI, O)
print('前向的结果 alpha = ', alpha)
gamma = alpha[-1] * beta[-1] / (sum(alpha * beta))
print(gamma)
'''
10.1题的答案: 0.0600907999999999910.2题的答案:
后向的结果 beta =  [0.00632569 0.00684706 0.00577855]
前向的结果 alpha =  [0.00132502 0.00121063 0.00094105]
0.2459610979231905
'''

习题10.3

维特比算法求最优路径

import numpy as np
# const setting
A = np.array([0.5, 0.2, 0.3, 0.3, 0.5,0.2,0.2,0.3,0.5]).reshape(3,3)
B = np.array([0.5, 0.5, 0.4, 0.6,0.7,0.3]).reshape(3,2)
PI = np.array([0.2, 0.4, 0.4])
T  = 4
O = np.array([0, 1, 0, 1])# initialization
delta = np.zeros(shape=(O.shape[0], 3))
psis = np.zeros(shape=(O.shape[0], 3))# main
delta[0,:] = PI * B[:,O[0]]
psis[0,:] = np.zeros(3)
for t in range(1, T):new_delta = np.zeros(shape=3)old_delta = delta[t - 1, :]for i in range(3):temp = old_delta * A[:, i] * B[i, O[t]]new_delta[i] = temp.max()psis[t, i] = temp.argmax()delta[t, :] = new_delta
print('psis = \n', psis)
idx = []
idx.append(delta[-1,:].argmax())
idx.append(psis[-1, int(idx[-1])])
idx.append(psis[-2, int(idx[-1])])
idx.append(psis[-3, int(idx[-1])])
print(np.array(idx[::-1], dtype=int)+1)
'''
输出:
[3 2 2 2]
'''

统计学习方法李航版第十章部分课后习题python答案相关推荐

  1. 数据库系统概念原书第六版黑皮书第一章课后习题作业答案

    文章目录 1.8列出文件处理系统和DBMS之间的四个显著区别. 1.9 解释物理数据独立性的概念,以及它在数据库系统中的重要性. 1.10 列出数据库管理系统的五个职责.对每个职责,说明当它不能被履行 ...

  2. 鸟哥的Linux私房菜基础学习篇(第二版)第二章课后习题与答案

    习题: 1.计算机总是出现问题,有一个错误信息为"fatal:SASL per- connection security setup",请找出可能的原因. 答:先跑到 http:/ ...

  3. 《Java面向对象程序设计》(第2版)第七章课后习题及答案

    1."程序中凡是可能出现异常的地方必须进行捕获或拋出",这句话对吗? 异常分两类,runtime异常和非runtime异常. runtime异常,比如ArithmeticExcep ...

  4. 统计学习方法-李航(6)

    统计学习方法-李航(6) 分类问题 评价指标 标注问题 过程 学习 标注 回归问题 过程 分类问题 在监督学习中,当输出变量Y取有限个离散值时, 预测问题便成为分类问题. 分类问题包括学习和分类两个过 ...

  5. 统计学习方法-李航(5)

    统计学习方法-李航(5) 生成模型与判别模型 监督学习方法 生成方法(generative approach) 生成模型(generative model) 判别方法(discriminative a ...

  6. 统计学习方法-李航(4)

    统计学习方法-李航(第一章4) 泛化能力 泛化误差 泛化误差上界 考虑二分类问题的泛化误差上界 泛化误差上界定理 泛化误差上界定理证明 泛化能力 泛化误差 学习方法的泛化能力是指由该方法学习到的模型对 ...

  7. 统计学习方法-李航(3)

    统计学习方法-李航(第一章3) 模型评估与模型选择 训练误差与测试误差 过拟合与模型选择 例如:多项式拟合 正则化和交叉验证 正则化 例如:回归问题 交叉验证 简单交叉验证 S折交叉验证(S-fold ...

  8. 统计学习方法-李航(2)

    统计学习方法-李航(第一章2) 如何对经验风险进行矫正 经验风险最小化(ERM) 缺点 结构风险最小化 极大似然估计和贝叶斯估计(PR) 极大似然估计 贝叶斯估计 如何对经验风险进行矫正 在现实中,由 ...

  9. 统计学习方法-李航(1)

    统计学习方法-李航(第一章1) 第一章 统计学习概论 1.1 统计学习 1.2 监督学习 1.3 统计学习的三要素 第一章 统计学习概论 1.1 统计学习 1.统计学习是关于计算机基于数据构建概论统计 ...

最新文章

  1. Jetty实战之 嵌入式Jetty运行web app
  2. Linux server配置安装Java,Tomcat服务器
  3. windows下使用docker(一)—— 安装
  4. JQuery中的API--操作DOM
  5. sketch软件_因远程协作大火的Figma,到底有多好用,会取代Sketch的地位吗?
  6. ORA-00119错误的解决。
  7. arcmap shp导出cad无反应_如何使用ArcMap将Excel数据转换为shp数据
  8. 还不起9亿?有人建议为范冰冰发行一款私募ABS产品融资!
  9. Xftp上传文件显示状态错误
  10. ASP.NET MVC实用技术:开篇
  11. linux ip协议号,IP协议号大全
  12. requests请求报字符编码异常信息
  13. [转]iOS设备唯一标识探讨
  14. 一些会遗忘的代码属性
  15. java-idea-常用的快捷键
  16. atitit.提升研发效率的利器---重型框架与类库的区别与设计原则
  17. PackageManager的参数及使用
  18. 2022年总结:道阻且长,行则将至
  19. 【计算机操作系统】银行家算法的模拟实现
  20. c v语言 小数后20位,V语言学习笔记-30集成C代码库

热门文章

  1. ActiveMQ 在shareplex8中的使用
  2. 路由器与交换机的工作原理(转)
  3. request.setAttribute理解
  4. 关于String的intern的一个题目
  5. sql server 公共表表达式【CTE 】、临时表、变量表
  6. c语言面试题东软,【东软集团程序员Java东软集团C语言面试题】面试问题:东软java面… - 看准网...
  7. 12.3 页面锁PG_Locked
  8. 量化投资学习必读书目之十二——《日本蜡烛图技术》
  9. 【Excel常用函数】VLookup函数使用教程,附视频教程
  10. 为何概述(翻译)CS229这个系列