資料降維 — t-SNE 降維與視覺化
目錄
☉前言
☉歐式距離無法獲得的資訊?
☉降維的種類
☉流型學習
☉t-SNA 演算法步驟
☉困惑度 Perplexity
☉總結
☉實作
☉參考資料
前言
t-SNE 全名是 t-distributed Stochastic Neighbor Embedding,由 Hinton 等人在 2008 年發布的一種非線性降維方法,大多將高維資料降至 2 維或 3 維,用於視覺化檢視資料的內容是否具有區別度,或著讓後續的模型任務(例如:分類)更容易達成。
歐式距離無法獲得的資訊?
先來看看一張圖
若照我們一般想要了解圖中兩個點的相關程度,我們通常會採用歐式距離(虛線)來計算,歐式距離越近的兩個點代表越相關。
但是在圖中我們可以很明顯的看出資料都散佈在一個扭曲的面上,所以我們若是去找到這兩個點在此面上的距離(實線),或許獲得的相關性會比較適用。
降維的種類
- 線性方法:PCA, LDA
- 非線性方法:MDS, Isomap, t-SNE….
主流的線性降維方法不多,主要就是 PCA, LDA 的兩種方法,在降維時線性地去轉換向量空間;而非線性方法則種類較多,不同的降維有不同的目的,有些是為了保留全域特徵(Global data structure),有些則是為了保留區域特徵(Local data structure)
流型學習
流型學習就是假設某種低維度的結構,被塞在了高維度的空間中,那我們就是要透過降維的方法,來重新學習或找到這些低維度的特徵。
非線性降維很常被拿來解決流型學習的資料,下圖左方是一個在三維空間中的立體 S 型,他其實可以順著 S 的趨勢,攤平成一個彩虹色階的二維資料。右方就是各種非線性降維方法套用後的效果。
t-SNE 演算法步驟
步驟一、將高維資料間轉換成以高斯分佈為相似度的條件機率。
分子部分可以看成高斯分佈的機率密度函數,代表著以 Xi 為中心的高斯分佈下,Xj 的機率,機率越大,代表兩個距離越近。
分母部份則是作為 Normalization 的用途。
步驟二、將要轉換成的低維資料使用 t 分佈為相似度的條件機率。
分子部分可看成 t 分佈的機率密度函數(自由度為 1 ),代表以 yi 為中心的 t 分佈。
分母部份一樣是 Normalization 的用途。
步驟三、為了將 1. 2. 之間的機率分佈最相近,最小化所有資料點間的 KL 散度
步驟四、以 3. 作為成本函數(Cost Function),並使用隨機梯度下降法(Stochastic Gradient Decent)求最佳解
困惑度 Perplexity
在高維度資料轉換為條件機率時,需要設定以 Xi 為中心分佈的標準差,調整方式就是設定困惑度這個超參數,t-SNE 會找到符合困惑度的 Pi 以及標準差。
困惑度設定越大,此標準差就會越大,一般建議數值設定在 5 至 50 之間。
總結
t-SNE 的特性
- 非線性的降維方法
- 將資料點間關係以條件機率來表示,並進行降維,低維度下儘量保留同樣的條件機率。
- 可以找出空間中的局部特徵
- 常用於視覺化
- 隨機性-每次執行的結果都不同
- 比較兩群之間的距離是沒有意義的
實作
使用 scikit-learn 可以直接實作
參考資料
教育部補助大專院校STEM領域及女性研發人才培育計畫目標為建構一個「以智慧物聯技術與實務應用為基礎的教育環境和實作場域」,並規劃出符合此STEM教育領域的創新特色課程,以畢業前進入企業實習的方式,讓學生了解相關產業界所面對的問題,再輔以業界實作場域的教育訓練活動,共同帶領學生發展出動手做、判斷與解決問題的相關技能;本計畫也規劃讓學生以專題實作的組隊方式,跟業界協力領導學生對外參與智慧物聯技術的應用競賽,不僅可以累積學生實務開發的能力,更能激發其潛能來幫助企業解決所面臨的難題。
Data Science Meetup 台灣資料科學社群的使命是「為資料科學人士與企業創建經濟機會」。我們相信大數據蘊藏著巨量的信息和價值,如何處理好大數據並發掘其潛藏的商業價值,就要靠資料科學有效的應用。21世紀是資料科學決勝時代,我們社群將為大家提供與資料科學相關的最新技術和資訊實戰攻略,並透過全球業界人士和學者幫助相關職業規劃與挑戰,社群活動包含
- 台北實體版聚
- 線上版聚
- Mentorship Program
歡迎加入我們社團瞭解更多資訊:https://www.facebook.com/groups/datasciencemeetup/