如题。

习题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. 笨办法学python47 原理_41:学会说面向对象
  2. 6 Springboot 整合Redis
  3. 计算机编程术语理解,计算机编程常用术语中英对照
  4. DNN结构构建:NAS网络结构搜索和强化学习、迁移学习
  5. PowerDesigner V16.5 安装教程以及汉化(数据库建模)
  6. php产生订单号不重复,php如何生成不重复订单号
  7. 在递归中使用Continuation来避免StackOverflow(查找第K大的数)
  8. 电子书下载(强烈推荐):《大道至简——软件工程实践者的思想》
  9. unity打开摄像头
  10. 论文降重的技巧(一顿操作猛如虎-一看查重35%)
  11. 《电子商务安全》考试重点/学习重点
  12. xp框架下载官方_定制Xposed框架(干货)
  13. 射频识别技术漫谈(4)——数据编码
  14. Linux LTP (一)
  15. srs源码分析2-浅析state_threads
  16. windows下AS常用快捷键
  17. Mac-工具-IntelliJ IDEA升级2022.1问题
  18. 【PPic】基于Electron+Vue+iView的图床应用设计
  19. 微积分学和算法分析中的O, o
  20. 微信公众号如何获得原创保护?

热门文章

  1. C# CheckedListBox控件的用法 .
  2. ORA-01779: 无法修改与非键值保存表对应的列
  3. java流的试题_Java练习题 - Stream流
  4. FA-关于固定资产的类别重分类
  5. 2.2 数据库应用系统开发方法
  6. 半年时间破获电信诈骗大案:我是如何利用数据分析建模,从零基础做到的
  7. 【Python 测验 01编程】数值运算
  8. 【JAVA】Java中switch的用法。
  9. 培训-从学员的角度思考问题
  10. 深度好文:一篇Paper带您读懂HTAP | StoneDB学术分享会第①期