首頁?學習  »   正文

數據科學特征選擇方法入門

數據科學特征選擇方法入門

Eugenio Mazzone在Unsplash上發布的照片

什么是特征選擇?

讓我們從定義特征開始。特征是數據集中的X變量,通常由列定義。現在很多數據集都有100多個特征,可以讓數據分析師進行分類!正常情況下,這是一個荒謬的處理量,這就是特征選擇方法派上用場的地方。它們允許您在不犧牲預測能力的情況下減少模型中包含的特征的數量。冗余或不相關的特征實際上會對模型性能產生負面影響,因此有必要(且有幫助)刪除它們。想象一下,通過制造一架紙飛機來學習騎自行車。我懷疑你第一次騎車會走的遠。

特征選擇的好處

特征選擇的主要好處是它減少了過度擬合。通過刪除無關的數據,它允許模型只關注數據的重要特征,而不被無關的特征所困擾。刪除無關信息的另一個好處是,它提高了模型預測的準確性。它還減少了得到模型所需的計算時間。最后,擁有較少的特征使您的模型更具可解釋性和易于理解。總的來說,特征選擇是能夠以任何精度預測值的關鍵。

概述

特征選擇有三種類型:包裝器方法(正向、向后和逐步選擇)、過濾器方法(方差分析、皮爾遜相關、方差閾值)和嵌入方法(Lasso、Ridge、決策樹)。我們將在下面的Python示例中對每種方法進行解釋。

包裝器方法

包裝方法使用特定的特征子集計算模型,并評估每個特征的重要性。然后他們迭代并嘗試不同的特征子集,直到達到最佳子集。該方法的兩個缺點是計算時間長,數據特征多,在沒有大量數據點的情況下容易對模型產生過擬合。最顯著的特征選擇包裝器方法是前向選擇、向后選擇和逐步選擇。

正向選擇從零特征開始,然后,對于每個單獨的特征,運行一個模型并確定與所執行的t-測試或f-測試相關聯的p-值。然后選擇p值最低的特征并將其添加到工作模型中。接下來,它接受所選擇的第一個特征并運行添加了第二個特征的模型,并選擇p值最低的第二個特征。然后它獲取前面選擇的兩個特征并運行模型的第三個特征,以此類推,直到所有具有顯著p值的特征都被添加到模型中。在迭代中嘗試時沒有顯著p值的任何特征都將被排除在最終模型之外。

數據科學特征選擇方法入門

向后選擇從數據集中包含的所有功能開始。然后,它運行一個模型,并為每個特征計算與模型的t檢驗或f檢驗相關聯的p值。然后,將從模型中刪除具有最大不重要p值的特征,然后重新開始該過程。這將一直持續到從模型中刪除所有具有不重要p值的功能為止。

數據科學特征選擇方法入門

逐步選擇是向前選擇和向后選擇的混合。它從零特征開始,并添加一個具有如上所述最低有效P值的特征。然后,它通過查找第二個具有最低有效P值的特征。在第三次迭代中,它將尋找具有最低有效P值的下一個功能,并且它還將刪除以前添加的、現在具有不重要P值的任何功能。這允許最終模型具有包含所有重要功能的所有功能。

數據科學特征選擇方法入門

上述不同選擇方法的好處是,如果您對數據和可能重要的特征沒有直觀的認識,那么它們將為您提供一個良好的起點。此外,它還能有效地從大量數據中選擇具有顯著特征的模型。但是,也有一些缺點,這些方法并不能運行所有特征的單個組合,因此它們可能不會得到絕對最佳的模型。此外,它還可以產生具有高多重共線性的模型(由于特征之間的關系而膨脹的β系數),這對準確預測不是很理想。

過濾方法

過濾方法使用錯誤率以外的度量來確定該特征是否有用。通過使用有用的描述性度量對特征進行排序,而不是調整模型(如包裝方法中的模型),從而選擇特征的子集。濾波方法的優點是計算時間非常短,不會使數據過擬合。然而,一個缺點是,它們對特征之間的任何交互或關聯都視而不見。這需要單獨考慮,具體解釋如下。三種不同的過濾方法是方差分析、皮爾遜相關和方差閾值。

方差分析(ANOVA, Analysis of variance) 檢驗是一個特征治療和治療之間的變異。這些差異是這個特定過濾方法的重要指標,因為我們可以確定一個特征是否能夠很好地解釋因變量的變化。如果每個特定治療的差異大于治療之間的差異,那么這個特征就不能很好地解釋因變量的變化。為了進行方差分析檢驗,計算每個特征的F統計量,其中分子處理(SST,通常與SStotal混淆)和分母處理之間的差異。然后根據無效假設(H0:所有治療的平均值相等)和替代方案(Hα:至少有兩種治療方法不同)測試該試驗統計數據。

數據科學特征選擇方法入門

皮爾遜相關系數是對-1和1之間兩個特征相似性的度量。接近1或-1的值表示這兩個特征具有很高的相關性,并且可能相關。要使用此相關系數創建具有縮減特征的模型,可以查看所有相關的heatmap(如下圖所示),并選擇與響應變量(y變量或預測變量)具有最高相關性的特征。高相關與低相關的臨界值取決于每個數據集中相關系數的范圍。高相關性的一般度量是0.7<相關性<1.0。這將允許使用所選功能的模型包含數據集中包含的大部分有價值的信息。

數據科學特征選擇方法入門

數據科學特征選擇方法入門

此數據集SalePrice的響應變量(頂部一行)顯示了與其他變量的相關性。淺橙色和深紫色顯示出很高的相關性。

特征約簡的另一種濾波方法是方差閾值法。特征的方差決定了它所包含的預測能力。方差越小,特征中包含的信息越少,它在預測響應變量時的值就越小。考慮到這一事實,方差閾值化是通過找出每個特征的方差,然后將所有特征降至某個方差閾值以下來實現的。如果只希望刪除響應變量的每個實例具有相同值的特征,則此閾值可以為0。但是,要從數據集中刪除更多的特征,可以將閾值設置為0.5、0.3、0.1或其他對方差分布有意義的值。

數據科學特征選擇方法入門

正如前面提到的,有時交互對于添加到模型中是有用的,特別是當您懷疑兩個特征之間有關系,可以為模型提供有用的信息時。交互作用可以作為交互項添加到回歸模型中,如B3X1X2所示。β系數(B3)修改了X1和X2的乘積,并測量了兩個特征(Xs)組合模型的效果。要查看交互項是否重要,可以執行t檢驗或f檢驗,并查看該項的p值是否重要。一個重要的注意事項是,如果交互項很重要,那么兩個低階X項都必須保留在模型中,即使它們不重要。這是為了將X1和X2保留為兩個獨立變量,而不是一個新變量。

數據科學特征選擇方法入門

嵌入式方法

嵌入式方法將特征選擇作為模型創建過程的一部分執行。這通常會導致前面解釋的兩種功能選擇方法之間的折衷,因為選擇是與模型調優過程一起完成的。Lasso和Ridge回歸是兩種最常見的特征選擇方法,決策樹也使用不同類型的特征選擇創建模型。

有時,您可能希望在最終模型中保留所有特征,但您不希望模型過于關注任何一個系數。嶺回歸可以通過懲罰模型的貝塔系數過大來做到這一點。基本上,它縮小了與可能不像其他變量那么重要的變量之間的相關性。這將處理數據中可能存在的任何多重共線性(特征之間的關系,這些特征將會膨脹它們的beta)。平順性回歸是通過在回歸的成本函數中添加一個懲罰項(也稱為嶺估計量或收縮估計量)來完成的。所有的beta并用一個必須調優的lambda(λ)項(通常是交叉驗證:將相同的模型與lambda的不同值進行比較)對它們進行縮放。lambda是一個介于0和無窮大之間的值,但最好從0和1之間的值開始。lambda值越高,系數收縮的越多。當lambda等于0時,結果將是一個不帶懲罰的正則普通最小二乘模型。

數據科學特征選擇方法入門

數據科學特征選擇方法入門

數據科學特征選擇方法入門

這說明了嶺回歸如何通過使線性回歸中的一些大系數接近零來調整它們。

數據科學特征選擇方法入門

?隨著lambda(alpha)值的增加,系數被推向零,代價是MSE。

Lasso回歸是另一種懲罰模型中β系數的方法,與嶺回歸非常相似。它還為模型的成本函數添加了一個懲罰項,必須對lambda值進行調整。與嶺回歸最重要的區別是,Lasso回歸可以將beta系數強制為零,這將從模型中刪除該特征。這就是為什么Lasso在某些時候更受歡迎,特別是當您希望降低模型復雜性時。模型的特征數量越少,復雜性越低。為了強制系數為零,加在成本函數上的懲罰項取β項的絕對值,而不是平方,當試圖最小化成本時,它可以抵消函數的其余部分,導致β等于零。

數據科學特征選擇方法入門

數據科學特征選擇方法入門

關于Ridge和Lasso回歸的一個重要注意事項是,您的所有特征都必須標準化。Python和R中的許多函數都自動執行此操作,因為lambda必須對每個特征都應用相同的值。如果一個特征的值是千位的,而另一個特征的值是十進制的,則不允許這種情況發生,因此需要標準化。

另一種常用的特征選擇建模方法是決策樹,它可以是回歸樹,也可以是分類樹,具體取決于響應變量是連續的還是離散的。該方法基于某些特征在樹中創建拆分,以創建一個算法來查找正確的響應變量。樹的構建方式使用嵌入方法中的包裝方法。我們的意思是,在建立樹模型時,函數內置了幾種特征選擇方法。在每次拆分時,用于創建樹的函數會嘗試對所有功能進行所有可能的拆分,并選擇將數據拆分為最同質組的功能。簡單地說,它選擇最能預測樹中每個點的響應變量是什么的特征。這是一個包裝方法,因為它嘗試所有可能的功能組合,然后選擇最好的功能組合。

在預測響應變量時,最重要的功能是在樹的根(開始)附近進行拆分,而更不相關的功能是在樹的節點(結束)附近進行拆分。這樣,決策樹會懲罰那些對預測響應變量沒有幫助的特征(嵌入方法)。生成樹之后,可以選擇返回并“修剪”一些不向模型提供任何附加信息的節點。這可以防止過擬合,通常通過與保持測試集的交叉驗證來實現。

數據科學特征選擇方法入門

總結

那么,既然你已經克服了所有的困難,你認為最重要的是什么呢?盡管一個數據集可能有數百到數千個特征,但這并不意味著它們都是重要或有用的。尤其是現在,我們生活在一個擁有難以想象的海量數據的世界里,試著關注那些重要的數據才是最重要的。還有很多(復雜的)方法可以執行特征選擇(我們在這里沒有提到的),但是無論如何這都是一個很好的開始!祝你好運,再接再厲!

關鍵詞匯:

特征:一個x變量,通常是數據集中的一列

特征選擇:通過選擇要使用的特征子集來優化模型

包裝方法:嘗試具有不同特征子集的模型并選擇最佳組合

正向選擇:逐個添加特征以達到最佳模型

逆向選擇:逐個刪除特征以達到最佳模型

逐步選擇:正向和反向選擇的混合,逐個添加和刪除特征以達到最佳模型

過濾方法:通過一個非誤差的度量來選擇一個特征子集(一個特征固有且不依賴于模型的度量)

皮爾遜相關:兩個變量之間線性相關的度量

方差閾值化:選擇方差截止點以上的特征,以保留數據方差分析中的大部分信息:(方差分析)一組統計估計程序和模型,用于觀察治療(樣本)方法的差異;可用于判斷特征對模型的統計顯著性。

交互項:當兩個特征依賴于另一個特征的值時,量化它們之間的關系;減輕多重共線性并能進一步洞察數據多重共線性:當兩個或多個獨立變量彼此高度相關時發生。

嵌入式方法:在模型創建過程中選擇和調整功能子集

嶺回歸:一種改進的最小二乘回歸,通過對成本函數應用lambda項來懲罰具有膨脹β系數的特征。

拉索回歸:類似于嶺回歸,但不同的是,添加到成本函數的lambda項可以強制β系數為零。

決策樹:一種非參數模型,利用特征作為節點來分割樣本,以正確地對觀測進行分類。在一個隨機森林模型中,特征重要性可以用平均下降基尼系數來計算。

交叉驗證:一種迭代生成訓練和測試數據集的方法,用于評估未來未知數據集上的模型性能。

歡迎關注ATYUN官方公眾號,商務合作及內容投稿請聯系郵箱:[email protected]

發表評論