降維與度量學習

沙雅雲發表於2018-12-04

這是我第一次看這一章節,所以我的理解應該都是比較淺顯的,寫這篇部落格一是寫一下自己學習的感受,好記性不如爛筆頭。二是為了與大家交流,希望大家給我指正。

降維學習的原因

k近鄰學習是一種簡單的學習方法,就是採用一種監督的學習方法,給定測試樣本,基於某種距離找到距離樣本最近的k個訓練樣本。可以採用投票法(選擇樣本中出現最多的類別作為最終的預測結果),或者採用平均法(就是採用樣本中平均值作為預測結果)但是k近鄰有個不好的地方,沒有訓練的過程,整個過程都是一個懶惰的學習過程。
影響k近鄰分類結果的因素主要有倆個:
1是k值的選取不同,取得的結果會有一個顯著的差距
2是採用不同的距離計算方式,找出的“近鄰”也有很大的差距。
得出一個結論:
最近鄰分類器雖然簡單,但是他的泛化錯誤率不超過貝葉斯最優分類器的兩倍。
重點來了,為什麼要降維呢?
因為高維空間會出現資料樣本稀疏,距離計算困難等問題,面臨這維數災難。化解維數災難最好的方法就是降維,就是將原始高維空間轉變為一個低維的空間,這個空間樣本的密度就會增大,距離計算就會變得容易起來。

降維學習的方法

  1. MDS
    通過一個變換矩陣,對於原始的高維空間進行線性變換。因為原始空間的距離都可以在更低維的空間通過歐式距離進行計算。這是演算法過程。
    在這裡插入圖片描述
  2. 主成分分析
    存在一個超平面:
    1,最近重構性(樣本點到這個超平面的距離都足夠近)
    2,最大可分性(樣本點在這個超平面上的投影都儘可能的分開)
    例如某個樣本x在低維空間的投影是z,zij是樣本在低維空間的第j維的坐 標,就用z 來重構x,得到X,這時候就是那x和X之間的距離。得到主成分分析的優化目標。為了使得樣本點之間的投影儘可能的分開就得使得投影后樣本之間的方差最大化。
    在這裡插入圖片描述
    PCA捨棄了部分空間是有必要的因為這樣的話,一方面捨棄這些資訊可以捨得樣本密度變大,方便計算樣本點之間的距離。另一方面,就是最小特徵值對應的特徵向量一般與噪聲有關,捨棄他們可以達到一定的去燥作用。
  3. 核化線性降維
    為什麼進行核化線性降維呢,因為,原來的高維空間的低維結構與變換後的低維結構是不一樣的。這樣就會丟失原本的低維結構,這個時候就會進行核變換
    在這裡插入圖片描述
  4. 流行學習
    流行具有一個結構,就是他可以在區域性使用歐式距離計算距離,如果低維空間巢狀到高維就有一個很好的性質,這個低維對映到高維可以仍可以在區域性使用歐式距離進行計算。另一面就是可以進行視覺化。
    等度量對映
    測地線距離就是指的曲面上兩點之間的本真距離。因為直接在高維空間上計算本真距離是不適當的。這個測地線距離很好的轉換成了計算近鄰接圖的兩點之間的最近距離,可以使用dijkstra’計算,
    近鄰圖的構建有兩種方法
    1,指定近鄰點的距離
    2,指定緊鄰點的距離
    在這裡插入圖片描述
    區域性線性嵌入
    假定樣本xi的座標可以通過它的鄰域樣本線性表出:
    在這裡插入圖片描述
    在這裡插入圖片描述
  5. 度量學習
    不管低維還是高維空間都有一個距離的問題,怎樣計算這個距離呢,去學習一個合適的距離。
    這個距離主要有歐氏距離,馬氏距離
    總結
    這個後面我借鑑一下一篇部落格說的吧
    在此,降維和度量學習就介紹完畢。降維是將原高維空間嵌入到一個合適的低維子空間中,接著在低維空間中進行學習任務;度量學習則是試圖去學習出一個距離度量來等效降維的效果,兩者都是為了解決維數災難帶來的諸多問題。也許大家最後心存疑惑,那kNN呢,為什麼一開頭就說了kNN演算法,但是好像和後面沒有半毛錢關係?正是因為在降維演算法中,低維子空間的維數d’通常都由人為指定,因此我們需要使用一些低開銷的學習器來選取合適的d’,kNN這傢伙懶到家了根本無心學習,在訓練階段開銷為零,測試階段也只是遍歷計算了距離,因此拿kNN來進行交叉驗證就十分有優勢了~同時降維後樣本密度增大同時距離計算變易,更為kNN來展示它獨特的十八般手藝提供了用武之地。
    如果你們有什麼疑問,可以參考這篇部落格吧。
    周志華《Machine Learning》學習筆記(12)–降維與度量學習 - VAY-長跑 - CSDN部落格 https://blog.csdn.net/u011826404/article/details/72123031

相關文章