通過數據轉換模塊可以對數據進行歸一化、離散化、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 | 不進行轉換的數據列,選中的列會原樣輸出??梢栽诖肆兄兄付↙abel及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。