天天看點

機器學習中的算法-降維算法

原創文章,如需轉載請保留出處
本部落格為唐宇迪老師python資料分析與機器學習實戰課程學習筆記
           

一.資料降維

降維就是一種對高次元特征資料預處理方法。降維是将高次元的資料保留下最重要的一些特征,去除噪聲和不重要的特征,進而實作提升資料處理速度的目的。在實際的生産和應用中,降維在一定的資訊損失範圍内,可以為我們節省大量的時間和成本。降維也成為應用非常廣泛的資料預處理方法。

降維具有如下一些優點:

1) 使得資料集更易使用。

2) 降低算法的計算開銷。

3) 去除噪聲。

4) 使得結果容易了解。

降維的算法有很多,比如奇異值分解(SVD)、主成分分析(PCA)、因子分析(FA)、獨立成分分析(ICA)。

二. PCA主成分分析(Principal Component Analysis)

PCA(Principal Component Analysis),即主成分分析方法,是一種使用最廣泛的資料降維算法。PCA的主要思想是将n維特征映射到k維上,這k維是全新的正交特征也被稱為主成分,是在原有n維特征的基礎上重新構造出來的k維特征。 PCA的工作就是從原始的空間中順序地找一組互相正交的坐标軸,新的坐标軸的選擇與資料本身是密切相關的。其中,第一個新坐标軸選擇是原始資料中方差最大的方向,第二個新坐标軸選取是與第一個坐标軸正交的平面中使得方差最大的,第三個軸是與第1,2個軸正交的平面中方差最大的。依次類推,可以得到n個這樣的坐标軸。 通過這種方式獲得的新的坐标軸,我們發現,大部分方差都包含在前面k個坐标軸中,後面的坐标軸所含的方差幾乎為0。于是,我們可以忽略餘下的坐标軸,隻保留前面k個含有絕大部分方差的坐标軸。事實上,這相當于隻保留包含絕大部分方差的次元特征,而忽略包含方差幾乎為0的特征次元,實作對資料特征的降維處理。

  • 用途:降維中最常用的一種手段
  • 目标:提取最有價值的資訊(基于方差)
  • 問題:降維後的資料的意義?

三. 向量的表示及基變換

3.1 内積

  • 内積:
    機器學習中的算法-降維算法
  • 解釋:A • B = | A || B | cos(a)
  • 設向量B的模為1,則A與B的内積值等于A向B所在直線投影的矢量長度
    機器學習中的算法-降維算法
  • 向量可以表示為(3,2)

    實際上表示線性組合:

    x ( 1 , 0 ) T + y ( 0 , 1 ) T x(1,0)^{T} + y(0,1)^{T} x(1,0)T+y(0,1)T

3.2 基變換

  • 基變換

    基是正交的(即内積為0,或直覺說互相垂直)

    要求:線性無關

  • 變換:資料與一個基做内積運算,結果作為第一個新的坐标分量,然後與第二個基做内積運算,結果作為第二個新坐标的分量
  • 資料(3, 2)映射到基中坐标:
    機器學習中的算法-降維算法
  • 基變換
    機器學習中的算法-降維算法
    兩個矩陣相乘的意義是将右邊矩陣中的每一列向量變換到左邊矩陣中每一行行向量為基所表示的空間中去

四. 協方差矩陣

  • 方向:如何選擇這個方向(或者說基)才能盡量保留最多的原始資訊呢?一種直覺的看法是:希望投影後的投影值盡可能分散
  • 方差: V a r ( a ) = 1 m ∑ i = 1 m ( a i − u ) 2 Var(a) = \frac{1}{m}\sum_{i=1}^m(ai -u)^2 Var(a)=m1​∑i=1m​(ai−u)2
  • 尋找一個一維基,使得所有資料變換為這個基上的坐标表示後,方內插補點最大
  • 協方差(假設均值為0時): C o v ( a , b ) = 1 m ∑ i = 1 m a i b i Cov(a,b)=\frac{1}{m}\sum_{i=1}^maibi Cov(a,b)=m1​∑i=1m​aibi
  • 如果單純隻選擇方差最大的方向,後續方向應該會和方差最大的方向接近重合。
  • 解決方案:為了讓兩個字段盡可能表示更多的原始資訊,我們是不希望它們之間存在(線性)相關性的
  • 協方差:可以用兩個字段的協方差表示其相關性 C o v ( a , b ) = 1 m ∑ i = 1 m a i b i Cov(a,b)=\frac{1}{m}\sum_{i=1}^maibi Cov(a,b)=m1​∑i=1m​aibi
  • 當協方差為0時,表示兩個字段完全獨立。為了讓協方差為0,選擇第二個基時隻能與第一個基正交的方向上選擇。是以最終選擇的兩個方向一定是正交的。

五. 優化目标

5.1 優化目标

  • 将一組N維向量降為K維(K大于0,小于N),目标是選擇K個機關正交基,使原始資料變換到這組基上後,各字段兩兩間協方差為0,字段的方差則盡可能大
  • 協方差矩陣:
    機器學習中的算法-降維算法
  • 矩陣對角線上的兩個元素分别是兩個字段的方差,而其它元素是a和b協方差。
  • 協方差矩陣對角化:即除對角線外的其它元素化為0,并且在對角線上将元素按大小從上到下排列
  • 協方差矩陣對角化: P C P T PCP^T PCPT= Λ = ( λ 1 λ 2 ⋱ λ n ) \begin{pmatrix}λ_1 & & \\& λ_2 & \\& & \ddots \\&& & λ_n\end{pmatrix} ⎝⎜⎜⎛​λ1​​λ2​​⋱​λn​​⎠⎟⎟⎞​

5.2優化目标

  • 實對稱矩陣:一個n行n列的實對稱矩陣一定可以找到n個機關正交特征向量

    E = ( e 1 e 2 . . . e n ) E = (e_1 e_2 ... e_n) E=(e1​e2​...en​)

  • 實對稱陣可進行對角化:

    E T C E T E^TCE^T ETCET= Λ = ( λ 1 λ 2 ⋱ λ n ) \begin{pmatrix}λ_1 & & \\& λ_2 & \\& & \ddots \\&& & λ_n\end{pmatrix} ⎝⎜⎜⎛​λ1​​λ2​​⋱​λn​​⎠⎟⎟⎞​

  • 根據特征值的從大到小,将特征向量從上到下排列,則用前K行組成的矩陣乘以原始資料矩陣X,就得到了我們需要的降維後的資料矩陣Y

5.3 PCA執行個體

機器學習中的算法-降維算法

繼續閱讀