在機器學習中,特徵選擇是一個不可或缺的重要步驟,這一過程旨在選擇一組對於模型建構具有相關性的重要特徵。特徵選擇技術運用於多個層面,目的包括簡化模型、縮短訓練時間、避免維度詛咒、提升數據與特定學習模型類別的兼容性,以及編碼輸入空間中固有的對稱特性。針對於特徵選擇的核心觀念是,數據有時包含冗餘或無關的特徵,這些特徵可以在不顯著損失資訊的情況下被剔除。
冗餘性與無關性是兩個不同的概念,因為在其他相關特徵存在的情況下,一個相關特徵可能會是冗餘的。
特徵提取與特徵選擇是不一樣的概念,特徵提取會通過原始特徵的函數來創造新的特徵,而特徵選擇則是找到特徵的子集。特徵選擇技術經常運用於特徵數量眾多且樣本數相對較少的領域。特徵選擇演算法可以被視為對新特徵子集的提出及評估指標的組合,這些指標用於為不同的特徵子集打分。
在這些技術中,最簡單的演算法就是逐一測試每個可能的特徵子集,找出能最小化錯誤率的那一組。然而,這樣的全面搜尋在特徵集較大時計算上幾乎是不切實際的。因此,依據各種評估指標的選擇,特徵選擇演算法可分為三大類:包裝式方法、篩選式方法以及內嵌式方法。
包裝式方法使用一個預測模型來對特徵子集進行打分,篩選式方法則使用更簡單的代理測量來評估特徵子集的效用。
包裝式方法為每個特徵子集訓練一個模型,並在保留集上進行測試,計算錯誤率來得到該子集的分數。由於每個子集都需要訓練新模型,因此計算上非常消耗資源,但通常能找到對特定模型或問題類型表現最佳的特徵集。
篩選式方法則選擇一個快速計算的代理測量來打分,而非直接使用錯誤率。這類方法通常計算互信息、皮爾森乘積矩相關係數或是相關性測試的顯著性分數,雖然它們的計算比較簡便,但所產生的特徵集並未特別針對某一類預測模型調整,因此預測表現通常低於包裝式方法的結果。
子集選擇的過程是對特徵子集進行整體評估以判定其適宜性。子集選擇演算法的類別與特徵選擇的類別相仿,包含包裝式、篩選式及內嵌式方法。包裝式方法使用搜尋演算法瀏覽可能的特徵空間,並透過運行模型來評估每個子集。雖然這類方法計算上通常較為耗費,但其能取得較高的預測準確性。
評估子集時需要一個評分指標來衡量特徵集的優劣,然後在某個預設的停止點選擇得分最高的特徵子集。
而篩選式則像包裝式方法一樣根據特徵子集特徵進行計算,但更側重於速度而非準確度。內嵌方法在模型建構過程中進行特徵選擇,最典型的例子就是LASSO方法,透過L1懲罰來縮減迴歸係數。
選擇最佳化標準並不容易,因為特徵選擇過程中有多個目標需考量。許多常見的標準會納入準確度測量,並對選擇的特徵數量進行懲罰。AIC與BIC便是此類例子的代表,其對每增加一個特徵施加懲罰,以降低模型的複雜度。
最佳化準則的選擇對於特徵選擇的最終效果有著直接影響,常見的評估標準還包括互信息、相關性以及多維度分散性等。
隨著數據科學的快速發展,特徵選擇的重要性愈發顯著。透過精心選擇的特徵,我們不僅可以提升模型的效能,還能更清晰地理解數據間的相互關聯。你是否也在考慮如何挑選最具影響力的特徵以提升你的機器學習模型呢?