Ⅰ 特徵選擇的Filter過濾法
1.1 當數據預處理完成之後,接下來就是特徵工程部分,特徵工程包括了特徵的提取,特徵創造,特徵選擇。
特徵提取(feature extraction):從文字、圖像、聲音等其他非結構化數據只能怪提取新信息作為特徵,比如說從淘寶的商品名稱中提取產品類別,產品顏色,是否是網上產品等。
特徵創造(feature creation):把現有的特徵進行組合,或是相互計算得到新的特徵。比如說我們有一列特徵是速度,一列特徵距離,通過兩特徵相除,創造新特徵:通過距離所花的時間。
特徵選擇(feature selection):從所有的特徵中選擇出有意義的,對模型有幫助的特徵,避免將所有特徵都導入模型中去訓練。
下面只講特徵選擇,特徵選擇有四種方法:過濾法,嵌入法,包裝法,和降維演算法。
1.2 Filter過濾法
過濾法通常用作預處理的步驟,特徵選擇完全獨立於任何的機器學習演算法,它是根據各種統計檢驗中的分數以及相關性的各項指標來選擇特徵的。
1.3 VarianceThreshold
VarianceThreshold是通過特徵本身的方差來篩選特徵的類。比如一個特徵本身的方差很小,就表示樣本在這個特徵上基本沒有差異,可能特徵中的大多數值都一樣,甚至整個特徵的取值都相同,那這個特徵對於樣本區分沒有什麼作用,所以 無論接下來的特徵工程要做什麼,都要優先消除方差為0的特徵 。VarianceThreshold重要參數threshold,表示方差的閾值,表示舍棄所有方差小於threshold的特徵,不填默認為0,即刪除所有記錄都相同的特徵。
可以看見,已經刪除了方差為0的特徵,但是依然剩390多個特徵,明顯還需要進一步的特徵選擇,如果我們知道我們需要多少個特徵,方差也可以幫助我們將特徵選擇一步到位。比如說,我們希望留下一半的特徵,那可以設定一個讓特徵總數減半的方差閾值,只要找到特徵方差的中位數,再將這個中位數作為參數threshold的值輸入就好了
使用的方差閾值是特徵方差的中位數,因此屬於閾值比較大,過濾掉的特徵比較多的情況。我們可以觀察到,如果在過濾掉一半特徵之後,模型的精確度上升了。這說明被我們過濾掉的特徵在當前隨機模式(random_state = 0)下大部分是噪音。那我們就可以保留這個去掉了一半特徵的數據,來為之後的特徵選擇做准備。當然,如果過濾之後模型的效果反而變差了,我們就可以認為,被我們過濾掉的特徵中有很多都有有效特徵,那我們就放棄過濾,使用其他手段來進行特徵選擇。
1.4 方差過濾對模型的影響
最近鄰演算法KNN,單棵決策樹,支持向量機SVM,神經網路,回歸演算法,都需要遍歷特徵或升維來進行運算,所以它們本身的運算量就很大,需要的時間就很長,因此方差過濾這樣的特徵選擇對他們來說就尤為重要。但對於不需要遍歷特徵的演算法,比如隨機森林,它隨機選取特徵進行分枝,本身運算就非常快速,因此特徵選擇對它來說效果平平。這其實很容易理解,無論過濾法如何降低特徵的數量,隨機森林也只會選取固定數量的特徵來建模;而最近鄰演算法就不同了,特徵越少,距離計算的維度就越少,模型明顯會隨著特徵的減少變得輕量。因此,過濾法的主要對象是:需要遍歷特徵或升維的演算法,而過濾法的主要目的是:在維持演算法表現的前提下,幫助演算法降低計算成本。
1.5 過濾法對隨機森林無效,卻對樹模型有效?
從演算法原理上來說,傳統決策樹需要遍歷所有特徵,計算不純度後進行分枝,而隨機森林卻是隨機選擇特徵進行計算和分枝,因此隨機森林的運算更快,過濾法對隨機森林無用,對決策樹卻有用。在sklearn中,決策樹和隨機森林都是隨機選擇特徵進行分枝,但決策樹在建模過程中隨機抽取的特徵數目卻遠遠超過隨機森林當中每棵樹隨機抽取的特徵數目(比如說對於這個400維的數據,隨機森林每棵樹只會抽取10~20個特徵,而決策樹可能會抽取100~200個特徵),因此,過濾法對隨機森林無用,卻對決策樹有用也因此,在sklearn中,隨機森林中的每棵樹都比單獨的一棵決策樹簡單得多,高維數據下的隨機森林的計算比決策樹快很多。
Ⅱ 2019-03-07
特徵選擇的原因: 1)屬性過多易造成維數災難,僅選擇重要特徵構建模型則能減輕該問題;2)去除不相關特徵能降低學習任務的難度。
冗餘特徵:所包含的信息能從其他特徵中推演出來。eg已知立方體底面長和寬,則底面積是冗餘特徵,但作為學習任務「中間概念」時能加速運算,例如計算立方體體積,知道底面積能加速運算。
欲從初始特徵集合中選取一個包含所有重要信息的特徵子集,一般包含兩個環節: 子集搜索 與 子集評價 。
1.子集搜索一般分為前向搜索、後向搜索和雙向搜索 。
前向搜索 :給定特徵集合 ,將每個特徵看做一個候選子集,對這d個候選單特徵子集進行評價,假定 最優,將 作為第一輪的選定集;然後,在上一輪的選定集中加入一個特徵,構成包含兩個特徵的候選子集,假定在這d-1候選子集中 最優,且優於 ,將 做為本輪的選定集,假定在低k+1輪時,最優的候選(k+1)特徵子集不如上一輪的選定集,停止。
後向搜索 :類似前向搜索,但從完整的特徵集合開始,每次嘗試去掉一個無關特徵,逐漸減少特徵的過程。
雙向搜索 :將前向與後向搜索結合起來,每一輪逐漸增加選定相關特徵(這些特徵在後續輪中將確定不會被去除)、同時減少無關特徵。
顯然上述策略都是貪心的,因為僅考慮了使本輪選定集最優。
2.子集評價
特徵子集A實際上確定了敗旅中對數據集D的一個劃分,這個劃分與真實劃分的差異越小,說明A越好。可通過信息熵判斷這個差異。
給定數據集D,假定D中第i類樣本所佔的比例為 。對於屬性子集A,假定根據其取值將D分成了V個子集 ,每個子集的樣本在A上取值相同,於是我們可計算屬性子集A的信息增益: 信息增益越大,則特徵子集包含的有助於分類的信息越多。
過濾式方法先對數據集進行特徵選擇,然後再訓練學習器,特徵選擇與訓練學習器過程無關。
Relief是一種著名的過濾察山式特徵選擇方法,它設計了一個「相關統計量」來度量特徵重要性。對每個示例 ,relief先在其同類樣本中找最近鄰 (猜中近鄰),再從其異類樣本中找最近鄰 (猜錯近鄰),則相關統計量對應屬性j的分量為:
最後對基於不同樣本的估計結果進行平均,得到各屬性的相關統計量分量,分量值越大,對應屬性的分類能力越強。多分類Relief相較二分類有多個猜錯近鄰,計算公式為:
Relief只需在數據集的采樣上而不必在整個數據集上估計相關統計量,是一種高效的過濾式特徵選擇方法。
包裹式選擇的目的是為給定學習器選擇最有利於其性能、「量身定做」的特徵子集。代表演算法LVW是在拉斯維加斯方法框架下使用隨機策略進行子集搜索,並以最終分類器的誤差為特徵子集評價准則。
嵌入式特徵選擇是將特徵選擇過程與學習器訓練過程融為一體,在學習器訓練過程中自動進行特徵選擇。例如對線性回歸模型的優化目標函數添加L1正則項:
LASSO:
L1正則化有助於防止過擬合,常見的L2正則化也可實現這一目的:
嶺回歸:
L1范數會趨向產生少量的特徵(稀疏解),其求得的w會有更少的非零分量;L2會選擇更多的特徵,這些特徵的權值都會接近於0。因此L1范數在特徵選擇上就十分有用,而L2范數則具備較強的控制過擬合能力。可以從下面兩個方面來理解:
(1) 下降速度 :L1范數按照絕對值函數來下降,L2范數按照二次函數來下降。因此在0附近,L1范數的下降速度大於L2范數,故L1范數能很快地下降到0,而L2范數在0附近的下降速度非常慢,因此較大可能收斂在0的附近。
2) 空間限制 :L1范數與L2范數都試圖在最小化損失函數的同時,讓權值W也盡可能地小。假定x僅有兩個屬性,於是無論嶺回歸還是LASSO接觸的w都只有兩個分量,即w1,w2,我們將其作為兩個鎮如坐標軸,然後在圖中繪制出兩個式子的第一項的」等值線」。
將數據集D看成一個矩陣,每行對應於一個樣本,每列對應一個特徵,考慮特徵具有稀疏性,則通過特徵選擇去除這些列,就得到了一個稀疏矩陣;數據的另一種稀疏性是指D中存在很多0元素,且並不是以整行整列的形式存在。
當樣本具有這樣的稀疏表達形式時,對學習任務有不少好處,例如使大多數問題線性可分,且不會造成存儲上的巨大負擔。
字典學習(稀疏編碼) :為普通稠密表達的樣本找到合適的字典,將樣本轉化為合適的稀疏表達形式從而使學習任務得以簡化,模型復雜度得以降低。
採用變數交替優化的策略求解上式:1)確定映射字典的詞彙量 k,並初始化字典 B,d*k,其中 d 為樣本屬性數;2)固定住字典 B,求得樣本集 X 通過字典映射後的稀疏表示 ;3)固定住 來更新字典 B;4)反復第2)、3)步,最終可得合適的字典 B 和樣本 X 的稀疏表示 。
不同於特徵選擇和稀疏表示,壓縮感知關注的是如何利用信號本身所具有的稀疏性,從部分觀測樣本中恢復原信號。能通過壓縮感知技術恢復欠采樣信號的前提之一是信號有稀疏表示。壓縮感知一般分為「感知測量」和「重構恢復」兩個階段。 感知測量 關注如何對原始信號進行處理以獲得稀疏樣本表示,eg傅里葉變換、小波變換、字典學習、稀疏編碼等; 重構恢復 關注如何基於稀疏性從少量觀測中恢復原信號。
https://blog.csdn.net/u011826404/article/details/72860607
Ⅲ 特徵選擇與特徵子集(一)
前言:本系列博客將介紹特徵選擇一系列相關的內容。
本節我們先簡介特徵工程中的三個組成部分。
特徵工程一般由特徵構建,特徵提取,特徵選擇三個部分組成。
特徵工程的思維導圖如下:
來源
先約定一些符號:
設 是一個含有 個樣本 個特徵的數據集。
其中 為樣本, 為樣本 的標簽。 是 個特徵的集合。
表示第 個樣本的第 個特徵上的值。
表示集合含有元素的個數,當 為離散特徵時, 的取值集合 為 , 為特徵 含元素個數。
對於某一個特徵 ,肢廳有 。
樣本空間構成的矩陣如下:
特徵構建是指從原始特徵中推斷或構建出新的特徵。
在我們的原始樣本空間中, 有 個特徵,通過特徵構建,從原始 個特徵中推斷或者構建出了 個新特徵,新的樣本空間特徵集為 ,有了 個特徵了。
我們先看一個簡單的例子,就以學生成績來看吧。
這是一個常見的學生成績表,有著最基本的信息。但是我們知道,在實際老師發給我們的成績表裡面內,有著各種各樣的數據,相信學生時代的大家應該深有體會。
就舉些常見的「參數」吧,統計各分數段人數,學生總分排名,單科成績排名,理綜排名,每科進步幅度排名等等。這些參數或者說特徵都是在原有表的基礎上構建的,有的是一個特徵演變來的,有的是由若干個特徵構建的。
特徵構建的常用方法有屬性分割與屬性組合。屬性分割就是將一個屬性分解或者切分,例如學生成績表中統計各分數段人數。屬性組合就是多個屬性通過組合構建出新的屬性,例如理綜成績排名。
從這里可以看出特徵構建是一個升維的過程,即原始樣本空間的維度增加了。
和特徵構建不同的是,特徵提取和特徵選擇都是數據降維。
數據降維主要考慮數據的相關度和數據的冗餘度。
數據的相關度是指數據所包含的信息對判斷樣本所屬類別的貢獻度,而數據的冗餘度指的是不同維數的數據攜帶的相似信息。具有高相關度的數據特徵一定程度上是冗餘的,會造成分類性能的惡化。我們的目標是得到一個具有最大相關性和最小冗餘度的數據特徵信息的樣本。
數據降維都會使原有樣本空間由 個特徵變為 個特徵。
特徵提取將原始特徵轉換為新的具有明顯物理意義或者統計意義或核的特徵的過程,它把原始空間的樣本通過線性或者非線性映射轉化得到少量但具有更好表達能力的新特徵,從而達到降維的目的。
還是以上面學生成績為例,如果我們只想使用少量的指標就能知道學生成績的所有信息,那麼我們可以使用學生各科的成績之和等少數幾個指標來代表所有的學生成績信息。
該過程可以視為特徵提取。
特徵提取的主要方法有
特徵選擇是在保持數據原樣本的基礎上進行約減,即降低特徵維數。特徵選擇就是為了篩選出那些對於分類來說最相關的特徵,並且去除那些對於分類冗餘的和不相關的特徵。其實質是尋求一個原始數據樣本空間的最優字空間,其中包含最少的樣本特徵數目並且能夠將原始的樣本很好地表達出來,是一個降維的過程。
以西瓜數據集為例
在一系列特徵中,我們需要找到那些影響西瓜好壞與否的主要特歷悔隱征,而這只有特徵選擇才可以做到。這裡面有很多的方法,之後會說到。
特徵選擇的流程如下:
1.子集生成:按照一定的搜索策略查找候選特徵子集
2.子集評價:構建評價函數評估特徵子集的優劣
3.停止准則:設定評估函數的閾值,決定特徵選擇演算法什麼時候停止
4.結果驗證:在測試集上驗證最終所選特徵子集的有效性
根據於學習演算法的關系,特徵選擇可劃分為三類方式:過濾式(Filter)方式,封裝式(Wrapper)方法和嵌入式(Embedded)方法。
本節我們簡單介紹了特徵工程中的前脊三個部分,特徵構建,特徵提取,特徵選擇,之後我們將重點介紹特徵選擇。
Ⅳ 包裹式特徵選擇會受冗餘影響嗎
在機器學習中,特徵往往對模型整體表現的影響非常大。而現實問題中,特徵數量往往會非常大,而處理龐大的特徵往往比較困難,所以就有了各種的降維方法。
降維的方法主要分為特徵抽取 (Feature Extraction) 和特徵選擇 (Feature Selection) 兩種。
特徵抽取是指在原來特徵的基礎上,形成新的特徵。抽取後的新特徵是原來特徵的一個映射。經典的特徵抽取方法有主成分分析和線性評判分析。但是特徵抽取後的新特徵的空間結構被改變,因此無法進行後續預測模型的建立。
特徵選擇是指直接刪除不相關且冗餘的特徵,保留原始數據最有價值的信息,形成一 個最優的特徵子集,特徵本身並沒有被改變。依據特徵選擇和學習器的不同結合方式,特徵選擇方法可以分為三類:過濾法,包裝法和嵌入法。
這里我們將關注特徵選擇的方法, 據特徵選擇和學習器的不同結合方式,特徵選擇方法可以分為三類:過濾法,包裝法,嵌入法。
(1)過濾式(filter)。過濾式特徵選擇方法可以分為兩種:基於特徵排序的過濾式特徵選擇和基於搜索策略的過濾式特徵選擇。基於特徵排序的過濾式特徵選擇是指使用相關 性指標對各個特徵進行評分,選擇分數越大的特徵越有價值。常用的過濾式特徵選擇方法 有方差選擇法、卡方檢驗法、皮爾森相關系數法、互信息系數法。基於搜索策略的過濾式 特徵選擇與前者不同的是會使用啟發式搜索策略來對特徵子集進行評價,且擁有獨特的評 價准則來衡量已選的特徵子集。常用方法有基於姿冊皮相關性的特徵選擇方法(CFS)。
如下圖為基於特徵排序的過濾式特徵選擇
如下圖為基於搜索策略的過濾式特徵選擇
(2)包裹式(wrapper)。包裹式特徵選擇從初始特徵集合中不斷的選擇特徵子集,訓練學習器,然後根據學習器的性能來對子集進行評價,直到選擇出最佳的子集。常用的包裹式特徵選擇方法有遞歸特徵消除。但是包裹式特徵選擇由於特徵子集受特定的學習演算法影響比較大,容易出現「過擬合」,並且使用不同的學習演算法,得到的特徵子集也不同, 所以獲得的特徵子集的穩定性和適應性較差。
(3)嵌入式(embedding)。在模型既定的情況下學習出對提高模型准確性最好的屬
性。嵌入式跡差特徵選擇演算法嵌入在學習演算法當中,當演算法訓練過程結束就可以得到特徵子集。 常用的嵌入式特徵選擇方法有嶺回歸。
二.基於相關性的特徵選擇方法CFS
1.CFS特徵選擇原則
本文在進行特徵選擇時,主要遵循如下 3 個原則:
(1)發散性。特徵自身的取值要有變化。當一個特徵的取值波動很小,說明該特徵 的取值很穩定,可以近似理解成該特徵的每個值都接近,這樣的特徵對模型是沒有任何效果。
(2)相關性。特徵與目標之間的相關性越大,特徵越能體現、代表目標。
(3)獨立性。特徵與特徵之間相互獨立。
2.CFS特徵選擇原理
基於相關性的特徵選擇方法(CFS)是基於搜索姿盯策略的過濾式特徵選擇方法中最經典的方法。該方法的核心是基於相關性的評估函數來評估特徵子集的價值。如果特徵子集中各個特徵和目標之間具有較強的關聯性,並且特徵彼此之間具有較弱的關聯性,那麼這 個特徵子集在評估函數中的表現就更好,更容易被評估函數選中。
3.CFS特徵選擇步驟
(1)連續變數離散化
在該方法中,通常假定所有變數是離散變數,然而有時候處理的操作數據是連續變數, 因此我們需要把連續變數離散化。在這里我們採用等寬離散法。等寬法是最簡單的無監督離散化方法,指將連續變數的取值空間等分為多個取值區間。即將連續變數的值域{ X m i n , X m a x X_{min},X_{max} Xmin,Xmax}劃分為n個區間,使得每個區間的寬度都相等。
區間的寬度為:
d = X m a x − X m i n n d = \frac{X_{max}-X_{min}}{n} d=nXmax−Xmin
變數 x i x_i xi對應的區間為:
m = x i − X m i n d m = \frac{x_i-X_{min}}{d} m=dxi−Xmin
(2) 計算對稱不確定性(Symmetric Uncertainty,SU)
S U = 2 ∗ H ( X ) + H ( Y ) − H ( X , Y ) H ( X ) + H ( Y ) SU = 2* \frac{H(X)+H(Y)- H(X,Y)}{H(X)+H(Y)} SU=2∗H(X)+H(Y)H(X)+H(Y)−H(X,Y)
其中, H ( X ) 為 X 的 熵 , H ( X , Y ) 為 X 和 Y 的 聯 合 熵 H(X) 為X的熵,H(X,Y)為X和Y的聯合熵 H(X)為X的熵,H(X,Y)為X和Y的聯合熵。
具體熵和聯合熵的含義可以參考https://blog.csdn.net/weixin_44467105/article/details/111059530
(3)計算特徵評估指標Merits
通過引入特徵估計指標 M e r i t s Merits Merits 來選擇和目標相關性更強並且和其他特徵相關性更弱的特徵作為較好的特徵:
M e r i t s = k ∗ r ˉ c f k + k ( k − 1 ) r ˉ f f Merits = \frac{k*\bar{r}_{cf}}{\sqrt{k+k(k-1)\bar{r}_{ff}}} Merits=k+k(k−1)rˉffk∗rˉcf
其中, r ˉ f f \bar{r}_{ff} rˉff是候選特徵與其它特徵之間的平均相關性(這里是指對稱不確定性SU), r ˉ c f \bar{r}_{cf} rˉcf是候選特徵與類之間的平均相關性。
CFS 首先從訓練集中計算特徵目標和特徵-特徵相關矩陣即SU,然後用最佳優先搜索(best first search)搜索特徵子集空間。開始時沒有特徵選擇,並產生了所有可能的單個特徵;計算特徵的評估值,並選擇Merit 值最大的一個特徵進入 M,然 後選擇第二個擁有最大的Merit 值的特徵進入 M,如果這兩個特徵的Merit 值小於原來的 Merit 值,則去除這個第二個最大的Merit 值的特徵,然後在進行下一個,這樣依次遞進, 直到找出指定個使Merit 最大的特徵組合。CFS採用的是一種貪心演算法。
機器學習
演算法
python
人工智慧
數據挖掘
江鈴全順6座
精選推薦
廣告
Ⅳ CFS的特徵選擇演算法
基於關聯規則的特徵選擇演算法(correlation-based feature selection),是一種經典的過濾器模式的特徵選擇方法。源自論文「correlation-based feature selection for discrete and numeric class machine learning」,啟發地對單一特徵 對應於每個分類的作用進行評價,從而得到最終的特徵子集。特別地,特徵必須是離散的隨機變數,如果是數值型變數,需要首先執行指導的離散化方法來進行離散化特徵。
Ⅵ 特徵工程到底是什麼
在嵌入式特徵選擇中,特徵選擇演算法本身作為組成部分嵌入到學習演算法里。最典型的即決策樹演算法,如ID3、C4.5以及CART演算法等,決策樹演算法在樹增長過程的每個遞歸步都必須選擇一個特徵,將樣本集劃分成較小的子集,選擇特徵的依據通常是劃分後子節點的純度,劃分後子節點越純,則說明劃分效果越好,可見決策樹生成的過程也就是特徵選擇的過程。過濾式特徵選擇的評價標准從數據集本身的內在性質獲得,與特定的學習演算法無關,因此具有較好的通用性。通常選擇和類別相關度大的特徵或者特徵子集。過濾式特徵選擇的研究者認為,相關度較大的特徵或者特徵子集會在分類器上可以獲得較高的准確率。過濾式特徵選擇的評價標准分為四種,即距離度量、信息度量、關聯度度量以及一致性度量。
Ⅶ 特徵選擇的相關性過濾
我們希望選出與標簽有關且有意義的特徵,因為這樣的特徵攜帶更多的信息,如果特徵與標簽無關,只會浪費計算內存,可能還會給模型帶來雜訊,在sklearn中有三種常用的方法來評判特徵與標簽之間的相關性:卡方,F檢驗,互信息
1.1卡方過濾
卡方過濾是專門針對離散型標簽(即分類問題)的相關性過濾,卡方檢驗類feature_selection.chi2計算每個非負特徵與標簽之間的卡方統計量,並依照卡方統計量由高到低為特徵排名,再結合feature_selection.SelectKBest這個可以輸入「評分標准」來選出前K個分數最高的特徵的類,我們可以藉此除去最可能獨立於標簽,與我們分類目的無關的特徵。
另外,如果卡方檢查中檢測到某個特徵中所有的值都相同,會提示我們先使用方差過濾。
1.2 K參數的選取
實際中的數據量會很大,模型很復雜的時候也許不允許我們先跑一遍模型看看效果,而是希望最開始就能選擇一個最優的超參數K,可以使用學習曲線。
通過這條曲線,我們可以觀察到,隨著K值的不斷增加,模型的表現不斷上升,這說明,K越大越好,數據中所有的特徵都是與標簽相關的。但是運行這條曲線的時間同樣也是非常地長,接下來說一種更好的選擇k的方法:看p值選擇k
卡方檢驗的本質是推測兩組數據之間的差異,其檢驗的原假設是「兩組數據是相互獨立的」。卡方檢驗返回卡方值和P值兩個統計量,其中卡方值很難界定有效的范圍,而p值,我們一般使用0.01或0.05作為顯著性水平,即p值判斷邊界,具體如表格所示
從特徵工程的角度,我們希望獲取卡方值很大,p值小於0.05的特徵,即和標簽是相關聯的特徵,而調用SelectKBest之前,我們可以直接從chi2實例化後的模型中獲得各個特徵所對應的卡方值和p值。
1.3 F檢驗
F檢驗,又稱ANOVA,方差齊性檢驗,是用來捕捉每個特徵與標簽之間的線性關系的過濾方法,它即可以做回歸也可以做分類,因此包含feature_selection.f_classif(F檢驗分類)和feature_selection.f_regression(F檢驗回歸)兩個類,其中F檢驗分類用於標簽是離散型變數的數據,而F檢驗回歸則用於標簽是連續性變數的數據。
和卡方檢驗一樣,這兩個類都需要和SelectKBest連用,並且我們也可以直接通過輸出的統計量來判斷我們到底要設置多大的K值。F檢驗在數據服從正態分布是效果會非常穩定,因此如果使用F檢驗過濾,我們會先將數據轉化成正態分布的方式。
F檢驗的本質是尋找兩組數據之間的線性關系,其原假設是「數據不存在顯著的線性關系」,它返回F值和P值兩個統計量,和卡方過濾一樣,我們希望選取P值小於0.05或是0.01的特徵,這些特徵與標簽是顯著線性相關的,而P值大於0.05或是0.01的特徵被 我們認為是與標簽沒有顯著線性關系的特徵,應該被刪除,以F檢驗的分類為例,在數字數據集上進行特徵選擇。
k=300,跟原特徵數一樣,說明沒有任何的特徵的p值大於0.01,所有的特徵都是與標簽相關的,因此不需要相關性過濾。
1.4 互信息法
互信息法是用來捕捉每個特徵與標簽之間的任意關系(線性關系和非線性關系)的過濾方法,跟F檢驗一樣,可以做回歸也可以做分類,並且包含兩個類feature_selection.mutual_info_classif和feature_selection.mutual_info_regression(互信息回歸),這兩個類的用法和參數都和F檢驗一模一樣,不過互信息法比F檢驗更加強大,F檢驗只能夠找出線性關系,而互信息法可以找出任意關系。
1.5 過濾法總結
通常來說,會先使用方差過濾,然後使用互信息法來捕捉相關性,不過了解各種各樣的過濾方式也是必要的。所有信息被總結在下表:
Ⅷ 方差對於特徵選擇上的作用
特徵選擇的意義
在對數據進行異常值、缺失值、數據轉換等處理後,我們需要從當前數據集中選出有意義的特徵,然後輸入到演算法模型中進行訓練。
對數據集進行特徵選擇主要基於以下幾方面的考慮:
1.冗餘的特徵會影響阻礙模型找尋數據潛在的規律,若冗餘的特徵過多,還會造成維度容災,佔用大量的時間空間,使演算法運行效率大打折扣。
2.去除不相關的特徵會降低學習任務的難度,保留關鍵的特徵更能直觀的看出數據潛在的規律。
那麼,該如何進行特徵選擇呢?通常,要從兩方面考慮來選擇特徵:
1.特徵是否具有發散性:
如果一個特徵不發散,例如方差接近於0,也就是說樣本在這個特徵上基本上沒有差異,這個特徵對於樣本的區分並沒有什麼用。
2.特徵與目標的相關性:
如果一個特徵不發散,例如方差接近於0,也就是說樣本在這個特徵上基本上沒有差異,這個特徵對於樣本的區分並沒有什麼用。
根據特徵選擇的標准,又能分為filter、wrapper、embedded三種方法。
Filter方法
過濾法的主要思想是查看特徵的發散性和特徵與目標的相關性,通過設定閾值的方法,過濾發散性低、相關性不強的特徵。
過濾法先對數據集進行特徵選擇,然後再訓練學習器,特徵選擇過程與後續學習器無關,即先選好特徵,再用過濾後的特徵來訓練模型。
具體來說,有:
1.方差法
使用方差法,要先計算各個特徵的方差,然後根據閾值,選擇方差大於閾值的特徵。若特徵的方差小於閾值,則代表該特徵的發散性太弱。
2.Pearson系數
Pearson相關系數是用協方差除以兩個變數的標准差得到的。皮爾遜系數只能衡量線性相關性,先要計算各個特徵對目標值的相關系數以及相關系數的P值,P值區間在[-1,1],p值越大,則與目標值越正/負相關,當p值為0時,則代表與目標值不相關。計算公式如下:
3.卡方檢驗
卡方檢驗只能用於二分類,經典的卡方檢驗是檢驗定性自變數對定性因變數的相關性。假設自變數有N種取值,因變數有M種取值,考慮自變數等於i且因變數等於j的樣本頻數的觀察值與期望的差距,從而構建統計量。計算公式如下:
由於此篇博文是從整體來談特徵選擇,如對卡方檢驗不甚理解,請參考【筆記】卡方檢驗概述
4.互信息法
互信息(Mutual Information)是資訊理論里一種有用的信息度量,它可以看成是一個隨機變數中包含的關於另一個隨機變數的信息量,或者說是一個隨機變數由於已知另一個隨機變數而減少的不肯定性。
互信息系數能夠很好地度量各種相關性,互信息法的計算公式如下:
wrapper法
過濾法在選擇特徵時不考慮特徵對學習器的效果,包裹式選擇就很靈性了。包裹式通常根據預測效果評分來為學習器「量身定製」特徵子集,相較於過濾法,能使學習器的性能更佳,缺點即是計算開銷往往也更大。
比如LVW(Las Vegas Wrapper)特徵選擇方法,其思想是使用隨機策略來進行子集搜索,並以最終分類器的誤差為特徵子集的評價標准,演算法描述如下:
通過演算法流程圖可知,從特徵集中隨機抽取特徵子集,如果在特徵子集下分類器的誤差降低或誤差無變化,則更新特徵集為特徵子集。
但也可以看出,由於每次循環都要計算分類器誤差,計算開銷很大,若特徵眾多,設置的循環次數較大,可能在很長的時間都給不出解。
Embedded法
嵌入式特徵選擇方法也很靈性…嵌入式的特徵選擇方法將特徵選擇和學習器的訓練過程融為一體,即學習器自動的進行了特徵選擇。
比如決策樹的信息增益、信息增益比、基尼指數,求解最優解時的L1、L2正則化等思想,都能選取對學習器有價值的特徵,過濾價值不大的特徵。
參考
《機器學習》 —周志華
jacksu在——–特徵選擇
Joey-SH ———卡方檢驗概述