轉載自https://blog.csdn.net/victoriaw/article/details/78497316
核心:測地線距離(dijstra最短路徑獲得)、MDS降維
Isomap(Isometric Feature Mapping)是流行學習的一種,用於非線性數據降維,是一種無監督算法。
它所采用的核心算法和MDS是一致的,區別在於原始空間中的距離矩陣的計算上。很多數據是非線性結構,不適合直接采用PCA算法和MDS算法。在非線性數據結構中,流形上距離很遠(測地線距離)的兩個數據點,在高維空間中的距離(歐式距離)可能非常近,如下圖所示:
只有測地線距離才反映了流形的真實低維幾何結構。Isomap建立在MDS的基礎上,保留的是非線性數據的本質幾何結構,即任意點對之間的測地線距離。
現在的問題是怎么根據輸入空間距離信息估計測地線距離?對於鄰居數據點,其輸入空間距離可以很好地近似測地線距離。在每個數據點和其鄰居點之間添加加權邊,得到一個連接圖。距離較遠的數據點之間的測地線距離可以通過最短路徑距離近似。
Isomap算法總共分為三步。首先,為每個數據點確定鄰居,有兩種方式,一種是把最近的kk個作為鄰居,一種是把半徑ϵϵ內的所有點作為鄰居。可以得到加權圖,邊上的權重表示兩點之間的輸入空間距離dX(i,j)dX(i,j)。
然后,對任意兩個點對,計算最短路徑距離dG(i,j)dG(i,j)作為測地線距離的估計。可以采用Dijkstra算法計算最短路徑。
最后,把根據最短路徑確定的距離矩陣DGDG作為MDS算法的輸入,得到低維空間中最好地保留流形的本質結構的數據表示。
在計算近鄰時,如果鄰域范圍指定得較大,那么距離較遠的點可能被認為是近鄰,造成“短路”問題;如果鄰域范圍指定的小,那么圖中某些區域可能和其他區域不連通,出現“斷路”問題。短路或者斷路都會給后面計算最短路徑造成誤導。
MDS降維
1、https://blog.csdn.net/zwlq1314521/article/details/59483232?locationNum=8&fps=1