馬爾可夫鏈,又稱作離散時間馬爾可夫鏈(discrete-time Markov chain,縮寫DTMC),其本質是狀態空間中,經過從一個狀態到另一個狀態的轉換的隨機過程。在馬爾可夫模型中,下一狀態的概率分佈只能由當前狀態決定,在時間序列中它前面的事件均與之無關。那麼爲什麼要研究馬爾可夫鏈呢?事實上,基於馬爾可夫鏈理論建立的數學模型應用十分廣泛,最廣爲人知的莫過於自然語言識別識別。事實上,本文封面上的圖也是基於這個模型生成的。代碼如下:
#時間:2019/5/3
#作者:cclplus
import numpy as np
import matplotlib.pyplot as plt
if __name__ =="__main__":
N = 50
x = [0]
y = [0]
for i in range(1,N):
x.append(x[i-1]+np.random.rand(1)-0.5)
y.append(y[i-1]+np.random.rand(1)-0.5)
colors = np.random.rand(N)
area = (30 * np.random.rand(N))**2 # 0 to 15 point radii
ax = plt.subplot(111)
ax.scatter(x, y, s=area, c=colors, alpha=0.5)
ax.spines['top'].set_visible(False)
ax.spines['right'].set_visible(False)
ax.spines['bottom'].set_visible(False)
ax.spines['left'].set_visible(False)
plt.axis('off')
plt.savefig('scatter.png', transparent=True)
很多時候,大自然使用如此樸素的算法就能構建出美麗的風景;工程領域上也是如此。除了畫圖以外,馬爾可夫模型還能在許多場合下使用。比如能夠在一定程度上解決你的約會問題,比如預測你的女神在天氣等因素的影響下,同意你的約會邀請的可能性。
深入瞭解馬爾可夫模型以後,你會體會到很多物理現象的出現是那麼自然。例如結合馬爾可夫模型和大數定律的中心極限定理就能解釋電子設備的噪聲呈現高斯分佈。
Cclplus的下一期文章將以線性代數爲主題,仍然是從實用的角度對內容展開介紹,如果你喜歡以這樣的方式獲取知識,請關注本微信公衆號:算法傳奇。