t-sne是一種降維方法,pca主成分分析、lda等屬於線性降維,t-sne屬於非線性降維,是一種流形學習方法(manifold learning)。
如圖所示的曲面上,兩點之間的歐式距離為紅色虛線所示,藍色實線為兩點之間的測地線距離,第二張圖為knn圖,展開後如第三張圖所示。兩點之間的最短距離為藍色實線所示,但實際應用中,真實最短距離較難獲得,一般通過構造knn圖尋找最短路徑作為近似。
構建二維空間k-d樹後,尋找k近鄰就不用計算某個點與其他所有點之間的距離了。例如尋找圖中紅點的k近鄰,只需要搜尋當前子空間,同時不斷回溯搜尋父節點的其他子空間,即可找到k近鄰點。
sne(stochastic neighbor embedding)根本原理是:在高維空間相似的資料點,對映到低維空間距離也是相似的。通常使用歐式距離來描述這種相似性,而sne把這種距離關係轉換為一種條件概率來表示相似性。高維空間中的兩個資料點xi和xj,xi以條件概率pj|i選擇xj作為它的鄰近點。考慮以xi為中心點的高斯分布,若xj越靠近xi,則pj|i越大。反之若兩者相距較遠,則pj|i極小。因此我們可以這樣定義pj|i。
其中σi表示以xi為中心點的高斯分布的方差。由於我們只關心不同點對之間的相似度,所以設定pi|i=0。
當我們把資料對映到低維空間後,高維資料點之間的相似性也應該在低維空間的資料點上體現出來。這裡同樣用條件概率的形式描述,假設高維資料點xi和xj在低維空間的對映點分別為yi和yj。類似的,低維空間中的條件概率用qj|i表示,並將所有高斯分布的方差均設定為1/sqrt(2),所以有:
若yi和yj真實反映了高維資料點xi和xj之間的關係,那麼條件概率pj|i與qj|i應該完全相等。這裡我們只考慮了xi與xj之間的條件概率,若考慮xi與其他所有點之間的條件概率,則可構成乙個條件概率分布pi,同理在低維空間存在乙個條件概率分布qi且應該與pi一致。如何衡量兩個分布之間的相似性?當然是用經典的kl距離(kullback-leibler divergence),sne最終目標就是對所有資料點最小化這個kl距離,我們可以使用梯度下降演算法最小化如下代價函式:
t sne資料降維與視覺化工具使用
1.降維方法 特徵降維方法包括 lasso,pca,小波分析,lda,奇異值分解svd,拉普拉斯特徵對映,sparseautoencoder,區域性線性嵌入lle,等距對映isomap。然而t sne方法是目前最好的降維方法。1.1現在降維方法分為線性方法和非線性方法如圖 2.t sne簡介和原理 ...
PCA實現高維資料視覺化
pca principal component analysis 即主成分分析是最常見的降維方法,它是一種統計方法。用於高維資料集的探索與視覺化,還可用於資料的壓縮和預處理。可通過正交變換把具有相關性的高維變數轉換為線性無關的低維變數,這組低維變數稱為主成分,它能保留原始資料的資訊。1 輸入 樣本集...
低維資料視覺化
知識要點 實現 import pandas as pd import matplotlib.pyplot as plt from sklearn.datasets import make circles from sklearn.datasets import make moons def draw...