python之马尔科夫链及转移矩阵---详细介绍及代码说明

article/2025/10/13 22:30:18

一、提出问题

马尔科夫链和转移矩阵是什么?马尔科夫链是如何生成的?以及如何使用?下面我来详细介绍!

二、马尔科夫链和转移矩阵的介绍

1、马尔科夫链(Markov chain)概述
机器学习算法中,马尔可夫链在时间序列模型广泛的应用。主要思想是不管初始状态是什么,只要状态转移矩阵不发生变化, 最终状态始终会收敛到一个固定值, 这种无记忆性叫马尔科夫属性。公式为:在这里插入图片描述
2、转移概率矩阵(Transition Probability Matrix)
转移概率矩阵:矩阵各元素都是用概率表示。其值非负,并且各行元素之和等于1。在一定条件下是互相转移的,故称为转移概率矩阵。
二步转移概率矩阵正好是一步转移概率矩阵的平方。k步转移概率矩阵是一步转移概率矩阵的k次方。k步转移概率矩阵中,各行元素之和也都为1。
例如:矩阵P某一位置P(i,j)的值为P(j|i),即从状态i转化到状态j的概率,如状态转移矩阵为:在这里插入图片描述
3、马尔科夫链形成过程
给定初始状态如:p0=[0.5, 0.2, 0.3], k步转化过程为:p0=p0*pk。计算机程序需要利用迭代变量,借助循环实现。经过多步转化p0收敛于固定值(稳态)。本实例为[ 0.6248219 0.31266282 0.06251528]。

三、举例说明,加深对马尔科夫链和转移矩阵的认知

1、题目要求
根据上述基本原理,用python程序验证马尔科夫链形成过程:两个初始状态 p01=[0.5, 0.2, 0.3],p02=[0.1,0.4,0.5]; 状态转移矩阵都为p=[[0.9, 0.075, 0.025], [0.15, 0.8, 0.05],[0.25, 0.25, 0.5]]; 经过k(30)步完成马尔科夫链转化过程。
要求完成转化过程计算并将其过程与结果用图形表示。如图1,两个初始状态的不同的三个初始值,经过相同的状态转移矩阵完成马尔科夫链转化后,不仅数值本身收敛,而且两组收敛值趋于相同。在这里插入图片描述
2、代码实现

import numpy as np
import pylab as pl
p01= np.array([0.5, 0.2, 0.3]) #p0数据 1,矩阵中每一行概率之和总等于1
p02=np.array([0.1,0.4,0.5]) #p0数据 2, 两个初始状态,用于分别计算和画图
p= np.array([[0.9, 0.075, 0.025], [0.15, 0.8, 0.05],[0.25, 0.25, 0.5]])
n=30
c= np.array(['r','g','b'])        #定义画图颜色数组
def calanddraw(p0,p ):#2 计算并画图函数for i in range(n):#3 p0= np.mat(p0) * np.mat(p)        #迭代变量 确定p0与p 的关系for j in range(len(np.array(p0)[0])):pl.scatter(i,p0[0,j], c = c[j], s=.5)#确定画点属性
pl.subplot(121)
calanddraw(p01,p)#调用数据画图
pl.subplot(122)
calanddraw(p02,p)#调用数据画图
pl.show()

3、运行结果
在这里插入图片描述

以上就是本文所有内容,希望能帮到大家!!!


http://chatgpt.dhexx.cn/article/qBD67HwI.shtml

相关文章

【ArcGIS进阶】制作土地利用转移矩阵

哈喽大家好,今天为大家带来如何利用ArcGIS和EXCEL快速制作土地利用转移矩阵 一、什么是土地利用转移矩阵 土地利用转移矩阵是马尔科夫模型在土地利用变化方面的应用。马尔科夫模型不仅可以定量地表明不同土地利用类型之间的转化情况,还可以揭示不同土地…

C 语言概述

一、C语言的发展历史及特点 1.1C语言的发展历史 1.传统C 20世纪80年代早期公认的C语言被称为传统C,也就是C语言被标准化之前的语言变体。 2.标准C(1989) 1982 年,美国国家标准委员会(ANSI)X3J11 委员会…

C--C语言概述

一、C语言的发展过程 1、C语言的产生 C程序设计语言最早是由Dennis M.Ritchie于1969年到1973年在AT&T贝尔实验室⾥开发出来,主要⽤于重新实现Unix操作系统。此时,C语⾔又被称为K&R C。其中,K表⽰Kernighan的⾸字母,⽽R则…

深入浅出C语言——C语言简介

文章目录 前言:一、C语言二、C语言程序案例三、数据类型四、变量和常量五、字符串六、转义字符七、注释八、选择语句九 、循环语句十、函数十一、 数组十二、操作符十三、常见关键字十四、定义常量和宏十五、指针十六、结构体 前言: 编程语言可以简单的…

C语言的简介

目录 C语言 简介发展历史语言特点 C语言 C语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发。C语言能以简易的方式编译、处理低级存储器。C语言是仅产生少量的机器语言以及不需要任何运行环境支持便能运行的高效率程序设计语言。尽管C语言提供了…

C语言入门介绍

哈喽大家好,我是一个刚刚入门的萌新,刚刚接触C语言,从今天开始,我会不定期更新博客,一方面呢是为了和我一样的初学者提供一个交流(吐槽~)和学习的平台,另一方面呢是为了给自己学习和…

一、C语言简介

学习目标:完成对C语言大致的了解 1、概述 C语言是一种结构化的面向过程的程序设计语言,同时具有高级语言与汇编语言的特点。 2、程序设计语言 程序设计语言即用于书写计算机程序的语言。计算机程序设计语言的发展经历了机器语言、汇编语言、高级语言三个…

(一)C语言概述

本篇介绍C语言起源、编译、存储层次。 诞生特点编译存储层次 诞生 简单介绍 C语言诞生于美国的贝尔实验室,由D.M.Ritchie以B语言为基础发展而来,在它的主体设计完成后,Thompson和Ritchie用它完全重写了UNIX,且随着UNIX的发展&…

C语言的概述

1、计算机与程序设计的关系 计算机的本质是程序的机器,程序和指令是计算机系统中最基本的概念。 程序语言设计的产生是为了克服繁琐难记的二进制语言代码。 2.C语言程序的特点 优点:①语言简洁、紧凑;使用方便,灵活性高。 ②运算…

【C语言】C语言的简介

计算机只能直接识别和处理二进制码&#xff0c;C语言是一种能够让人类跟计算机交流的语言。 代码演示&#xff1a; #include <stdio.h>/*预处理命令*/int main()/*主函数*/ {/*函数体开始*/printf("This is a C program.\n");//调用标准库函数printf 完成显示…

C 语言简介

一.发展 C语言是一种强大的专业化编程语言&#xff0c; C语言的原型是A语言&#xff08;ALGOL 60语言&#xff09;。 1963年&#xff0c;剑桥大学将ALGOL 60语言发展成为CPL(Combined Programming Language)语言。 1967年&#xff0c;剑桥大学的Matin Richards 对CPL语言进行…

C++语言简介

C语言的发展简史 C是由贝尔实验室1979年在C语言的基础上开发成功的。C兼容C语言&#xff0c;用C语言写的程序基本上可以不加修改地用于CC对C的“增强”表现在两个方面&#xff1a; &#xff08;1&#xff09;在原来面向过程的机制基础上&#xff0c;增强了C语言对类型的处理。 …

C语言(一):C语言概述介绍

目录 1.1 什么是C语言 1.2 计算机介绍 1.2.1 计算机结构组成 1.2.2 计算机系统组成 1.2.3 程序和指令 1.3 语言发展历程 1.3.1 机器语言 1.3.2 汇编语言和编译器 1.3.3 高级语言 1.3.4 语言的层次 1.3.5 语言进化史 1.4 为什么要学习C语言 1.4.1 C语言特点 1) 优…

C语言知识简介

一、什么是C语言 C语言是一门通用计算机编程语言&#xff0c;广泛应用于底层开发。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。 二、第一个C语言程序 #include<stdio.h> …

如何建设数据指标体系?

前言 指标&#xff0c;只要做业务或者做数据&#xff0c;没有不知道的。但是&#xff0c;近年来&#xff0c;随着数据中台推出&#xff0c;数据标签、用户画像等时髦热词涌现&#xff0c;突然间&#xff0c;人们不太讲指标了&#xff0c;仿佛一切又都变成只要有标签就万事搞定…

互联网业务数据指标体系

互联网业务数据分析&#x1f370; Chap1 数据指标体系与建模方法&#x1f388; 一、常用的数据指标 数据可以分为三类&#xff1a;用户数据、行为数据、业务数据(描述业务本身的发展) 1.用户数据 1.1 DAU MAU DAU&#xff08;Daily Active User&#xff09;&#xff1a;单日…

数据指标体系

数据指标体系 指标与指标体系定义&#xff08;What&#xff09;搭建指标体系的背景与意义&#xff08;Why&#xff09;如何搭建指标体系&#xff08;How&#xff09;零售电商行业指标体系互联网行业指标体系 指标与指标体系定义&#xff08;What&#xff09; 指标是对业务的描…

数据分析——如何构建数据指标体系

文章转自 数据指标体系搭建实践 1. 什么是数据指标 指标&#xff0c;是反映某种事物或现象&#xff0c;描述在一定时间和条件下的规模、程度、比例、结构等概念&#xff0c;通常由指标名称和指标数值组成。 2. 为什么要搭建指标体系 例如&#xff0c;在实际场景中&#xff…

【业务数据分析】——常见业务指标

&#x1f935;‍♂️ 个人主页&#xff1a;Lingxw_w的个人主页 ✍&#x1f3fb;作者简介&#xff1a;计算机科学与技术研究生在读 &#x1f40b; 希望大家多多支持&#xff0c;我们一起进步&#xff01;&#x1f604; 如果文章对你有帮助的话&#xff0c; 欢迎评论 &#x1f4a…

【数据分析】数据指标

目录 什么是好的数据指标&#xff1f; 找出正确的数据指标的五点方法 1、定性指标与量化指标 2、虚荣指标与可付诸行动的指标 3、探索性指标与报告性指标 4、先见性指标与后见性指标 5、相关性指标与因果性指标 市场细分、同期群分析、AB测试和多变量分析 市场细分 同期群分析 …