13張動圖助你徹底看懂馬爾科夫鏈、PCA和條件概率!
[ 導讀 ]馬爾科夫鏈、主成分分析以及條件概率等概念,是計算機學生必學的知識點,然而理論的抽象性往往讓學生很難深入地去體會和理解。而本文,將這些抽象的理論概念,用視覺化的方式來解釋,還可調節相應引數來改變結果,使這些抽象概念變得生動而立體!
2
計算機相關概念太難、太抽象?別怕,往下看!
人類對視覺資訊的記憶要遠遠大於文字資訊。使用圖表等形式的視覺化,可以讓抽象、難懂的概念一目瞭然;在此基礎之上,新增可控的引數調節器,將更有助於對概念的深入學習與理解。
馬爾科夫鏈
馬爾科夫鏈是指數學中具有馬爾科夫性質的離散事件隨機過程。在其每一步中,系統根據概率分佈可以從一個狀態變到另一個狀態,也可以保持當前狀態。狀態的改變叫做轉移,與不同的狀態改變相關的概率叫做轉移概率。
這概念是不是看著有點暈?沒關係,我們來看下面這張圖:
2種狀態的馬爾科夫鏈
在狀態空間中有兩種狀態,A和B。共有4種可能的轉換。如果我們在A,接下來可以過渡到B或留在A。如果我們在B,可以過渡到A或者留在B。在這張圖中,從任意狀態到任意狀態的轉移概率是0.5。
當然,真正的建模工作者不會總是就畫一張馬爾科夫鏈圖。 相反,他們會使用“轉移矩陣”來計算轉移概率。狀態空間中的每個狀態都會出現在表格中的一列或者一行中。矩陣中的每個單元格都告訴你從行狀態轉換到列狀態的概率。因此,在矩陣中,單元格做的工作和圖中的箭頭所示是一樣。
如果狀態空間新增了一個狀態,我們將新增一行和一列,向每個現有的列和行新增一個單元格。 這意味著當我們向馬爾可夫鏈新增狀態時,單元格的數量會呈二次方增長。因此,轉換矩陣就起到了很大的作用(除非你想把法爾科夫鏈圖畫的跟叢林一樣)。
馬爾科夫鏈的一個作用是用計算機模擬現實世界中的現象。例如,可以用來檢測一個新建的水壩溢流的頻率(取決於連續下雨的天數)。為建立這個模型,可以從下面的雨天(R)和晴天(S)開始:
表述這種模擬天氣的方法就是:“有一半的天數是下雨天。所以模擬中的每一天都有50%的概率是下雨的。”這個規則在模擬中所產生的序列如下:
你注意到上面的序列和原來的不太一樣了嗎?第二個序列似乎具有跳躍性,而第一個(真實資料)似乎具有“粘性”。在真實的資料中,如果某一天是晴天,那麼第二天也很可能是晴天。
可以通過兩個狀態的馬爾可夫鏈來消除這種“粘性”。當馬爾科夫鏈處於狀態“R”時,它保持在該狀態的概率是0.9,狀態改變的概率是0.1。同樣,“S”狀態保持不變的概率是0.9,過渡到“R”狀態的概率是0.1。
在許多需要對大規模的現象做研究的工作人員手中,馬爾科夫鏈的作用可以變得非常強大。例如,谷歌用於確定搜尋結果順序的演算法,稱為PageRank,就是一種馬爾可夫鏈。
主成分分析(PCA)
主成分分析,是一種統計方法。通過正交變換將一組可能存在相關性的變數轉換為一組線性不相關的變數,轉換後的這組變數叫主成分。PCA是最重要的降維方法之一,在資料壓縮消除冗餘和資料噪音消除等領域都有廣泛的應用。
2D示例
首先,只考慮兩個維度的資料集,比如高度和重量。這個資料集可以繪製成平面上的點。但如果想要整理出變數,PCA會找到一個新的座標系,其中每個點都有一個新的(x,y)值。座標軸實際上沒有任何物理意義。它們是高度和重量的組合,被稱為“主分量”。
拖動原始資料集中的點,可以看到PC座標系統正在調整
PCA對於降維很有用。下面,我們將資料繪製成兩條直線:一條由x值組成,另一條由y值組成。
但是,如果我們只打算沿一個維度檢視資料,那麼將該維度作為具有最大變化的主成分可能會更好。 通過減少PC2,不會造成太大損失,因為它對資料集的變化貢獻最小。
3D示例
看透一個資料云是非常困難的,因此,在3D空間中,PCA顯得更為重要。在下面的示例中,原始資料以3D的形式繪製,但可以通過不同的視角,將其投射到2D空間。確定好角度之後,點選“顯示PCA”按鈕,即可呈現2D的結果。在本例中,PCA變換確保水平軸PC1的變化量最大,垂直軸PC2的變化量次之,第三軸PC3的變化量最少。顯然,PC3是丟棄的。
應用:吃喝在英國
如果資料集不僅僅是三維的,而是17個維度的呢?!如下表所示:
表中是英國每個地區平均每人每週17種食物的消費量,單位為克。這張表顯示了不同食物型別之間存在的一些有趣的差異,但總體差異並不顯著。讓我們看看PCA是否可以通過降維來強地區家之間的差異。
下圖是第一個主成分的資料圖。 我們可以看到一些有關北愛爾蘭的情況已經發生了變化。
現在,看看第一和第二主成分,可以看到北愛爾蘭是一個主要的異常值。一旦回過頭來看看錶格中的資料,這就顯得很有道理了:北愛爾蘭人吃的新鮮土豆要很多,吃的新鮮水果、乳酪、魚和酒精飲料較少。這是一個很好的跡象,我們所看到的結構反映了現實世界地理的一個重要事實北愛爾蘭是四個國家中唯一一個不在大不列顛島上的。
條件概率
條件概率是指一個事件在另外一個事件已經發生條件下的發生概率。一個落下來的球可能落在紅色的架子上(稱之為A事件),或者落在藍色架子上(稱之為B事件),或者兩者兼而有之。
那麼給定一個球,它擊中了紅色架子(A事件),而後擊中藍色架子(B事件)的概率會是多少呢?可以通過給定A的條件概率,即P(B | A)來回答這個問題。
將抽象、難懂的計算機概念,以視覺化的形式展現出來,可以幫助學生、研究者更好的理解;甚至可以幫助教師們提高教學質量。
無論如何,希望讀者們能從本文中得到或多或少的幫助。
當然還有一些其他的抽象概念的視覺化,讀者們可訪問下方連結地址檢視:
http://setosa.io/ev/
∑編輯 | Gemini
來源 | 螢火蟲沙龍3
演算法數學之美微信公眾號歡迎賜稿
稿件涉及數學、物理、演算法、計算機、程式設計等相關領域,經採用我們將奉上稿酬。
投稿郵箱:math_alg@163.com
相關文章
- MCMC(二)馬爾科夫鏈馬爾科夫
- 一個馬爾科夫鏈例項馬爾科夫
- 2022-05-17-馬爾科夫鏈之傳統馬爾可夫鏈馬爾科夫馬爾可夫
- 馬爾科夫鏈的穩態分佈馬爾科夫
- 馬爾科夫鏈隨機文字生成器馬爾科夫隨機
- 【HMM】隱馬爾科夫模型HMM馬爾科夫模型
- 馬爾可夫鏈模型(轉載)馬爾可夫模型
- 2022-05-21-空間馬爾科夫鏈工具馬爾科夫
- 隱馬爾科夫模型HMM(一)HMM模型馬爾科夫模型HMM
- 隱馬爾科夫模型(HMM)分詞研究馬爾科夫模型HMM分詞
- 隱馬爾科夫模型HMM(二)前向後向演算法評估觀察序列概率馬爾科夫模型HMM演算法
- 用hmmlearn學習隱馬爾科夫模型HMMHMM馬爾科夫模型
- 機器學習知識點(十)馬爾可夫鏈機器學習馬爾可夫
- 最簡單的隨機過程——馬爾科夫鏈的Python分析隨機馬爾科夫Python
- 隱馬爾科夫模型前向後向演算法馬爾科夫模型演算法
- 隱馬爾可夫模型隱馬爾可夫模型
- 在 Swift 中使用馬爾可夫鏈生成文字Swift馬爾可夫
- 徹底看懂 PBR/BRDF
- 強化學習(二)馬爾科夫決策過程(MDP)強化學習馬爾科夫
- 【機器學習】--隱含馬爾科夫模型從初識到應用機器學習馬爾科夫模型
- 馬爾可夫鏈是個什麼鬼?圖文詳解告訴你!馬爾可夫
- 條件概率與全概率公式公式
- HMM隱馬爾可夫模型HMM隱馬爾可夫模型
- 使用馬爾可夫模型自動生成文章馬爾可夫模型
- 隱馬爾可夫模型 | 賽爾筆記隱馬爾可夫模型筆記
- “矽谷獨家大王”馬爾科夫:矽谷還是創新聖地嗎?馬爾科夫
- 51 張圖助你徹底掌握 HTTP!HTTP
- 隱馬爾可夫模型詳解隱馬爾可夫模型
- 10_隱馬爾可夫模型隱馬爾可夫模型
- ML-隱馬爾可夫模型隱馬爾可夫模型
- 機器學習之隱馬爾可夫模型機器學習隱馬爾可夫模型
- 一個隱馬爾科夫模型的應用例項:中文分詞馬爾科夫模型中文分詞
- 隱馬爾科夫模型python實現簡單拼音輸入法馬爾科夫模型Python
- 隱馬爾科夫模型HMM(三)鮑姆-韋爾奇演算法求解HMM引數馬爾科夫模型HMM演算法
- 馬爾可夫鏈你知道多少?Python視覺化解析MCMC馬爾可夫Python視覺化
- [譯] 用 Python 實現馬爾可夫鏈的初級教程Python馬爾可夫
- 強化學習入門第一講 馬爾科夫決策過程強化學習馬爾科夫
- 隱馬爾可夫模型(HMM)詳解隱馬爾可夫模型HMM