天天看點

13張動圖助你徹底看懂馬爾科夫鍊、PCA和條件機率!

馬爾科夫鍊、主成分分析以及條件機率等概念,是計算機學生必學的知識點,然而理論的抽象性往往讓學生很難深入地去體會和了解。而本文,将這些抽象的理論概念,用可視化的方式來解釋,還可調節相應參數來改變結果,使這些抽象概念變得生動而立體!

13張動圖助你徹底看懂馬爾科夫鍊、PCA和條件機率!

計算機相關概念太難、太抽象?别怕,往下看!

人類對視覺資訊的記憶要遠遠大于文字資訊。使用圖表等形式的可視化,可以讓抽象、難懂的概念一目了然;在此基礎之上,添加可控的參數調節器,将更有助于對概念的深入學習與了解。

馬爾科夫鍊

馬爾科夫鍊是指數學中具有馬爾科夫性質的離散事件随機過程。在其每一步中,系統根據機率分布可以從一個狀态變到另一個狀态,也可以保持目前狀态。狀态的改變叫做轉移,與不同的狀态改變相關的機率叫做轉移機率。

這概念是不是看着有點暈?沒關系,我們來看下面這張圖:

13張動圖助你徹底看懂馬爾科夫鍊、PCA和條件機率!

2種狀态的馬爾科夫鍊

在狀态空間中有兩種狀态,A和B。共有4種可能的轉換。如果我們在A,接下來可以過渡到B或留在A。如果我們在B,可以過渡到A或者留在B。在這張圖中,從任意狀态到任意狀态的轉移機率是0.5。

當然,真正的模組化工作者不會總是就畫一張馬爾科夫鍊圖。 相反,他們會使用“轉移矩陣”來計算轉移機率。狀态空間中的每個狀态都會出現在表格中的一列或者一行中。矩陣中的每個單元格都告訴你從行狀态轉換到列狀态的機率。是以,在矩陣中,單元格做的工作和圖中的箭頭所示是一樣。

13張動圖助你徹底看懂馬爾科夫鍊、PCA和條件機率!

如果狀态空間添加了一個狀态,我們将添加一行和一列,向每個現有的列和行添加一個單元格。這意味着當我們向馬爾可夫鍊添加狀态時,單元格的數量會呈二次方增長。是以,轉換矩陣就起到了很大的作用(除非你想把法爾科夫鍊圖畫的跟叢林一樣)。

馬爾科夫鍊的一個作用是用計算機模拟現實世界中的現象。例如,可以用來檢測一個建立的水壩溢流的頻率(取決于連續下雨的天數)。為建立這個模型,可以從下面的雨天(R)和晴天(S)開始:

13張動圖助你徹底看懂馬爾科夫鍊、PCA和條件機率!

表述這種模拟天氣的方法就是:“有一半的天數是下雨天。是以模拟中的每一天都有50%的機率是下雨的。”這個規則在模拟中所産生的序列如下:

13張動圖助你徹底看懂馬爾科夫鍊、PCA和條件機率!

你注意到上面的序列和原來的不太一樣了嗎?第二個序列似乎具有跳躍性,而第一個(真實資料)似乎具有“粘性”。在真實的資料中,如果某一天是晴天,那麼第二天也很可能是晴天。

可以通過兩個狀态的馬爾可夫鍊來消除這種“粘性”。當馬爾科夫鍊處于狀态“R”時,它保持在該狀态的機率是0.9,狀态改變的機率是0.1。同樣,“S”狀态保持不變的機率是0.9,過渡到“R”狀态的機率是0.1。

13張動圖助你徹底看懂馬爾科夫鍊、PCA和條件機率!

在許多需要對大規模的現象做研究的從業人員手中,馬爾科夫鍊的作用可以變得非常強大。例如,谷歌用于确定搜尋結果順序的算法,稱為PageRank,就是一種馬爾可夫鍊。

主成分分析(PCA)

主成分分析,是一種統計方法。通過正交變換将一組可能存在相關性的變量轉換為一組線性不相關的變量,轉換後的這組變量叫主成分。PCA是最重要的降維方法之一,在資料壓縮消除備援和資料噪音消除等領域都有廣泛的應用。

● 2D示例

首先,隻考慮兩個次元的資料集,比如高度和重量。這個資料集可以繪制成平面上的點。但如果想要整理出變量,PCA會找到一個新的坐标系,其中每個點都有一個新的(x,y)值。坐标軸實際上沒有任何實體意義。它們是高度和重量的組合,被稱為“主分量”。

13張動圖助你徹底看懂馬爾科夫鍊、PCA和條件機率!

拖動原始資料集中的點,可以看到PC坐标系統正在調整

PCA對于降維很有用。下面,我們将資料繪制成兩條直線:一條由x值組成,另一條由y值組成。

13張動圖助你徹底看懂馬爾科夫鍊、PCA和條件機率!

但是,如果我們隻打算沿一個次元檢視資料,那麼将該次元作為具有最大變化的主成分可能會更好。 通過減少PC2,不會造成太大損失,因為它對資料集的變化貢獻最小。

13張動圖助你徹底看懂馬爾科夫鍊、PCA和條件機率!

● 3D示例

看透一個資料雲是非常困難的,是以,在3D空間中,PCA顯得更為重要。在下面的示例中,原始資料以3D的形式繪制,但可以通過不同的視角,将其投射到2D空間。确定好角度之後,點選“顯示PCA”按鈕,即可呈現2D的結果。在本例中,PCA變換確定水準軸PC1的變化量最大,垂直軸PC2的變化量次之,第三軸PC3的變化量最少。顯然,PC3是丢棄的。

13張動圖助你徹底看懂馬爾科夫鍊、PCA和條件機率!

● 應用:吃喝在英國

如果資料集不僅僅是三維的,而是17個次元的呢?!如下表所示:

13張動圖助你徹底看懂馬爾科夫鍊、PCA和條件機率!

表中是英國每個地區平均每人每周17種食物的消費量,機關為克。這張表顯示了不同食物類型之間存在的一些有趣的差異,但總體差異并不顯著。讓我們看看PCA是否可以通過降維來強地區家之間的差異。

下圖是第一個主成分的資料圖。 我們可以看到一些有關北愛爾蘭的情況已經發生了變化。

13張動圖助你徹底看懂馬爾科夫鍊、PCA和條件機率!

現在,看看第一和第二主成分,可以看到北愛爾蘭是一個主要的異常值。一旦回過頭來看看表格中的資料,這就顯得很有道理了:北愛爾蘭人吃的新鮮洋芋要很多,吃的新鮮水果、奶酪、魚和酒精飲料較少。這是一個很好的迹象,我們所看到的結構反映了現實世界地理的一個重要事實北愛爾蘭是四個國家中唯一一個不在大不列颠島上的。

13張動圖助你徹底看懂馬爾科夫鍊、PCA和條件機率!

條件機率

條件機率是指一個事件在另外一個事件已經發生條件下的發生機率。一個落下來的球可能落在紅色的架子上(稱之為A事件),或者落在藍色架子上(稱之為B事件),或者兩者兼而有之。

那麼給定一個球,它擊中了紅色架子(A事件),而後擊中藍色架子(B事件)的機率會是多少呢?可以通過給定A的條件機率,即P(B | A)來回答這個問題。

13張動圖助你徹底看懂馬爾科夫鍊、PCA和條件機率!

将抽象、難懂的計算機概念,以可視化的形式展現出來,可以幫助學生、研究者更好的了解;甚至可以幫助教師們提高教學品質。

無論如何,希望讀者們能從本文中得到或多或少的幫助。

原文釋出時間為:2018-08-26

本文來自雲栖社群合作夥伴“

資料派THU

”,了解相關資訊可以關注“

”。

繼續閱讀