降維1
“種一棵樹最好的時間是十年前,其次是現在”
1 維數災難
在KNN中,存在一個預設的重要假設,即認為任意測試樣本 附近任意小的 距離範圍內總能找到一個訓練樣本,這就要求訓練樣本的密度必須足夠大。但在實際應用中,這個條件其實上很難滿足,假設 = 0.001,僅考慮單個屬性,則需要有1000個樣本點平均分佈在歸一化後的屬性取值範圍內,此時最近鄰分類器的錯誤率不會超過貝葉斯最優分類器錯誤率的兩倍。但若屬性維數為20,則需要 個樣本,這在現實中基本上是無法實現的。
事實上,在高維情形下出現的樣本資料稀疏、距離計算困難等問題,是所有機器學習方法共同面臨的嚴重障礙,被稱為“維數災難”。
2 降維
解決“維數災難”的一個重要途徑是“降維”,即通過某種數學變換將原始高維屬性空間轉變為一個低維“子空間”,在這個子空間中樣本密度大幅提高,距離計算也變得更為容易。
降維有什麼好處?一是提升計算效率,二是減少對樣本量的依賴,避免在樣本量有限的情況下進行過度訓練造成的過擬合。
為什麼能夠進行降維?這是因為在很多時候,人們觀測或者收集到的資料樣本雖然是高維的,但與學習任務密切相關的也許只是某個低維分佈,即高維空間中的一個低維嵌入。這就為降維的實現提供了理論上的可行性。
2.1 線性降維
一般來說,欲獲得低維子空間,最簡單的是對原始高維空間進行線性變換,給定d維空間中的m個樣本 ,變換之後得到 維空間中的樣本 , 為變換矩陣, 為樣本在新空間中的表達。
變換矩陣W可以看作是 個d維基向量, 是原始第 個樣本與這 個基向量分別做內積得到的 維屬性向量。新空間中的屬性是原空間中屬性的線性組合。換言之, 是原始向量 對映到新座標系 後得到的新的座標向量。若 與 正交,則新座標系為正交座標系,此時W為正交變換。
基於線性變化來進行降維的方法稱之為線性降維方法,都符合 的形式,不同之處是對低維子空間的性質有不同的要求,相當於對W施加了不同的約束。
對降維效果進行評估,通常是比較降維前後學習器的效能,若效能有所提升則認為降維起到了效果。若將維數降到了二維或三維,則可通過視覺化技術來直觀地判斷降維效果。
2.1.1 多維縮放
多維縮放(Multiple Dimensional Scaling,MDS),要求原始空間中樣本間的距離在低維空間得以保持。
假定原始 個 維樣本的距離矩陣為 ,其第 行第 列的元素 表示樣本 和 之間的距離。我們的目的是獲得 個樣本在 維空間中的表示 ,且任意兩個樣本之間的距離與原始空間中的距離保持一致,即 。
降維後的樣本
的內積矩陣為
,
。因為