通過分箱組件可以進行特徵離散化,即將連續的資料進行分段,使其變為多個離散化區間。分箱組件支援等頻分箱、等寬分箱及自動分箱。
配置組件
您可以使用以下任意一種方式,配置分箱組件參數。
方式一:可視化方式
在Designer工作流程頁面配置組件參數。
|
頁簽 |
參數 |
描述 |
|
欄位設定 |
特徵列 |
支援STRING、BIGINT及DOUBLE類型。 |
|
標籤列 |
僅支援二分類。 |
|
|
正例值 |
僅當標籤列存在時才生效。 |
|
|
選擇分箱的參數來源 |
參數來源支援“參數設定”中的參數和手動分箱或自訂Json。 |
|
|
是否保留沒有在“特徵列”中選擇的欄位 |
使用自訂分箱時,如果該參數選擇是,則未在特徵列中選擇的欄位會原樣保留,否則會刪除未選擇的欄位。 |
|
|
上傳分箱和約束Json |
當選擇分箱的參數來源取值為手動分箱或自訂Json時,該參數生效。 |
|
|
參數設定 |
分箱個數 |
配置為10,表示將連續特徵離散化至10個區間中。 |
|
自訂欄分箱個數 |
可以指定單個或多個欄位的分箱數,會覆寫總的分箱個數。如果自訂的列不在欄位選擇中,則多出的列也會進行計算。例如,欄位選擇為col0和col1, 自訂分箱為col0:3,col2:5,當分箱個數為10時,那麼按照col0:3,col1:10,col2:5進行計算。 取值格式為:欄位名1:分箱個數, 欄位名2:分箱個數。 |
|
|
自訂離散值個數閾值 |
格式為col0:3。 |
|
|
區間選擇 |
支援左開右閉或左閉右開區間。 |
|
|
分箱方式 |
支援等頻、等寬及自動分箱。 |
|
|
離散值個數閾值 |
如果小於該值,則分到“其它”分箱。 |
|
|
執行調優 |
核心數 |
預設系統自動分配。 |
|
每個核分配的記憶體數 |
預設系統自動分配。 |
方式二:PAI命令方式
使用PAI命令方式,配置該組件參數。您可以使用SQL指令碼組件進行PAI命令調用,詳情請參見SQL指令碼。
PAI -name binning
-project algo_public
-DinputTableName=input
-DoutputTableName=output
|
參數 |
描述 |
是否必選 |
預設值 |
|
inputTableName |
輸入表的名稱。 |
是 |
無 |
|
outputTableName |
輸出表的名稱。 |
是 |
無 |
|
selectedColNames |
輸入表選擇分箱的列。 |
否 |
除Label外的其他列,如果無Label,則選擇全部。 |
|
labelColName |
Label所在的列。 |
否 |
無 |
|
validTableName |
表示binningMethod為auto時輸入的驗證表名。在auto模式下,該參數為必選。 |
否 |
空 |
|
validTablePartitions |
驗證表選擇的分區。 |
否 |
全表 |
|
inputTablePartitions |
輸入表選擇的分區。 |
否 |
全表 |
|
inputBinTableName |
輸入的分箱表。 |
否 |
無 |
|
selectedBinColNames |
分箱表選擇的列。 |
否 |
空 |
|
positiveLabel |
輸出正樣本的分類。 |
否 |
1 |
|
nDivide |
分箱的個數,取值為正整數。 |
否 |
10 |
|
colsNDivide |
自訂欄的分箱個數,例如col0:3,col2:5。如果colsNDivide中選中的列不在selectedColNames中,則多出的列也會進行計算。例如,selectedColNames為col0,col1,colsNDivide為col0:3,col2:5,nDivide為10時,則按照col0:3,col1:10,col2:5進行計算。 |
否 |
空 |
|
isLeftOpen |
選擇區間為左開右閉或左閉右開,取值包括為:
|
否 |
true |
|
stringThreshold |
離散值為其他分箱的閾值。 |
否 |
無 |
|
colsStringThreshold |
自訂欄的閾值,同colsNDivide。 |
否 |
空 |
|
binningMethod |
分箱類型,取值包括:
|
否 |
quantile |
|
lifecycle |
輸出表的生命週期,取值為正整數。 |
否 |
無 |
|
coreNum |
核心數,取值為正整數。 |
否 |
系統自動計算 |
|
memSizePerCore |
記憶體數,取值為正整數。 |
否 |
系統自動計算 |
分箱約束功能需要與評分卡訓練組件配合使用。在評分卡訓練過程中通過分箱進行特徵工程,將特徵離散化產生Dummy變數,並對訓練過程中的每個Dummy變數的權重增加一定約束。各個約束項的含義如下:
-
順序升序約束:該特徵的各個Dummy變數按照Index從小到大添加權重上升的約束,即Index越大,權重越大。
-
順序降序約束:該特徵的各個Dummy變數按照Index從小到大添加權重下降的約束,即Index越大,權重越小。
-
相等權重值:該特徵兩個Dummy變數的權重值相等的約束。
-
權重值為0:該特徵某個Dummy變數的權重值為0的約束。
-
等於固定權重值:該特徵某個Dummy變數的權重值等於固定浮點數值的約束。
-
WOE值順序約束:該特徵各個Dummy變數按照WOE值從小到大添加權重上升的約束,即WOE值越大,權重值越大。
結果示範
-
使用分箱組件的工作流程運行結束後,按右鍵畫布中的分箱組件,在捷徑功能表,單擊我要分箱。
-
在變數列表頁面,您可以查看每個變數的分箱數、類型、IV等資訊。
-
單擊變數的名稱(以f1為例),可以開啟f1-分箱詳情頁面。
您可以在該頁面對分箱進行合并、拆分,也可以對分箱增加約束。
說明約束僅對後續的評分卡訓練模組有效,如果僅使用分箱,不使用評分卡訓練,則可以忽略約束項。
頁面支援列表和圖表兩種查看方式。列表展示每個分箱的Index、Label(分箱區間,如(-inf,4.8])、Constrain(約束操作符和值)、WOE、Number(總數、正例數、負例數)及Rate(比例)。右側自訂分箱面板支援按數實值型別指定分箱、設定邊界範圍,以及配置約束類型,包括順序升序(< bin)、順序降序(> bin)、相等權重值(= bin)、權重值為0(= 0)、等於固定權重值(= weight)及WOE值順序約束。