過濾式特徵選取是一種預先處理技術,用於在建模前通過統計指標(如相關係數、資訊增益等)評估特徵的重要性,從而篩選出對目標變數最有貢獻的特徵。該方法獨立於具體的機器學習演算法,具有效率高、實現簡單的優點,適用於大規模資料集的特徵維度縮減。
使用限制
過濾式特徵選取演算法無法直接處理以libsvm和索引值對(KV)格式儲存的資料。
配置組件
方式一:可視化方式
在Designer工作流程頁面添加過濾式特徵選取組件,並在介面右側配置相關參數:
參數類型 | 參數 | 描述 |
欄位設定 | 選擇特徵列 | 指定需要進行特徵選取的特徵列,即選擇資料集中需要評估的重要特徵。 |
選擇目標列 | 指定目標變數列,即模型需要預測的輸出變數,用於計算特徵與目標之間的相關性。 | |
枚舉類特徵 | 指定哪些特徵是類別特徵(枚舉類特徵),這些特徵通常需要進行特殊處理或編碼(如獨熱編碼)。 | |
是否K:V,K:V稀疏特徵 | 指定特徵是否以索引值對(Key:Value)的稀疏格式儲存。這種格式常用於高維稀疏資料,特別是在文本資料處理中。 | |
參數設定 | 特徵選取方法 | 指定用於特徵選取的統計方法,取值:
|
挑選TopN特徵 | 指定要選擇的前N個最重要的特徵,根據特徵選取方法計算的指標進行排序。如果TopN大於輸入特徵數,則輸出所有特徵。 | |
連續特徵分區方式 | 指定對於連續特徵如何進行分區,取值:
| |
連續特徵離散區間數 | 指定將連續特徵離散化時的區間數量,即將連續數值特徵分成多少個離散區間。僅連續特徵分區方式選擇等距離分區時,才需要配置該參數。 |
方式二:PAI命令方式
使用PAI命令配置過濾式特徵選取組件參數。您可以使用SQL指令碼組件進行PAI命令調用,詳情請參見情境4:在SQL指令碼組件中執行PAI命令。
PAI -name fe_select_runner -project algo_public
-DfeatImportanceTable=pai_temp_2260_22603_2
-DselectMethod=iv
-DselectedCols=pdays,previous,emp_var_rate,cons_price_idx,cons_conf_idx,euribor3m,nr_employed,age,campaign
-DtopN=5
-DlabelCol=y
-DmaxBins=100
-DinputTable=pai_dense_10_9
-DoutputTable=pai_temp_2260_22603_1;
參數 | 是否必選 | 預設值 | 描述 |
inputTable | 是 | 無 | 輸入的表名稱。 |
inputTablePartitions | 否 | 所有分區 | 輸入表中參與訓練的分區。系統支援以下格式:
|
outputTable | 是 | 無 | 過濾後的特徵結果表。 |
featImportanceTable | 是 | 無 | 存放所有輸入特徵的重要性權重值。 |
selectedCols | 是 | 無 | 用於訓練的特徵列。 |
labelCol | 是 | 無 | 輸入表中選中的目標列。 |
categoryCols | 否 | 無 | 類別特徵(枚舉類特徵),只能為INT或DOUBLE類型。 |
maxBins | 否 | 100 | 連續類特徵劃分的最大區間數。 |
selectMethod | 否 | iv | 特徵選取的方法,取值包括:iv、GiniGain、InfoGain和Lasso。 |
topN | 否 | 10 | 挑選的TopN個特徵,如果TopN大於輸入特徵數,則輸出所有特徵。 |
isSparse | 否 | false | 是否是k:v的稀疏特徵,false為稠密特徵。 |