Feature-Selection

為什麼選擇特徵選擇套索?

  • September 16, 2018

假設我有一個高維數據集並且想要執行特徵選擇。一種方法是訓練一個能夠識別該數據集中最重要特徵的模型,並用它來丟棄最不重要的特徵。

在實踐中,我會為此使用 sklearn 的SelectFromModel轉換器。根據文檔,任何具有 afeature_importances_或 acoef_屬性的估計器都可以。

除了Lasso之外,許多其他線性模型也具有此屬性(LinearRegressionRidgeElasticNet等等),可用於識別最重要的特徵。

是什麼讓 Lasso 成為識別數據集中最重要特徵的最流行模型?

首先,在指定數據集中“最重要的特徵”時要小心。有關此問題的不同觀點,請參閱此頁面。例如,可能需要單獨認為“不重要”的特徵來幫助改進基於其他特徵的預測,因此您可能不想丟棄它們。

LASSO 擅長的是提供一種原則性的方法來減少模型中的特徵數量。相比之下,基於標準線性回歸的自動特徵選擇通過逐步選擇或選擇具有最低p值的特徵具有許多缺點。LASSO 相對於其他基於回歸的方法的優勢在此處具體描述。LASSO 涉及一個懲罰因子,它決定了保留多少特徵;使用交叉驗證來選擇懲罰因子有助於確保模型能夠很好地推廣到未來的數據樣本。

嶺回歸根本不嘗試選擇特徵,而是使用應用於所有回歸係數平方和的懲罰。同樣,通過交叉驗證選擇懲罰有助於確保泛化。彈性網可以被認為是 LASSO 與脊的混合體。有關這些懲罰方法之間差異的詳細信息,請參閱此頁面。如果您的主要興趣是預測並且收集有關所有特徵的信息並不太昂貴,則您可能根本不需要進行特徵選擇,而是使用嶺回歸來保留有關模型中所有預測變量的信息。

如果出於實際原因需要減少預測變量的數量,LASSO 是一個不錯的選擇。但它所做的只是為您提供一組有用的選定預測變量,在某種一般意義上不一定是最重要的。當特徵相關時,LASSO 將根據其在手頭特定數據樣本中的表現來選擇其中一個。使用不同的樣本,它可以很好地從一組相關特徵中選擇不同的特徵。這通常不會影響 LASSO 模型的預測性能,但它確實讓人們對“最重要特徵”的含義有所懷疑。有關LASSO 建模中這種不穩定性的討論,請參閱此頁面。

引用自:https://stats.stackexchange.com/questions/367155

comments powered by Disqus