機器學習-特徵工程-細談特徵降維

Introduction

  • sklearn中的降維演算法都被包括在模塊decomposition
    • decomposition模塊為一個矩陣分解模塊
  • SVD和主成分分析PCA都屬於矩陣分解算法中的入門算法,通過分解特徵矩陣來進行降維
  • 降維(矩陣分解)的過程中追求既減少特徵的數量,又保留大量有效信息的 新特徵矩陣
    • 將帶有重複信息(特徵與特徵之間有線性相關)的特徵合併
    • 刪除無效信息(noise)的特徵
  • 如果一個特徵的方差(Variance)很大,則可以說明這個特徵帶有大量信息
  • 兩種主要的降維方法;其矩陣分解的方法不同,信息量衡量指標不同,但都涉及大量矩陣運算
    • 主成分分析(PCA)
    • 奇異值分解(SVD)
  • 通常在能進行PCA降維的情況下,不會進行特徵選擇
    • 無法使用PCA降維的情況下才會做特徵選擇

主成分分析(PCA)

  • PCA使用的信息量衡量指標,就是樣本方差(Variance);又稱可解釋性方差,其值越大,特徵所帶的信息量越多
  • 樣本方差公式如下

    • $Var$代表 一個特徵的方差
    • $n$代表樣本量
    • $x_i$代表一個特徵中的每個樣本的取值
    • $\hat{x}$代表該列樣本的均值
  • PCA本質就是將已存在的特徵進行壓縮,降維後的特徵不是原本特徵中的任何一個特徵,而是通過某些方式組合起來的新特徵

    • 新特徵矩陣生成不具有可讀性
    • 以PCA為代表的 降維方法 是屬於特徵創造(feature creation)
      • 線性模型當中,不能使用PCA
        • 通常使用特徵選擇進行降維
  • 參考http://www.taroballz.com/2018/07/06/ML_DecreaseFeature/#%E4%B8%BB%E6%88%90%E5%88%86%E5%88%86%E6%9E%90-PCA

奇異值分解(SVD)

  • 奇異值分解可以在不計算協方差矩陣等等複雜計算冗長的情況下,直接求出新特徵空間和降維後的特徵矩陣
  • SVD在矩陣分解中會比PCA簡單快速
  • SVD的信息衡量指標為奇異值 比較複雜