通過資料轉換模組可以對資料進行歸一化、離散化、Index化或WOE轉換。
配置組件
您可以使用以下任意一種方式,配置資料轉換模組組件參數。
方式一:可視化方式
在Designer工作流程頁面配置組件參數。
頁簽 | 參數 | 描述 |
欄位設定 | 輸入表選擇的特徵列 | 輸入的特徵列,預設選擇全表。 |
不進行轉換的資料列 | 選中的列會原樣輸出,可以在此指定Label。 | |
資料轉換的類型 | 支援的轉換類型包括歸一化、離散化、轉換為WOE值及Index。 | |
預設WOE值 | 僅當資料轉換的類型取值為轉換為WOE值時,該參數生效。 如果配置了該參數,當樣本值落入無WOE值的分箱時,使用該值進行替換。如果未配置該參數,則當樣本值落入無WOE值的分箱時,演算法報錯。 | |
執行調優 | 核心數 | 使用的CPU Core數量,預設系統自動分配。 |
每個核記憶體數 | 每個CPU Core所使用的記憶體大小,預設系統自動分配。 |
方式二:PAI命令方式
使用PAI命令方式,配置該組件參數。您可以使用SQL指令碼組件進行PAI命令調用,詳情請參見SQL指令碼。
PAI -name data_transform
-project algo_public
-DinputFeatureTableName=feature_table
-DinputBinTableName=bin_table
-DoutputTableName=output_table
-DmetaColNames=label
-DfeatureColNames=feaname1,feaname2
參數 | 描述 | 是否必選 | 預設值 |
inputFeatureTableName | 輸入特徵資料表。 | 是 | 無 |
inputBinTableName | 輸入分箱結果表。 | 是 | 無 |
inputFeatureTablePartitions | 輸入特徵表選擇的分區。 | 否 | 全表 |
outputTableName | 輸出表。 | 是 | 無 |
featureColNames | 輸入表選擇的特徵列。 | 否 | 所有列 |
metaColNames | 不進行轉換的資料列,選中的列會原樣輸出。可以在此列中指定Label及sample_id等。 | 否 | 無 |
transformType | 資料轉換的類型,取值包括:
| 否 | dummy |
itemDelimiter | 特徵分隔字元,僅在進行離散化時有效。 | 否 | 英文逗號(,) |
kvDelimiter | KV分隔字元,僅在進行離散化時有效。 | 否 | 英文冒號(:) |
lifecycle | 輸出表的生命週期。 | 否 | 無 |
coreNum | 使用的CPU Core數量。 | 否 | 系統自動計算 |
memSizePerCore | 每個CPU Core所使用的記憶體大小,單位為MB。 | 否 | 系統自動計算 |
歸一化是指根據輸入的分箱資訊,將變數值轉換為0~1之間,缺失值填充為0。具體的演算法如下。
if feature_raw_value == null or feature_raw_value == 0 then
feature_norm_value = 0.0
else
bin_index = FindBin(bin_table, feature_raw_value)
bin_width = round(1.0 / bin_count * 1000) / 1000.0
feature_norm_value = 1.0 - (bin_count - bin_index - 1) * bin_width
通過資料轉換模組進行不同類型的資料轉換,其輸出格式不同:
歸一化和WOE轉換的輸出為普通表。
離散化將資料轉換成Dummy變數時,輸出為KV格式的表,產生的變數格式為${feaname}]\_bin\_${bin_id}。以sns變數為例,產生的變數如下:
如果sns落入第二個桶中,則產生的變數為[sns]_bin_2。
如果sns為空白,則落入空桶,產生的變數為[sns]_bin_null。
如果sns不為空白,且未落入任何一個已經定義的桶中,則落入else桶,產生的變數為[sns]_bin_else。