8.(Python数模)马尔科夫链预测

news2024/11/29 4:52:21

Python实现马尔科夫链预测

马尔科夫链原理

马尔科夫链是一种进行预测的方法,常用于系统未来时刻情况只和现在有关,而与过去无关
用下面这个例子来讲述马尔科夫链。
在这里插入图片描述
如何预测下一时刻计算机发生故障的概率?
当前状态只存在0(故障状态)和1(正常状态)两种,每种状态下各存在两个未来状态(00,01,11,10),那么统计出这整个序列中00,01,11,10出现的次数。即求得转移矩阵
在这里插入图片描述
进而求得转移概率矩阵
在这里插入图片描述
如果当前是0,那么下一个是0的概率为30.77%,下一步为1的概率为69.23%。
对当前数据,最后一个为1,那么预测下一步,有74.3%的概率不发生故障。

上面的方法不仅限于两个类别0和1,多类别也是可以预测的
比如
在这里插入图片描述
str = “4321431123212344331113321222442323112431”
用同样的方法计算转移概率矩阵
在这里插入图片描述

问题描述

在这里插入图片描述

源代码

计算转移矩阵部分

def str_count(str, sub):
    count = 0
    for i in range(0, len(str) - 1):
        if str[i:i+2] == sub:
            count = count + 1
    return count

def data_to_matrix():
    str = "1110010011111110011110111111001111111110001101101111011011010111101110111101111110011011111100111"
    count00 = str_count(str, "00")
    count01 = str_count(str, "01")
    count10 = str_count(str, "10")
    count11 = str_count(str, "11")
    print("count00:", count00)
    print("count01:", count01)
    print("count10:", count10)
    print("count11:", count11)
if __name__ == '__main__':
    data_to_matrix()

问题解决部分

import numpy as np
p1 = np.array([0.2, 0.4, 0.4])
p = np.array([
    [0.8, 0.1, 0.1],
    [0.5, 0.1, 0.4],
    [0.5, 0.3,0.2]
])
p3 = np.linalg.matrix_power(p, 3)
p4 = np.dot(p1, p3)
print(p4)

1、np.linalg.matrix_power(p, 3) 是一个用来计算矩阵 p 的 3 次幂的函数。它使用 NumPy 库中的 linalg 子模块来执行矩阵乘法运算。这个函数的返回值是将矩阵 p 自乘 3 次后得到的新矩阵。

2、dot指的是两个向量之间的点积运算

结果

在这里插入图片描述在这里插入图片描述

参考博文

数学建模入门-python实现简单的马尔可夫链
马尔科夫链预测,Python实现

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/967729.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

1分钟实现 CLIP + Annoy + Gradio 文搜图+图搜图 系统

多模态图文搜索系统 CLIP 进行 Text 和 Image 的语义EmbeddingAnnoy 向量数据库实现树状结构索引来加速最近邻搜索Gradio 轻量级的机器学习 Web 前端搭建 文搜图 图搜图 CLIP图像语义提取功能!

生信分析Python实战练习 3 | 视频21

开源生信 Python教程 生信专用简明 Python 文字和视频教程 源码在:https://github.com/Tong-Chen/Bioinfo_course_python 目录 背景介绍 编程开篇为什么学习Python如何安装Python如何运行Python命令和脚本使用什么编辑器写Python脚本Python程序事例Python基本语法 数…

已解决下载安装Python官网安装包下载速度慢问题

本文摘要:本文已解决下载安装Python官网安装包下载速度慢的问题。 😎 作者介绍:我是程序员洲洲,一个热爱写作的非著名程序员。CSDN全栈优质领域创作者、华为云博客社区云享专家、阿里云博客社区专家博主、前后端开发、人工智能研究…

47、springboot 的 国际化消息支持--就是根据浏览器选择的语言,项目上的一些提示信息根据语言的选择进行对应的显示

springboot的国际化也是基于spring mvc 的。 springboot 的 国际化消息支持–就是根据浏览器选择的语言,项目上的一些提示信息根据语言的选择进行对应的显示。 总结下国家化自动配置: 功能实现就是: 比如一个登录页面,我们在浏览…

ORB-SLAM3复现的详细过程——配置安装及ROS和脚本运行---Ubuntu20.04

ORB-SLAM3配置安装及ROS和脚本运行---Ubuntu20.04 1. 安装所需要的依赖和包2. 修改代码及文件内容2.1 CMakeLists.txt文件的修改2.2 单目可视化代码修改2.3 环境配置文件的修改2.4 源码的修改 3.ORB-SLAM3的编译3.1 构建 ORB-SLAM3 库3.2 生成ROS节点 4.ORB-SLAM3的运行4.1 非R…

ModaHub魔搭社区专访百度智能云李莅:您认为向量数据库是一个刚需产品吗?

ModaHub魔搭社区:可以看到,大模型火了以后,向量数据库受到了特别高的关注,您是如何看待这种现象呢?您认为向量数据库是一个刚需产品吗? 李莅:是的。大模型是在今年才崭露头角,或者说…

【Python Odyssey】1-1 | Python初见面

文章目录 Python 由来Python 的历史Python 的优点Python的缺点Python 运用领域Python 环境配置Python 解释器安装确认Python的版本编写Python源代码运行程序 Python 由来 Python 是 吉多范罗苏姆(Guido van Rossum)在阿姆斯特丹为了打发无聊的圣诞节&…

三维点云转换为二维图像

文章目录 前言原理代码总结与反思实验结果展示 前言 目的:将三维点云转换为二维图像 作用: a.给点云赋予彩色信息,增强点云所表达物体或对象的辨识度; b.将三维点云中绘制的目标物体通过映射关系绘制到二维图像中,这个…

Lesson5-1:OpenCV视频操作---视频读写

学习目标 掌握读取视频文件,显示视频,保存视频文件的方法 1 从文件中读取视频并播放 在OpenCV中我们要获取一个视频,需要创建一个VideoCapture对象,指定你要读取的视频文件: 创建读取视频的对象 cap cv.VideoCapt…

Nginx安装与部署

文章目录 一,说明二,下载三,Windows下安装1,安装2,启动3,验证 四,Linux下安装1,安装2,启动3,验证 五,Nginx配置 一,说明 Nginx是一款高性能Web和反向代理服务器,提供内存少,高并发,负载均衡和反向代理服务,支持windos和linux系统 二,下载 打开浏览器,输入地址: https://ngin…

【小沐学NLP】Python使用NLTK库的入门教程

文章目录 1、简介2、安装2.1 安装nltk库2.2 安装nltk语料库 3、测试3.1 分句分词3.2 停用词过滤3.3 词干提取3.4 词形/词干还原3.5 同义词与反义词3.6 语义相关性3.7 词性标注3.8 命名实体识别3.9 Text对象3.10 文本分类3.11 其他分类器3.12 数据清洗 结语 1、简介 NLTK - 自然…

递归算法学习——目标和,组合总和,字母大小写全排列

目录 一,目标和 1.题意 2.例子 3.题目接口 4.解题思路及代码 二,组合总和 1.题意 2.例子 3.题目接口 4.解题思路及代码 三,字母大小写全排列 1.题意 2.例子 3.题目接口 4.解题思路及代码 一,目标和 1.题意 给你一个…

jsp 新能源汽车论坛网Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 JSP 新能源汽车论坛网是一套完善的java web信息管理系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为 TOMCAT7.0,Myeclipse8.5开发,数据库为Mysql5.0…

Android逆向学习(二)vscode进行双开与图标修改

Android逆向学习(二)vscode进行双开与图标修改 写在前面 这其实应该还是吾爱的第一个作业,但是写完上一个博客的时候已经比较晚了,如果继续敲机械键盘吵到室友,我怕我看不到明天的太阳,所以我决定分成两篇…

英国一大学宣布:严禁使用AI生成个人陈述

8月29日,伦敦都会大学(London Met Uni)在发给合作伙伴的邮件中表示:“我们知道人工智能技术已经被用来生成个人陈述(personal statements,即文书)。请注意,本大学不接受任何由人工智…

网络实验 VlAN 中 Trunk Access端口的说明及实验

网络实验 VlAN 中 Trunk Access端口的说明及实验 VlAN 虚拟局域网技术Access端口 工作原理Trunk端口 工作原理简单实验(一)划分不同Vlan,实现vlan内部通信拓朴图主机IP 配置划分Vlanping 测试 (二)跨交换机实现VLAN间通…

mate60 里的2035 到底是什么鬼?

华为在 lengbulangqiang 的情况下发布了 mate60 手机,犹如一颗核弹升到了各国的上空,每个人都很想知道这其中发生了什么事情,也是疑点重重,这其中的一些疑点,足以让某些人暴跳如雷。 这 2035 标识到底是什么&#xff1…

李宏毅机器学习笔记:RNN循环神经网络

RNN 一、RNN1、场景引入2、如何将一个单词表示成一个向量3种典型的RNN网络结构 二、LSTMLSTM和普通NN、RNN区别 三、 LSTM的训练 一、RNN 1、场景引入 例如情景补充的情况,根据词汇预测该词汇所属的类别。这个时候的Taipi则属于目的地。但是,在订票系统…

CSS流光按钮-圆形

主要思路 仅保留一条边框 border-radius 50%drop-shadow动画 animation keyframes 代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, …

QT串口助手:识别串口号,发送,接收,十六进制

1 摘要 本文主要讲述如何使用QT从零开始实现一个串口助手的基本功能&#xff0c;功能如标题所示&#xff0c;文末附有源码供大家参考。文中若有纰漏&#xff0c;烦请读者斧正。 2 环境 QT 5.14.1Window 11 3 功能 串口打开/关闭 启动软件时识别串口号打开按键随串口打开状…