GameMale
登陆 / 注册 搜索

USERCENTER

SEARCHSITE

搜索

查看: 2314|回复: 23
收起左侧

[技术交流] 【Python】【原创】马尔可夫链与马尔可夫性质

[复制链接] |关注本帖

邪恶的面具海盗弯钩神秘的红茶冒险用绷带魔法石碑箭术卷轴质量效应三部曲

     楼主| 白冥 发表于 2025-1-30 03:02:06 | 显示全部楼层 |阅读模式 <
    本帖最后由 白冥 于 2025-2-10 05:55 编辑

    目录      
    • 概述
    • 主要功能
    • 类结构与方法
    • 源代码
    • 主要方法
    • 示例代码

    概述      

            马尔科夫链(Markov Chain)是一种数学模型,描述了一个系统在离散时间内从一个状态转移到另一个状态的过程。在马尔科夫链中,每个状态的转移概率仅与当前状态有关,而与过去的历史无关。
            本帖所提供的代码均由本人编写。

    主要功能      
            1)路径生成(随机游走):基于当前状态和转移概率进行多次随机游走,生成可能的状态转移路径。可以用于模拟随机过程,如网页浏览的跳转行为、社交网络的传播过程等。
            2)状态预测:根据初始状态和时间步数,预测马尔科夫链在未来某个时间点可能处于的状态分布。可以用于金融市场预测、天气预测等问题,通过预测未来状态的概率分布来制定决策。


    类结构和方法      修改次数1
             Markov_chain
                ├ __init__ 方法
                ├ _add_states 方法
                ├ _build_P 方法
                ├ random_walk 方法
                └ predict 方法
            Matrix_Operations
                ├ _mul 方法
                └ _pow 方法

    源代码      修改次数5
        Markov_chain 类:Markov_chain 类

        Matrix_Operations类:Matrix_Operations 类

    主要方法      修改次数2
    1)__init__(self, edges: List[Tuple[str, str, float]])
            此方法用于初始化一个马尔科夫链对象。它接收一个包含转移概率的边列表  edges ,并根据该列表构建状态集合和转移矩阵。
            ○ edges :一个列表,包含若干元组  (state_0, state_1, cpd) ,其中  state_0  和  state_1  是状态, cpd  是从  state_0  转移到  state_1  的条件概率。


    2) _build_P(self, edges, states)
            此方法用于根据边列表和状态集合构建转移矩阵  P 。在此过程中,方法还会检查每个状态的出度和条件概率的有效性。

            ○ P : 转移矩阵描述了在一个N项有限状态空间 S 上的马尔可夫链 {Xₜ},它的每一项都是一个表示概率的非负实数,其中每一行求和为1。即如果在一个时间步长t→t+1内,Xₜ=sᵢ,sᵢ,sⱼ∈S,从sᵢ转移到sⱼ的条件概率pᵢⱼ = p(Xₜ₊₁=sⱼ | Xₜ=sᵢ),则P₍ₜ₎₍ₜ₊₁₎(以下简写为P)的第i行第j列由p(Xₜ₊₁=sⱼ | Xₜ=sᵢ)给出。
            ○ 无记忆性(马尔可夫性质):
                    如果学过我上一贴关于贝叶斯网络的坛友都知道,若一个随机变量X的父级变量Pa(X)存在,那么它与它的非后代变量Non-desc(X)条件独立,即X⊥Non-desc(X) | Pa(X)。马尔可夫链{Xₜ}可以看作一种特殊的贝叶斯网络,任意一个随机变量Xₜ₊₁∈{Xₜ},它的父级Pa(Xₜ₊₁)=Xₜ,它的非后代Non-desc(Xₜ₊₁)=Xₜ₋₁, Xₜ₋₂…, X₀。
    (马尔可夫链可以看作一种单链贝叶斯网络)
                    即在一个时间步长t→t+1内,在链中给定随机变量Xₜ,则Xₜ₊₁与Xₜ之前的所有变量F(Xₜ)都是条件独立的,记作Xₜ₊₁⊥F(Xₜ) | Xₜ,其中F(Xₜ)=Non-desc(Xₜ₊₁):
    P(Xₜ₊₁ | Xₜ, F(Xₜ)) = P(Xₜ₊₁ | Xₜ)。
                    由于马尔可夫链过于出名,这种无记忆性也被称为马尔可夫性质。


    3) random_walk(self, state: str, time: int)
            ○ 随机游走:随机游走是由一连串轨迹(trajectory)组成,它的每一个微小轨迹都是随机的。因此,绝大多数可见的随机游走,都可以看成马尔可夫链模型或具有马尔可夫性质的类似模型,比如动物的觅食路径、天气的连续变化、股票的涨跌趋势、赌徒的钱包状况,乃至无处不在的布朗运动也是马尔可夫性质的(扩散作用的布朗运动除外)。


    4) predict(self, state: str, time: int)
            ○ 状态分布:
                    由于随机游走是马尔可夫性质的,因此事实上我们无从同时知道当前状态与将来状态,即当前状态与将来状态是条件独立的。
                    然而我们确实需要做到对将来状态的预测,就如古人所说的“未雨绸缪”一样,我们需要知道未来大概率要发生什么。
                    任何状态开始,随机游走一步,都相当于一个状态的One-hot向量右乘一个转移矩阵,结果是它的状态分布,即vₛₜₐₜₑP=b₁。因此,对它的每一次随机游走,都等价地右乘一个P,则对于任意k(k∈N*),都有bₖ=vₛₜₐₜₑPᵏ,代表k步随机游走后它的状态分布,||bₖ||=0,bₖ=(x₁,x₂,x₃,…xɴ),0≤xᵢ≤1(i=1,2,3,…,N)。


    示例代码      



    1. edges = [
    2.         ("A", "A", 0.9),
    3.         ("A", "B", 0.1),
    4.         ("B", "A", 0.5),
    5.         ("B", "C", 0.5),
    6.         ("C", "D", 0.8),
    7.         ("C", "G", 0.2),
    8.         ("D", "E", 0.4),
    9.         ("D", "F", 0.6),
    10.         ("E", "B", 0.2),
    11.         ("E", "C", 0.4),
    12.         ("E", "D", 0.4),
    13.         ("F", "G", 1.0)
    14. ]

    15. # 创建马尔科夫链对象
    16. markov_chain = Markov_chain(edges)

    17. # 执行随机游走
    18. path = markov_chain.random_walk("A", 10)
    19. print("Random walk path:", path)

    20. # 进行状态预测
    21. prediction = markov_chain.predict("A", 5)
    22. print("Prediction after 5 steps:", prediction)
    复制代码

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?立即注册

    x

    评分

    参与人数 1堕落 +1 收起 理由
    三分春色描来易 + 1 很给力!

    查看全部评分

      收起(4)

    本帖被以下淘专辑推荐:

    • · 技术|主题: 10, 订阅: 0
    回复

    使用道具 举报

    岛田半藏莫甘娜Scott Ryder闪耀的魔仙棒Dante约翰·康斯坦丁荣光的残像亚索『狄文卡德的残羽』夏日柯基

      rayyyyy 发表于 2025-6-27 10:29:45 | 显示全部楼层 <
      回复

      使用道具 举报

      鎏彩万幢达拉然骑兽之子坏掉的月亮提灯夏之歌男色时代美恐:新的开始苏醒的格罗姆最终幻想XVI

        zhnlwwdzz 发表于 2025-3-2 13:54:31 | 显示全部楼层 <
        回复

        使用道具 举报

        命运的轮廓检定场『狄文卡德的残羽』『厢庭望远』万众瞩目『搓粉团珠』神奇宝贝图鉴神奇宝贝大师球雪王的心脏肉垫手套

          zhuovboyan 发表于 2025-2-9 21:27:58 | 显示全部楼层 <
          回复

          使用道具 举报

          千杯不醉发条八音盒弗雷迪玩偶金钱马车『召唤好运的角笛』裸体克里斯一国之主【新春限定】果体 隆新神的赐福凯登‧阿兰科

            大河内太 发表于 2025-2-6 04:26:18 | 显示全部楼层 <
            回复

            使用道具 举报

            【圣诞限定】心心念念小雪人吃饱金币的Doge被释放的灵魂【新春限定】果体 隆業火死鬥男巫之歌虚空之海的鲸卡利亚权杖诺曼底号

              折木 发表于 2025-2-1 17:52:47 | 显示全部楼层 <
              现在各种专业都有计算机相关的必修或者选修课程惹
              回复

              使用道具 举报

              虚空之海的鲸『钜鲸』守卫: 坚守眼位御医神兔哀恸魔蝶镜中小鸟孔明灯菀叶狸猫猪庇特小狮欢舞

                cdcai 发表于 2025-2-1 14:47:20 | 显示全部楼层 <
                这次真的是连标题都没看懂了
                回复

                使用道具 举报

                『搓粉团珠』【新春限定】果体 隆『落樱缤纷』里昂‧S‧甘乃迪闪耀的魔仙棒岛田源氏杰西·麦克雷传奇超人

                  boshen 发表于 2025-1-31 23:42:46 | 显示全部楼层 <
                  回复

                  使用道具 举报

                  咆哮虎的冠军之路You Can Pet Blaidd業火死鬥炙热的格拉迪欧拉斯裸体克里斯圣甲虫秘典永远的克叔【新春限定】果体 隆新神的赐福凯登‧阿兰科

                    星之子 发表于 2025-1-31 01:56:27 | 显示全部楼层 <
                    回复

                    使用道具 举报

                    海盗弯钩瑞雪兆丰年,生灵万物新牧羊人驯化黑龙幼崽腐化龙蛋荒野大镖客:救赎 II五花八门版块GM論壇榮譽勛章

                      EngreenGreen 发表于 2025-1-30 16:49:24 | 显示全部楼层 <
                      哇塞,看不懂,但十分震撼,佩服,大佬!
                      回复

                      使用道具 举报

                      十字军护盾『狄文卡德的残羽』被踩烂的小草神奇四叶草堕落之舞木精灵短弓莱托·厄崔迪森林羊男

                        慕容家李观二 发表于 2025-1-30 14:07:30 | 显示全部楼层 <
                        回复

                        使用道具 举报

                        竹取物语索林·临终一役自由叶卡捷琳娜大帝You Can Pet Blaidd炽焰咆哮虎官复原职实现梦想启程终归一人

                          黑夜下的灯光 发表于 2025-1-30 13:36:24 | 显示全部楼层 <
                          回复

                          使用道具 举报

                          苏格兰圆脸胖鸡[Pro Max]汤姆·赫兰德『不败之花』Drover『林中过夜』

                            不知述 发表于 2025-1-30 13:16:28 | 显示全部楼层 <
                            大学选修过python课但是完全不懂,痛苦的复习记忆涌了上来,还好最后被捞低分飘过
                              收起(5)
                            回复

                            使用道具 举报

                            丛林露出来的鸟最终幻想XIV驯化红龙幼崽香喷喷的烤鸡社畜专用闹钟人鱼之泪阿帕茶GM論壇進階勛章

                              呆萌De小受受 发表于 2025-1-30 12:12:50 | 显示全部楼层 <
                              回复

                              使用道具 举报

                              GM論壇進階勛章永亘环

                                布卜 发表于 2025-1-30 12:06:41 | 显示全部楼层 <
                                回复

                                使用道具 举报

                                最终幻想XIV瑞雪兆丰年,生灵万物新腐化龙蛋森林羊男GM論壇榮譽勛章守望者指挥官徽章啊!菊花开了!

                                  Miyo·Grevin 发表于 2025-1-30 11:45:43 | 显示全部楼层 <
                                  我的妈,看到代码之后感觉基因被唤醒了(头大)
                                  楼主好厉害,感觉IT行业内卷的风浪已被证实.jpg
                                  回复

                                  使用道具 举报

                                    万俟 发表于 2025-1-30 10:38:48 | 显示全部楼层 <
                                    还记得乌克兰战争刚开始的时候,隔壁一个老师为了抵制俄罗斯拒绝讲马可夫链,我怀疑他只是懒
                                    回复

                                    使用道具 举报

                                    思绪骤聚40x43 隐形➀『不败之花』超人都铎王朝丹·雷诺斯王者之盾永远的克叔【夏日限定】夏日的泰凯斯街头霸王

                                      huakaiwusheng 发表于 2025-1-30 09:47:23 | 显示全部楼层 <
                                      回复

                                      使用道具 举报

                                      弗雷迪玩偶发条八音盒桂花米糕鎏彩万幢女巫之路虚空之海的鲸【新春限定】果体 隆『召唤好运的角笛』永远的克叔業火死鬥

                                        娱乐法师火布偶 发表于 2025-1-30 09:07:41 | 显示全部楼层 <
                                        回复

                                        使用道具 举报

                                        亭亭如盖灯载情绵纯真护剑 · 这把剑守护每个孩子无论他有没有被神选中『不败之花』十年一梦百鬼夜行『落樱缤纷』『伊黎丝的赞美词』呆猫鎏彩万幢

                                          三分春色描来易 发表于 2025-1-30 09:04:09 | 显示全部楼层 <
                                          回复

                                          使用道具 举报

                                          百相千面-戏艾吉奥岛田半藏诺克提斯·路西斯·伽拉姆萨菲罗斯岛田源氏BIG BOSS康纳/ConnorDoc普隆普特·阿金塔姆

                                            2302594 发表于 2025-1-30 07:04:23 | 显示全部楼层 <
                                            回复

                                            使用道具 举报

                                            您需要登录后才可以回帖 登录 | 立即注册

                                            本版积分规则

                                            关闭

                                            站长公告上一条 /1 下一条

                                            文字版|手机版|小黑屋|GameMale

                                            GMT+8, 2025-12-7 05:02 , Processed in 0.164896 second(s), 152 queries , Redis On.

                                            Copyright © 2013-2025 GameMale

                                            All Rights Reserved.

                                            快速回复 返回列表