數據挖掘篇——特徵工程之特徵降維

 在業界普遍流傳着一句話:數據和特徵決定了機器學習的上限,而模型和算法只是逼近這個上限而已。html

 因而可知,數據和特徵是多麼的重要,而在數據大多數場景下,數據已經就緒,不一樣人對於一樣的數據處理獲得的特徵卻千差萬別,最終獲得的建模效果也是高低立現。從數據到特徵這就要從特徵工程提及了...web

0. 特徵工程

    首先介紹下,特徵工程是什麼:利用數據領域的相關知識來建立可以使機器學習算法達到最佳性能的特徵的過程[1.wiki]。特徵工程是一個較大領域,它一般包括特徵構建、特徵提取和特徵選擇這三個子模塊,重要性排序:特徵構建>特徵提取>特徵選擇。
    先來介紹幾個術語:
  • 特徵構建:從原始數據中構建出特徵,有時也稱做特徵預處理,包括缺失值處理、異常值處理、無量綱化(標準化/歸一化)、啞編碼等。
  • 特徵提取:將原特徵轉換爲一組具備明顯物理意義或統計意義或核的新特徵。
  • 特徵選擇:從特徵集合中挑選一組最具統計意義的特徵子集。
    其中本文主要總結下可統一用於特徵降維的特徵提取和特徵選擇技術方法,特徵構建涉及技術點較少,下回再分解。

1. 特徵降維

WHAT:將高維空間的特徵經過刪減或變換轉爲低維空間特徵
WHY:下降時間/空間複雜度、下降提取特徵開銷、降噪、提高魯棒性、加強可解釋性、便於可視化;
HOW:主要有兩種方式,即特徵選擇和特徵提取。

1.1 特徵選擇(子集篩選):

特徵選擇方法主要分爲三種:算法

  • Filter:過濾式;按權重排序,不涉及到學習器,排序規則通常有方差法、相關係數法、互信息法、卡方檢驗法、缺失值比例法(注意受範圍影響的方法需先歸一化)[2.zhihu]
    • 方差法:計算各個特徵的方差,而後根據閾值,選擇方差大於閾值的特徵。可以使用sklearn.feature_selection庫的VarianceThreshold類來實現。
    • 缺失值比例法:計算各個特徵的缺失值比例,將缺失值比例較大的特徵過濾掉。
    • 相關係數法:計算特徵與輸出值的相關係數以及相關係數的 P值(常見的有:皮爾森相關係數用於數值特徵的線性檢驗,秩相關係數用於類別特徵的單調性檢驗)。
    • 互信息法:計算定性特徵與輸出值的相關性(運用了信息熵理論),決策樹學習中的信息增益等價於訓練數據集中類與特徵的互信息。
      •    
    • 卡方檢驗法:對於每一個特徵與輸出值,先假設獨立,再觀察實際值與理論值的誤差來肯定假設的正確性,便是否相關。
  • Embedded:嵌入式;肯定模型過程當中自動完成重要特徵挑選,基於懲罰項如嶺迴歸(L2正則)、LASSO(L1正則),基於樹模型如GBDT、決策樹[3.cnblog]
  • Wrapper:封裝式;用學習器的性能評判不一樣特徵子集的效果,特徵子集生成方式:徹底搜索(前向&後向)、啓發式搜索、隨機搜索[3.cnblog]

1.2 特徵提取(投影or轉換):

  • 線性方法[4.csdn]
    • PCA:主成分分析;理論:經過正交變換將原始的 n 維數據集變換到一個新的被稱作主成分的數據集中,變換後的結果中第一個主成分具備最大的方差值;
      • 特色:無監督,儘可能少維度保留儘可能多原始信息(均方偏差最小),指望投影維度上方差最大,不考慮類別,去相關性,零均值化,喪失可解釋性
    • ICA:獨立成分分析;將原特徵轉化爲相互獨立的份量的線性組合;PCA通常做爲ICA的預處理步驟[5.zhihu]
    • LDA:線性判別分析,有監督,儘量容易被區分(高內聚、低耦合)[6.cnblog]
    • SVD:奇異值分解,可用於PCA、推薦、潛在語義索引LSI,可並行,可解釋性不強
  • 非線性方法:
    • LLE:局部線性嵌入,非線性降維(基於圖),保持原有流行結構
    • LE:拉普拉斯特徵映射,非線性(基於圖),相互有聯繫的點儘量靠近
    • t-SNE:t分佈隨機臨近嵌入,將歐幾里得距離轉爲條件機率表達點與點之間的類似度[7.datakit]
    • AE:自動編碼器
    • 聚類

 

特徵降維方法對比先介紹到這裏,更多內容後續繼續分解~app

轉載請註明出處:數據挖掘篇——特徵工程之特徵降維http://www.javashuo.com/article/p-yymnitve-dc.html機器學習

 

參考連接:

1.wiki:https://en.wikipedia.org/wiki/Feature_engineeringpost

2.zhihu:https://www.zhihu.com/question/28641663性能

3.cnblog:http://www.javashuo.com/article/p-bzuwtdkf-bx.html學習

4.csdn:http://www.javashuo.com/article/p-cmzszhil-nd.html編碼

5.zhihu:https://www.zhihu.com/search?type=content&q=PCA%20ICAurl

6.cnblog:https://www.cnblogs.com/LeftNotEasy/archive/2011/01/08/lda-and-pca-machine-learning.html

7.datakit:http://www.datakit.cn/blog/2017/02/05/t_sne_full.html

相關文章
相關標籤/搜索