python之馬爾科夫鏈(Markov Chain)

馬爾可夫鏈(Markov Chain)是一種隨機過程,具有“馬爾可夫性質”,即在給定當前狀態的條件下,未來狀態的概率分布僅依賴于當前狀態,而與過去狀態無關。馬爾可夫鏈在很多領域都有廣泛的應用,包括蒙特卡洛方法、統計物理學、自然語言處理等。

馬爾可夫鏈的一般定義如下:

給定狀態空間 SS 和狀態轉移概率矩陣 PP,其中 PijPij? 表示從狀態 ii 轉移到狀態 jj 的概率,如果對于任意狀態 i,ji,j 和任意時間步 nn,滿足以下條件,則稱該過程是馬爾可夫鏈:
P(Xn+1=j∣X0,X1,…,Xn)=P(Xn+1=j∣Xn)
P(Xn+1?=j∣X0?,X1?,…,Xn?)=P(Xn+1?=j∣Xn?)

其中,XnXn? 表示在時間步 nn 的狀態。

馬爾可夫鏈的一個重要特性是它在長時間內具有收斂性,即在足夠長的時間后,馬爾可夫鏈的狀態分布會收斂到一個穩態分布。這個性質是許多馬爾可夫鏈算法應用的基礎。
馬爾可夫鏈的穩態分布表示在長時間運行后,隨機過程中各個狀態的概率分布不再隨時間變化,保持恒定的概率分布。
這個是實例:

import numpy as np# 定義更多的狀態
states = ["Sunny", "Cloudy", "Rainy", "Snowy"]# 定義狀態轉移概率矩陣
transition_matrix = np.array([[0.7, 0.2, 0.1, 0.0],[0.3, 0.4, 0.2, 0.1],[0.1, 0.3, 0.4, 0.2],[0.0, 0.1, 0.3, 0.6]])# 定義初始狀態分布
initial_distribution = np.array([0.4, 0.3, 0.2, 0.1])# 生成馬爾可夫鏈軌跡
def generate_markov_chain(num_steps):current_state = np.random.choice(states, p=initial_distribution)chain = [current_state]for _ in range(num_steps - 1):next_state = np.random.choice(states, p=transition_matrix[states.index(current_state)])chain.append(next_state)current_state = next_statereturn chain# 生成馬爾可夫鏈軌跡并打印結果
num_steps = 10
markov_chain = generate_markov_chain(num_steps)
print("Generated Markov Chain:", markov_chain)

穩態分布(Stationary Distribution)是指在馬爾可夫鏈達到平穩狀態后,隨機過程中各個狀態的概率分布不再隨時間變化,保持恒定的概率分布。換句話說,穩態分布是一個時間不變的分布,表示在長時間運行后,隨機過程在不同狀態的停留概率。

形式化地說,對于一個離散狀態空間的馬爾可夫鏈,如果存在一個向量 ππ,滿足以下兩個條件:

非負性條件: 所有的 πiπi?(ii 表示狀態)都是非負的。
概率歸一條件: 向量 ππ 的元素之和等于1,即 ∑iπi=1∑i?πi?=1。

并且對于任意時間步 nn,都有 P(Xn+1=j)=∑iP(Xn=i)?P(Xn+1=j∣Xn=i)P(Xn+1?=j)=∑i?P(Xn?=i)?P(Xn+1?=j∣Xn?=i),其中 P(Xn=i)P(Xn?=i) 表示在時間步 nn 處于狀態 ii 的概率,那么向量 ππ 就是該馬爾可夫鏈的穩態分布。

對于連續狀態空間的馬爾可夫鏈,穩態分布通常以概率密度函數的形式表示。

穩態分布的存在性和唯一性取決于具體的馬爾可夫鏈。對于滿足一定條件的可逆馬爾可夫鏈,穩態分布是唯一存在的。在實際應用中,穩態分布對于理解系統的長期行為、進行概率推斷和模擬具有重要意義。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/209843.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/209843.shtml
英文地址,請注明出處:http://en.pswp.cn/news/209843.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【C語言】網絡字節序和主機字節序

網絡字節序和主機字節序是計算機中字節的兩種排序方式,它們主要用于解決不同計算機之間數據通信的問題。 一、網絡字節序 也被稱為大端字節序,是一種標準的字節序。在網絡通信中,如果兩臺主機的字節序不同,可能會導致數據解釋的二…

Swagger提示請確保swagger資源接口正確

問題描述 在項目開發過程中集成swagger-bootstrap-ui,打開swagger-ui.html頁面正常,但是打開doc.html頁面提示"請確保swagger資源接口正確"。 原因分析: 原因是JSON格式非法,一般出現此情況時,是因為后端…

shell條件測試

1.1.用途 為了能夠正確處理Shell程序運行過程中遇到的各種情況,Linux Shell提供了一組測試運算符. 通過這些運算符,shell程序能夠判斷某種或者幾個條件是否成立。 條件測試在各種流程控制語句,例如判斷語句和循環語句中發揮了…

數據分析實例:基于電力大數據的中小型企業運營發展分析

前不久,帆軟發起了【2023BI數據分析大賽】的活動,老李我也是這個大賽的評委。 ? 今天跟大家分享的是基于電力大數據的中小型企業運營發展分析。 當我們去解讀一份數據分析報告時,首先要了解這份報告的主要目的是什么,作者通過分…

第19關 5.2k star 開源分布式存儲服務Rancher-Longhorn在k8s上部署

------> 課程視頻同步分享在今日頭條和B站 大家好,我是博哥愛運維。 什么是Longhorn Longhorn是一個輕量級、可靠且易于使用的Kubernetes分布式塊存儲系統。 Longhorn 是免費的開源軟件。它最初由 Rancher Labs 開發,現在作為云原生計算基金會的孵…

X86匯編語言:從實模式到保護模式(代碼+注釋)--c7

X86匯編語言:從實模式到保護模式(代碼注釋)–c6 ;代碼清單7-1;文件名:c07_mbr.asm;文件說明:硬盤主引導扇區代碼;創建日期:2011-4-13 18:02jmp near startmessage db 123...100start:mov ax,0x7c0 …

class061 最小生成樹【算法】

class061 最小生成樹【算法】 2023-12-8 11:48:12 算法講解061【必備】最小生成樹 code1 P3366 【模板】最小生成樹 // Kruskal算法模版(洛谷) // 靜態空間實現 // 測試鏈接 : https://www.luogu.com.cn/problem/P3366 // 請同學們務必參考如下代碼中…

【Linux】:線程(二)互斥

互斥與同步 一.線程的局部存儲二.線程的分離三.互斥1.一些概念2.上鎖3.鎖的原理4.死鎖 一.線程的局部存儲 例子 可以看到全局變量是所有線程共享的,如果我們想要每個線程都單獨訪問g_val怎么辦呢?其實我們可以在它前面加上__thread修飾。 這就相當于把g…

網絡入門---網絡編程初步認識和實踐(使用udp協議)

目錄標題 前言準備工作udpserver.hpp成員變量構造函數初始化函數(socket,bind)start函數(recvfrom) udpServer.ccudpClient.hpp構造函數初始化函數run函數(sendto) udpClient.cc測試 前言 在上一篇文章中我們初步的認識了端口號的作用,ip地址和MAC地址在網絡通信時…

Python實現GUI圖片瀏覽程序

Python實現GUI圖片瀏覽程序 下面程序需要pillow庫。pillow是 Python 的第三方圖像處理庫,需要安裝才能實用。pillow是PIL( Python Imaging Library)基礎上發展起來的,需要注意的是pillow庫安裝用pip install pillow,導…

【改進YOLOv8】融合可擴張殘差(DWR)注意力模塊的小麥病害檢測系統

1.研究背景與意義 項目參考AAAI Association for the Advancement of Artificial Intelligence 研究背景與意義: 隨著計算機視覺技術的快速發展,深度學習在圖像識別和目標檢測領域取得了巨大的突破。其中,YOLO(You Only Look O…

基于SSM框架的網上商城系統的設計與實現

完整下載:基于SSM框架的網上商城系統的設計與實現 基于SSM框架的網上商城系統的設計與實現 "Design and Implementation of an Online Shopping Mall System Based on SSM Framework" 目錄 目錄 2 摘要 3 關鍵詞 3 第一章 系統設計 4 1.1 系統需求分析 4 …

TruLens RAG Triad 學習

TruLens RAG Triad 學習 0. 背景1. RAG 三元組2. TruLens 快速入門2-1. 安裝依賴2-2. 初始化 OpenAI 認證信息2-3. 獲取數據2-4. 創建向量存儲2-5. 從頭構建自定義 RAG2-6. 設置反饋函數2-7. 構建應用程序2-8. 運行應用程序0. 背景 近年來,RAG 架構已成為為大型語言模型 (LLM…

Nexus搭建npm私庫(角色管理、上傳腳本)

安裝Nexus 官網下載 https://www.sonatype.com/products/sonatype-nexus-oss-download 進入官網下載,最新下載方式需要輸入個人信息才能下載了 選擇對應的系統進行下載 Windows 推薦也下載 UNIX 版本(Windows 版本配置比較難改) 如果沒有下…

chmod 在Linux原生應用開發過程中的簡單應用

chmod命令實質上是用來修改文件或目錄的訪問權限的命令。它通過修改文件或目錄的訪問控制列表(Access Control List,ACL)來實現權限的更改。 在Linux系統中,每個文件或目錄都有一個表示其權限的數字值,即用三個八進制…

Qt 中的窗口類

目錄 QWidget 設置父對象 窗口位置 測試代碼 窗口尺寸 窗口標題和圖標 信號 槽函數 QDialog 常用API QDialog的子類 QMessageBox QFileDialog QFontDialog QFontDialog類的靜態API QColorDialog 顏色類 QColor 靜態API函數 測試代碼 QInputDialog 靜態函數…

谷歌AI新篇章:Gemini引領股價飆升,挑戰OpenAI霸主地位

導語: “ 在人工智能領域的一場激烈角逐中,谷歌母公司Alphabet以其全新AI大模型Gemini,于周四收盤時引爆股市,股價激增5.3%,市值一日增長超800億美元。這一躍升不僅展示了谷歌在技術創新上的決心,也是對微軟…

GPT4停止訂閱付費了怎么辦? 怎么升級ChatGPT plus?提供解決方案

11月中旬日OpenAI 暫時關閉所有的升級入口之后,很多小伙伴就真的在排隊等待哦。其實有方法可以繞開排隊,直接付費訂閱升級GPT的。趕緊用起來立馬“插隊”成功!親測~~~ 一、登錄ChatGPT賬號 1、沒有賬號可以直接注冊一個,流程超級…

前端使用視頻作為背景圖的方法

實現思路 通過 video source 引入視頻&#xff0c;并對視頻播放屬性進行設置&#xff0c;再通過 css 使視頻覆蓋背景即可。 代碼 <!DOCTYPE html> <html> <head> <meta charset"utf-8"> <title>有開發問題可聯系作者</title>…

學習git后,真正在項目中如何使用?

文章目錄 前言下載和安裝Git克隆遠程倉庫PyCharm鏈接本地Git創建分支修改項目工程并提交到本地倉庫推送到遠程倉庫小結 前言 網上學習git的教程&#xff0c;甚至還有很多可視化很好的git教程&#xff0c;入門git也不是什么難事。但我發現&#xff0c;當我真的要從網上克隆一個…