1. 程式人生 > >資料降維(四)ISOMAP

資料降維(四)ISOMAP

流形學習——ISOMAP演算法

Isomap(Isometric Feature Mapping)是流行學習的一種,用於非線性資料降維,是一種無監督演算法.

流形

流形是一個區域性具有歐式空間性質的拓撲空間,流形能很好地近似任意高維的子空間.

測地線距離

測地距離(Geodesic Distance),在高維空間中度量距離不應當直接使用歐式距離,而應當使用測地距離.

測地線距離定義

  • 鄰近的點:輸入空間的歐式距離提供一個測地線距離的近似.
  • 最遠的點:測地線距離通過一些列鄰域點之間的歐式距離的累加近似得到.

舉例: 在一個流形中,相距很遠的兩個點,有可能歐式距離很近.

ISOMAP演算法

ISOMAP(Isometric Feature Mapping, 等距離特徵對映),是一種非線性降維方法,其基於度量MDS,試圖保留資料內在的由測地線距離蘊含的幾何結構.

演算法步驟

  • 構建鄰接圖
    • 通過連線距離小於 ϵ \epsilon 的兩個點 i
      i
      j j 在N個數據點上定義圖 G
      G
      ( ϵ I s o m a p \epsilon-Isomap ),或者點 i i 是點 j j k k 近鄰之一(K-Isomap).
    • 設定邊的長度為 d ( i , j ) d(i,j) .
  • 計算最短路徑
    • 初始化 d G ( i , j ) = d ( i , j ) d_G(i,j) = d(i,j) ,如果 i i j j 相連線,否則 d G ( i , j ) = d_G(i,j) = \infty
    • 對於每一個 k = 1 , 2 , , N k=1,2,\dots, N ,替換所有的 d G ( i , j ) d_G(i,j) min ( d G ( i , j ) , d G ( i , k ) + d G ( k , j ) \min(d_G(i,j),d_G(i,k)+d_G(k,j) .那麼 D G = [ d G ( i , j ) ] D_G = [d_G(i,j)] 包含G中所有點對的最短路徑
  • 構建低維嵌入
    • 通過MDS構建低維的資料嵌入

瓶頸

  • 最短路徑的計算
    • Floyd演算法: O ( N 3 ) O(N^3)
    • Dijkstra演算法(Fibonacci堆實現): O ( K N 2 log N ) O(KN^2\log N) ,K是最近鄰的個數
  • 特徵分解: O ( N 3 ) O(N^3)