拓樸資料分析是一個資料分析方法的分支,主要的想法便是利用代數拓樸工具來分析資料的”形狀”來得到新的觀點(insights)。
而利用拓樸工具分析的主要好處便是在理論上資料的拓樸性質具有良好的抗噪性,一個直接的應用便是用來偵測資料是否有異常!
這系列文章簡單介紹拓樸資料分析的基本原理以及術語。
一般來說,拓樸資料分析的思路如下:
- 將資料整理成點雲(point cloud 以$X_n$注記)的形式
- 計算在$\epsilon$下的 Vietoris -Rips complex(或其他生成方式)$Rips_{\epsilon}(X_n)$
- 根據不同的$\epsilon$下的計算結果畫出persistence diagram
- 根據persistence diagram計算出persistence landscape
一般來說,我們可以利用第二步以及第三步的$Rips_{\epsilon}(X_n)$以及persistence diagram來得到一些資料視覺化的成果,也可以利用persistence landscape來進行一些統計計算!
那我們接下來便一步步來解釋以上這四個步驟的一些術語以及相關理論的介紹。
首先第一步,所謂的點雲(point cloud)只是一個術語,用來描述將所有的數據點收集起來所形成的集合。舉例來說,假設我們現在有5個數據點$x_1 = 1,x_2=2,x_3=3,x_4=4,x_5=5$則將這5個點收集起來形成了一個在$R$裡面的子集$X={x_1,x_2,x_3,x_4,x_5} \subset R$,這個$X$,我們便稱它為點雲。
接下來要理解第二步,我們必須先了解什麼是vietoris Rips complex,而要了解vietoris Rips complex,我們必須先了解什麼是simplex、simplicial complex以及abstract simplicial complex. 以下進行簡單的不專業介紹
Simplicial complex and abstract simplicial complex
單體(Simplex):
用幾何的角度想,所謂的單體就是三角形,以及三角形在高維度的推廣,舉例來說:
- 0-simplex為點
- 1-simplex維度為線
- 2-simplex維度為三角形
- 3-simplex維度為四面體
簡單來說,k-simplex為三角形在k維度的推廣,而k-simplex在數學上的形式定義為$k+1$個頂點($v_0,v_1,v_2,\cdots,v_{k}$)在$R^k$所形成的凸包(convex hull):
$$V = \{c_0v_0 + c_1v_1 + \cdots + c_kv_k|\sum^k_{n=0} c_n = 1 \ \ c_n \geq 0\}$$
這邊我們要額外要求($v_0,v_1,v_2,\cdots,v_{k}$)是 仿射獨立(affinely independent),也就是說$v_1 – v_0, \cdots, v_k – v_0$為線性獨立。因為如果選取的頂點並不滿足仿射獨立,則代表凸包所形成的空間維度不夠大,因為某些線段可以被其他線段的線性組合所生成!而關於凸包以及線性獨立的相關觀念可以參考凸分析以及線性代數的相關資料,本文並不在贅述。
單體複形(Simplicial complex)
有單體的觀念後,我們便可以理解什麼是單體複形(Simplicial complex)(這邊記為$K$),在理解單體複形前,我們先解釋什麼是單體的面(face),假設單體$\sigma$為一組頂點($v_0,v_1,v_2,\cdots,v_{k}$)形成的凸包,則這組頂點的子集形成的凸包便稱為$\sigma$的面
而所謂的單體複形$K$便是一堆單體所形成的集合,並滿足
- 如果$\sigma \in K$,則$\sigma$的面必須在$K$裡面
- 如果$\sigma_1,\sigma_2 \in K$ 則$\sigma_1 \cap \sigma_2$是$\sigma_1$以及$\sigma_2$的面
抽象單體複形(Abstract simplicial complex) :
所謂的抽象單體複形便是把單體複形推廣到任意空間,假設給定一頂點集合$V$,則以 $V$為頂點的抽象單體複形為一堆$V$的有限子集合所形成的集合$K$,並滿足如果$\sigma \in K$則非空子集$Y \subset \sigma \in K$
下一篇文章將會討論這三個概念與拓樸之間的關係,以及如何在點雲上面建立抽象單體複形!