0
雷鋒網(wǎng)AI科技評論編者按:特征選擇的方法你了解多少?這篇文章的作者將帶領(lǐng)我們認(rèn)識一種新穎的特征選擇方法—排列重要性,它可以幫助我們找到任何BlackBox模型的特征重要性,那么它又是怎么起作用的以及又是如何使用ELI5對其進行編碼的呢?這篇文章給你答案。
本文來自數(shù)據(jù)科學(xué)家Rahul Agarwal的文章《How to find Feature importances for BlackBox Models?
》在不改變原文意思的基礎(chǔ)上雷鋒網(wǎng)AI科技評論的編譯如下:
數(shù)據(jù)科學(xué)是對算法進行的研究。我每天都要處理很多的算法,因此我想把一些最常見和最常用的算法列出來,這些算法將會在新的DS算法系列中使用。
有多少次,當(dāng)你創(chuàng)建了很多特征的時候,但接下來你還需要想盡方法減少特征的數(shù)量?
上次我寫了一篇名為《每個數(shù)據(jù)科學(xué)家都應(yīng)該知道的5種特征選擇算法》的文章,其中談到了使用相關(guān)性或基于樹類結(jié)構(gòu)的方法,并在特征選擇的過程中添加了一些結(jié)構(gòu)。
最近我接觸了另一種新穎的特征選擇方法,叫做排列重要性。
因此,這篇文章將介紹排列重要性是如何起作用的以及如何使用ELI5對其進行編碼。
簡單地說,如果我們從數(shù)據(jù)集中刪除一個特定的特征,我們可以根據(jù)我們的評估指標(biāo)(F1、精度AUC等)的變化來給這個特征賦予重要性。
要做到這一點可就太簡單了,我們從數(shù)據(jù)集中刪除了一個特征,然后訓(xùn)練分類器,接著查看評估指標(biāo)是如何變化的。我們要對所有的特征都這樣操作。
所以我們至少要擬合n次模型,其中n是模型中的特征的數(shù)量。 這意味著非常多的計算和工作量。我們是否能在這樣的條件下做到更好呢?
Source:我們使用更新的數(shù)據(jù)集對特征進行排序和預(yù)測。直觀地講,如果我們的準(zhǔn)確性或任何評估指標(biāo)都沒有受到影響,那我們就可以說這個特征并不重要。但如果我們的準(zhǔn)確性受到了影響,那我們也得承認(rèn)該特征確實很重要。
我們當(dāng)然是可以做到的。為了計算排列的重要性,我們對單個特征的值進行改組、排列,并使用所得的數(shù)據(jù)集進行預(yù)測。
然后將這些預(yù)測用于計算我們的評估指標(biāo)。直觀地講,如果我們的準(zhǔn)確性或任何評估指標(biāo)都沒有受到影響,那我們就可以說這個特征并不重要。但如果我們的準(zhǔn)確性受到了影響,那我們也得承認(rèn)該特征確實很重要。
數(shù)據(jù)集
我們嘗試使用數(shù)據(jù)集來更好的理解它。
我將使用一個足球運動員數(shù)據(jù)集來說明,并嘗試通過用它來找出最重要的特征。
如果你不懂足球術(shù)語,也不用擔(dān)心,我盡量減少使用專業(yè)術(shù)語。
你可以在這個Kaggle核心內(nèi)容中查看完整的代碼(https://www.kaggle.com/mlwhiz/permutation-feature-selection-using-football-data)。
簡單的數(shù)據(jù)預(yù)處理
我們已經(jīng)完成了一些基本的預(yù)處理任務(wù),例如刪除空值和獨熱碼。我們還使用以下方法將問題轉(zhuǎn)換成分類問題:
在這里,我們使用“高素質(zhì)水平”作為優(yōu)秀球員的代表。我們的數(shù)據(jù)集(X)如下所示,有223列。
訓(xùn)練數(shù)據(jù)X
實操
有了ELI5庫使我們很容易就能將特征重要性應(yīng)用于sklearn模型。 首先,我們要開始訓(xùn)練模型。
然后使用eli5 sklearn模塊中的PermutationImportance函數(shù)。
結(jié)果如下:
在這里,我們注意到反應(yīng),攔截和控球是決定球員素質(zhì)的最重要的特征。
我們還可以使用eli5來計算非機器學(xué)習(xí)模型的特征重要性。在這里我們訓(xùn)練了一個LightGBM模型。
我們需要為評分函數(shù)創(chuàng)建一個包裝器,以計算我們的評估指標(biāo)。
現(xiàn)在我們可以使用eli5.permutation_importance中的get_score_importances函數(shù)以獲得最終的特征函數(shù)。
我們可以使用以下內(nèi)容查看榜單排名前五的特征:
結(jié)論:
特征工程和特征選擇是任何機器學(xué)習(xí)通道的關(guān)鍵部分。
我們追求模型的準(zhǔn)確性,如果不反復(fù)查看這些模型,就不可能獲得良好的準(zhǔn)確性。
在這篇文章中,我試圖將排列重要性解釋為一種特征選擇方法。它可以幫助我們找到任何BlackBox模型的特性重要性,這與我之前關(guān)于特征選擇的文章中的技術(shù)表達(dá)不同。
如果你想了解更多關(guān)于特征工程、選擇的信息,那我想告訴你“如何贏得數(shù)據(jù)科學(xué)競賽:從Kazanova的高級機器學(xué)習(xí)專業(yè)中的頂級Kagglers課程中學(xué)習(xí)”。這個課程討論了很多有用的特征工程、選擇技術(shù)來改進模型的直觀方法。絕對值得推薦。
原文鏈接(雷鋒網(wǎng)注):https://towardsdatascience.com/how-to-find-feature-importances-for-blackbox-models-c418b694659d
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。