機器學習-降維

數據降維的主要方法:
投影和流形學習

投影:
高維空間的所有訓練實例實際上(或近似於)受一個低得多的低維子空間所影響
投影並不是降維的最佳方法。許多情況下,許多情況下,子空間可能會彎曲或轉動,比如
著名的瑞士捲玩具數據集
簡單地進行平面投影會直接將瑞士捲的不同層壓扁在一起。

d維流形就是n維空間的一部分,局部類似於一個d維超平面。在瑞士捲的例子中,d=2,n=3:它局部類似於一個2D平面,但是在第三個維度捲起。

流形學習:
許多降維算法是通過對訓練實例進行流形建模來實現的,這被稱爲流形學習。

PCA
主成分分析(PCA)是迄今爲止最流行的降維算法。

將訓練集投影到低維超平面之前,需要選擇正確的超平面。選擇保留最大差異性的看起來比較合理,比其他方式丟失的信息更少。
或者,比較原始數據集與其軸上的投影之間的均方距離,使這個均方距離最小的軸是最合理的選擇。
PCA流程:
在這裏插入圖片描述
例:
在這裏插入圖片描述
主成分
軸的數量與數據集維度數量相同
定義第i條軸的單位向量就叫作第i個主成分。第一個主成分是c1,第二個主成分是c2.

標準矩陣分解技術,奇異值分解
它可以將訓練集矩陣X分解成三個矩陣的點積USV,其中V包含我們想要的所有主成分

主成分矩陣
下面的python代碼使用numpy的svd()函數來獲取訓練集中所有的主成分,並提取前兩個

x_centered = x - x.mean(axis=0)
u,s,v = np.linalg.svd(x_centered)
c1 = v.T[:, 0]
c2 = v.T[:, 1]
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章