十 Sklearn流形學習

2022-06-30 13:21:13 字數 2347 閱讀 5586

參考url:

流形學習是一種無監督評估器,它試圖將乙個低維度流形嵌入到乙個高維度空間來描述資料集。

通過觀察這個資料集,可以看到資料集中選中的x值和y值並不是對資料的最基本描述:即使放大、縮小或旋轉資料,『hello』仍然會很明顯。

這說明x和y的值並不是資料間關係的必要基礎特徵。

這個例子中真正的基礎特徵是每個點與資料集中其他點的距離,表示這種關係的常用方法是關係(距離)矩陣:對於n個點,構建乙個nxn的矩陣,元素(i,j)是點i和點j之間的距離。

多維標度法,可以將乙個資料集的距離矩陣還原成乙個d維座標來表示資料集。

既然距離矩陣可以從資料的任意維度進行計算,那麼多維度標度法絕對非常實用。

以上就是使用流行學習評估器希望達成的基本目標:給定乙個高維嵌入資料,尋找資料的乙個低維表示,並保留資料間的特定關係。

在mds的示例中,保留的資料是每隊資料點之間的距離。

當嵌入為非線性時,即超越簡單的操作集合時,mds演算法就會失效。

雖然資料點間基本的關係仍然存在,但是這次資料以非線性的方式進行了變換:它被包囊成了's'形

如果嘗試用乙個簡單的mds演算法來處理這個資料,就無法展示資料非線性嵌入的特徵,進而導致我們丟失了這個嵌入式流形的內部基本關係特性

將mds演算法應用於非線性資料時無法還原其內部結構

即使是最優的二維線性嵌入也不能破解s曲線的謎題,而且還丟失了原始資料的y軸資訊

mds演算法構建嵌入時,總是期望保留相距很遠的資料點之間的距離,但是如果修改演算法,讓它只保留比較接近的點之間的距離呢?

其中的每一條細小的線都表示在嵌入時會保留的距離。

左圖是用mds演算法生成的嵌入模型,它會試圖保留資料集中每對資料點間的距離,右圖使用流行學習演算法區域性線性嵌入(lle)生成的嵌入模型,該方法不保留所有的距離,而是僅保留鄰節點間的距離——本例選擇與每個點最近的100個鄰節點。

在左圖中,顯然不可能在展開資料的同時,保證每條線段的長度完全不變,所以mds演算法會失效。

在右圖中,通過某種方式將捲曲的資料展開,並且線段的長度基本保持不變,這是lle演算法的工作原理,它通過對成本函式的全域性優化來反映這個邏輯。

由於流形學習在實際應用中的要求非常嚴格,因此除了在對高維資料進行簡單的定向視覺化之外,流形學習很少被正式使用。

流形學習與pca演算法的比較:

(1)在流形學習中,並沒有好的框架來處理缺失值。相比之下,pca演算法中有乙個用於處理缺失值的迭代方法。

(2)在流形學習中,資料中噪音的出現將造成流形『短路』,並且嚴重影響嵌入結果。相比之下,pca可以自然地從最重要的成分中濾除噪音。

(3)流形嵌入的結果通常高度依賴於所選取的鄰節點的個數,並且通常沒有確定的定量方式來選擇最優的鄰節點個數。相比之下,pca演算法中並不存在這樣的問題。

(4)在流形學習中,全域性最優的輸出維度數很難確定。相比之下,pca可以基於解釋方差來確定輸出的維度數。

(5)在流形學習中,嵌入維度的含義並不總是很清楚,而在pca演算法中,主成分有非常明確的含義。

(6)在流形學習中,流形方法的計算複雜度為o[n2]或o[n3],而pca可以選擇隨機方法,通常速度更快。

流形學習有乙個明顯的優點,就是它具有保留資料中的非線性關係的能力。

可以先用pca探索資料的線性特徵,再用流形方法探索資料的非線性特徵。

流形學習(一)

1 什麼是流形?經常會在 裡看到 嵌入在高維空間中的低維流形 高維的資料對於我們總是難以想像,所以最直觀的例子通常都會是嵌入在三維空間中的二維或者一維流形。比如說一塊布,可以把它看成乙個二維平面,這是乙個二維的歐氏空間,現在我們 在三維 中把它扭一扭,它就變成了乙個流形 當然,不扭的時候,它也是乙個...

流形學習t SNE,LLE,Isomap

作者 andre ye 編譯 vk analytics indiamag 主成分分析是一種強大的方法,但它往往失敗,因為它假設資料可以線性建模。pca將新的特徵表示為現有特徵的線性組合,將每個特徵乘以乙個係數。為了解決主成分分析的侷限性,人們通過對具有不同結構的資料進行應用而產生了各種各樣的技術。然...

幾種流形學習演算法

區域性線性嵌入 lle 前提假設 取樣資料所在的低維流形在區域性是線性的,即每個取樣點可以用它的近鄰點線性表示。求解方法 特徵值分解。lle演算法 計算每乙個點xi的近鄰點,一般採用k近鄰或者 領域。計算權值wij,使得把xi用它的k個近鄰點線性表示的誤差最小,即通過最小化 xi wijxj 來求出...