Topological Data Analysis(TDA) 拓扑数据分析与mapper算法
目錄
什么是TDA?
mapper算法的大致流程
使用mapper進行數據分析的優點
參考連接
什么是TDA?
? ? ? ? 即對數據拓撲學特征進行分析的方法,那么什么是拓撲學特征?拓撲是研究幾何圖形或空間在連續改變形狀后還能保持不變的一些性質的一個學科。它只考慮物體間的位置關系而不考慮它們的形狀和大小。換句話說,這是一些特殊的幾何性質,這些性質在圖形連續改變形狀后還能繼續保持不變。
? 一個例子(圖片來自參考連接1)mapper算法的大致流程
? ? ? ? 介紹完啥是TDA,接下來介紹mapper,這個mapper經常和TDA一起提出,那么這個mapper到底是個啥?————是一個TDA分析方法的具體算法。
? ? ? ? 既然是算法,就有輸入輸出,理論上mapper的輸入數據可以是任何類型的數據,但是要滿足一定的條件,即輸入的數據必須要能夠計算任何兩數據之間的距離(這距離不局限于歐幾里得距離,可以是用戶定義的一些距離公式,目的就是要能夠確定這個數據在總的輸入數據中的一個大致“位置”)。輸出便是一個關于輸入數據的拓撲圖。
? ? ? ? mapper算法的流程:
看到這里,你可能對第一步中的filter函數還有疑惑,不知道這是個啥,沒關系,后面在優點中會進行介紹。
使用mapper進行數據分析的優點
優點1:一般現有的算法,如果要對高維數據進行可視化,必然會有一個降維的過程,那么現有的算法在降維后對原始數據會有一些信息的損失(維數越高,越明顯)。而mapper算法始終保留高維空間中數據的整體拓撲信息,在這個方面,它遠勝于其他算法。接下來我會通過一個實例來介紹,filter函數也會在這步中進行詳細說明。
3D模型數據(圖片來自參考鏈接3,下面的圖片也是)?????????訓練的原始數據為7類3D模型數據,為了使這些模型能夠成為mapper算法的輸入,需要進行一些預處理,即在這些模型中抽取4000個具有代表性特征的點構成集合Y(這是對一個模型抽取4000個點),重新表示該3D模型。
? ? ? ? 得到點集Y后,這時我們就選擇一個合理的filter函數,比如
filter函數 函數作用介紹?????????這個函數的作用就是,對于每個模型中采集的點,能夠計算該點距離所有點的中心的遠近程度,離中心越遠的點值越大。不明白的話,直接看下圖:
經過filter函數計算過的3D模型?????????上面這個圖就是通過那個filter函數計算后的值的分布。就拿那個大象來說,腹部那里應該算的上是點的中心部分,所以值最小程藍色。鼻子和后腿離中心較遠,所以值最大程紅色。那么經過filter函數計算后有什么用呢?
? ? ? ? 到了這里,我們再回過去看mapper算法的流程那里,此時我們已經得到該3D模型中每個點對應的一個值。這些值就是一維的數據。這樣就可以設置resolution和overlap了。
下圖中的U代表intervals的寬度,U重疊的部分就是overlap。
用此圖理解一下(圖片來源參考鏈接4) 3D數據的拓撲圖(參考鏈接3)?????????從上面的拓撲圖可以看到,對于不同類別的物體,其拓撲圖完全不一樣。對于相同類別的物體他們動作不一樣,拓撲圖也能夠體現出來,即使變化很微小(如人臉的表情)。
優點2:能夠發現一些更小的類。
? ? ? ? 我們來看一個例子:
輸入數據為3168個語音記錄樣本,這些樣本來自男性和女性的發言者。每個數據有21個屬性。如下圖:
樣本內容(參考鏈接5)?使用mapper算法后進行可視化:
圖3 intervals的值為10(參考鏈接5) 圖4 intervals的值為15?????????
????????其中紅色圈表示女性,黃色圈表示男性,藍色圈表示男性和女性都有。圖 3 和圖 4 清楚地向我們展現了數據中隱藏的形狀,以及從不同尺度觀察數據的結果。由圖 4?可知,男性和女性樣本被有效區分,在同性中存在不同的簇,說明同性之間的聲音也有不同的類 別,而在異性間存在共同的簇,說明即使異性之間 的聲音也會有相似特征和成分。由圖 3?可以明顯看到簇的減少(更加粗糙),以及更加明顯的聚類和數據形狀,雖然整個數據的形狀有點扭曲變形,但是 Y 形耀斑這樣的基本特征仍然存在,說明 TDA 的確對小誤差的容忍度很大,數據簇更加明確。
?優點3:發現的特征具有魯棒性
先看一下專家原話:
鏈接3中論文原話?????????意思就是,如果一個特征,能夠在不同粗糙程度的角度持續被檢測到,那么這個特征多半不可能是 artifact的 而是 real的。從圖3和圖4中(代表不同的粗糙程度)那個y字形的圖案可以看出來,這應該會是一個重要的具有魯棒性的真實的特征。
優點4:顯而易見,這個方法非常方便可視化。
優點5:代碼簡潔,已有比較成熟的庫。
參考鏈接4中的代碼以上便是全部代碼了,足夠簡單。?
?
參考連接
參考鏈接1:走進大數據之拓撲數據分析方法https://zhuanlan.zhihu.com/p/24988537
參考鏈接2:Identifying homogeneous subgroups of patients and important features: a topological machine learning approachhttps://bmcbioinformatics.biomedcentral.com/articles/10.1186/s12859-021-04360-9
參考鏈接3:Topological Methods for the Analysis of High Dimensional Data Sets and 3D Object Recognitionhttps://research.math.osu.edu/tgda/mapperPBG.pdf參考鏈接4:Topological data analysis with Mapperhttps://www.quantmetry.com/blog/topological-data-analysis-with-mapper/https://www.quantmetry.com/blog/topological-data-analysis-with-mapper/?參考鏈接4:基于拓撲數據分析的高維數據隱藏模式挖掘https://www.cnki.com.cn/Article/CJFDTotal-XTFZ201909005.htmhttps://www.cnki.com.cn/Article/CJFDTotal-XTFZ201909005.htm
總結
以上是生活随笔為你收集整理的Topological Data Analysis(TDA) 拓扑数据分析与mapper算法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android保存配置文件内容到本地(t
- 下一篇: 在cocos里判断运行环境