特徵工程三部曲 (1)特徵選擇

2021-09-26 14:31:53 字數 3300 閱讀 5537

特徵質量的好壞,直接影響到最終的模型結果。構建特徵是乙個很大的工程,總體來講包括 「特徵選擇」、「特徵表達本篇文章,我們討論一下特徵選擇。特徵選擇指的是,在全部的特徵中,挑選出對最終的機器學習任務有用的特徵。

整體來講,從特徵選擇的過程中有沒有模型的參與,可以將特徵選擇的方法分為:基於統計量的選擇和基於模型的選擇

(在本文的討論中,預設所有的特徵取值已經去除量綱的影響,或者說已經做過歸一化處理。)

如果把每個特徵看做乙個隨機變數,在不同的樣本點處該隨機變數可能會取到不同的值。可以用統計的方法,基於樣本集的統計結果,對特徵做出選擇。

選擇特徵的標準主要有兩個,一是特徵本身取值的分散程度;二是該特徵與要**的結果之間的相關程度。

常用的四個統計量和方法包括方差、相關係數、假設檢驗和互資訊,下面依次說明。

方差衡量的是乙個隨機變數取值的分散程度。如果乙個隨機變數的方差非常小,那這個變數作為輸入,是很難對輸出有什麼影響的。因此在進行特徵選擇時,可以丟棄那些方差特別小的特徵。

例子:

如果你手上有 5 個 offer,年收入水平分別是 100 萬、100.01 萬、100.02 萬、100.03 萬和 100.04 萬,我想你最終會選擇哪個 offer,年收入這個因素基本對你沒太大影響吧。

相關係數取值在 - 1 到 1 之間,表徵的是兩個隨機變數之間的線性相關關係。相關係數為 0,表明兩個變數之間線性無關;相關係數大於 0,說明兩個變數之間是正相關;相關係數小於 0,代表兩個變數之間負相關。

特徵與輸出的相關係數的絕對值越大,說明對輸出的影響越大,應該優先選擇。

例子:

1. 收入和學歷有關係嗎?高學歷完全不能保證高收入。但從統計總體來看,學歷較高,收入也會相對較高。如果要你對乙個陌生人的收入做**,那麼學歷肯定是要關注的因素之一。

2. 健康狀況和吸菸多少有關係嗎?我想,絕大多數人會認同,吸菸對健康是負相關,即有害的。

3. 個人成功和家庭背景有關係嗎?「當然沒有」,前總理的女兒曾說過,「能力之外的資本等於 0」!

假設檢驗是一種統計推斷方法,簡單來說就是先做乙個假設,然後再基於某個量來判斷該假設是否成立。比如,可以假設某個特徵和輸出是有顯著相關性的,如果假設成立,即選擇該特徵;反之,丟棄該特徵。

例子:

淑女品茶是乙個有關假設檢驗的著名例子,這裡換一下描述。

你當然不信,所以你的假設是他沒有這種判斷能力。

檢驗方式是,給他 10 杯咖啡,不告訴他製作過程,讓他通過喝來判斷。設他判斷正確的杯數為 n,如果 n 超過了 9,你可能就要拒絕當初的假設了,他可能真的有這個能力。

互資訊,也叫資訊增益。用過決策樹模型的同學,對這個應該都不陌生。

簡單來說,如果乙個系統的資訊熵為 a,在某乙個特徵的已知的情況下,系統的資訊熵變成 b,則資訊增益為 a-b。

互資訊越大,證明這個資訊對系統的分類越有幫助,相應的特徵應優先選擇。

(決策樹用於回歸問題時,互資訊最大的標準變成了平方誤差損失最小)

咦?不是說基於統計量的方法嗎,怎麼這裡用到樹模型了?

決策樹模型分為樹的生成和樹的剪枝兩個階段,在樹的生成階段採用的是貪心策略,可以看做是基於統計量的。而 「模型學習」 的過程,更多的是樹的剪枝。

當然,如果把這種方法看做是基於模型的特徵選擇,也完全沒有問題。

基於模型的特徵選擇,可以直接根據模型引數來選擇,也可用子集選擇的思路選出特徵的最優組合。

對具有線性結構的模型,如線性模型(如 linear regression)和對數線性模型(logistic regression,最大熵、線性鏈條件隨機場等)等,都可以直接根據權重引數的大小來衡量對應特徵的重要程度。

因為模型的線性結構,某個維度上的特徵如果對應的引數絕對值大,這個維度的特徵就相對重要;反之,引數絕對值小,則特徵相對不重要。

對基於樹結構的模型,如決策樹、梯度提公升樹、隨機森林和 xgboost 等,每一顆樹的生成過程,都對應了乙個特徵選擇的過程。如上面關於資訊增益一段的描述,可以對模型中涉及的樹求平均,來表示特徵的重要程度。與其他模型比,樹模型的方差較大,因此選出來的特徵也相對更不穩定。

因此,用樹模型選擇特徵時,建議綜合多次的模型訓練結果。

如果我們想要得到稀疏特徵或者說是對特徵進行降維,可以在模型上主動使用正則化技術。使用 l1 正則,調整正則項的權重,基本可以得到任意維度的稀疏特徵。

基於模型,我們也可以用子集選擇的思路來選取特徵。假設特徵的維度為 n,要從中選出 n 個(n < n)特徵,目標是讓模型在選出的特徵上效果最好。顯然,n 可以取不超過 n 的任意整數值,這就帶來了組合**的問題,總共要考慮的情況多到無法計算。解決組合**問題,最常用的思路就是貪心策略(比如,決策樹的生成過程中要選擇切分特徵和切分點,也是組合**問題),常見的有前向搜尋和反向搜尋兩種思路。

前向搜尋::如果我們先從 n 個特徵中選出乙個最好的特徵,然後讓其餘的 n-1 個特徵分別與第一次選出的特徵進行組合,從 n-1 個二元特徵組合中選出最優組合。之後,再次在上次的基礎上,新增乙個新的特徵,考慮 3 個特徵的組合。這種思路有很多種叫法,可以被稱為 「遞迴式特徵新增」、「前向搜尋」 或「自下向上的搜尋」等。

反向搜尋:反之,如果我們的目標是每次從已有特徵中去掉乙個特徵,並從這些組合中選出最優組合。可以稱為 「遞迴式特徵消除」、「反向搜尋」 或「自上向下的搜尋」等。

顯然,子集選擇是需要很大的計算量的,因為每種特徵組合都要用模型訓練一遍。因此,這種方法基本不適合大規模使用,可以用於最後的精挑細選。

本文從基於統計量和基於模型兩個角度,籠統地介紹了特徵選擇的各種方法和思路。

基於統計量的特徵選擇,因為沒有模型的參與,計算起來相對簡單,可以作為乙個特徵預處理的過程;

基於模型的方法,要對模型引數進行學習,因此計算量相對較大,但也更接近於最終目標,即可以訓練出乙個泛化能力很好的模型。

因此,這兩種方法可以結合起來使用。

《特徵工程三部曲》之二 特徵選擇

特徵選擇能剔除不相關 irrelevant 或亢餘 redundant 的特徵,從而達到減少特徵個數,提高模型精確度,減少執行時間的目的。另一方面,選取出真正相關的特徵簡化了模型,使研究人員易於理解資料產生的過程。資料預處理完成之後,我們需要選擇有意義的特徵,輸入機器學習的演算法和模型進行訓練,通常...

《特徵工程三部曲》之三 維度壓縮

當特徵選擇完成之後,就可以直接訓練模型了,但是可能由於特徵矩陣過大導致計算量大,訓練時間長的問題 因此,降低特徵矩陣維度,也是必不可少的,主成分分析就是最常用的降維方法,在減少資料集的維度的同時,保持對方差貢獻最大的特徵,在sklearn中,我們使用pca類進行主成分分析。我們人類能看到的資料是三維...

《特徵工程三部曲》之三 維度壓縮

1 pca 更夠保持對方差貢獻最大的特徵。1 最近重構性 樣本到這個超平面的距離都足夠近 2 最大可分性 樣本點到這個超平面的投影都能盡可能的分開 2 svd 奇異值分解 矩陣分解方法 左奇異向量用於壓縮行,右奇異向量壓縮列,壓縮方法均是取奇異值較大的左奇異向量和右奇異向量與原資料c相乘。pca 是...