特征異常平滑
特征平滑組件可以將輸入特征中包含異常的數(shù)據(jù)平滑到一定區(qū)間,支持稀疏和稠密數(shù)據(jù)格式。
背景信息
平滑方法如下:
ZScore平滑
如果特征分布遵循正態(tài)分布,則噪音一般集中在-3×alpha和3×alpha之外,ZScore是將該范圍的數(shù)據(jù)平滑到[-3×alpha,3×alpha]之間。
例如,某個(gè)特征遵循正態(tài)分布,均值為0,標(biāo)準(zhǔn)差為3。因此,-10的特征值會(huì)被識(shí)別為異常而修正為-3×3+0,即為-9。同理10會(huì)被修正為3×3+0,即為9。
百分位平滑
用于將分布不在[minPer, maxPer]的數(shù)據(jù)平滑到minPer和maxPer這兩個(gè)分位點(diǎn)。
例如,age特征取值0~200,設(shè)置minPer為0,maxPer為50%,則不在0~100的特征取值都會(huì)被修正成0或100。
閾值平滑
用于將分布不在[minThresh, maxThresh]的數(shù)據(jù)平滑到minThresh和maxThresh這兩個(gè)數(shù)據(jù)點(diǎn)。
例如,age特征取值0~200,設(shè)置minThresh為10,maxThresh為80,則不在0~80的特征取值都會(huì)被修正成0或80。
箱線圖平滑
通過數(shù)據(jù)的4分位線構(gòu)造光滑的上下界閾值,構(gòu)造方式為:minThresh=q1-1.5(q3-q1),maxThresh=q3+1.5(q3-q1)。
特征平滑算法組件只是將異常取值的特征值修正為正常值,本身不過濾或刪除任何記錄,輸入數(shù)據(jù)維度和條數(shù)均不變。
組件配置
您可以使用以下任意一種方式,配置特征異常平滑組件參數(shù)。
方式一:可視化方式
在Designer工作流頁面配置組件參數(shù)。
頁簽 | 參數(shù) | 描述 |
字段設(shè)置 | 選擇平滑特征列 | 需要平滑處理的特征列。 |
標(biāo)簽列 | 如果您設(shè)置了該字段,則可以通過可視化方式查看特征到目標(biāo)變量的x-y分布直方圖。 | |
參數(shù)設(shè)置 | 平滑方法 | 平滑方法如下:
|
置信范圍 | 置信水平。當(dāng)平滑方法為ZScore平滑時(shí)需要配置該參數(shù)。 | |
閾值下限 | 閾值最小值,默認(rèn)為-9999,表示不設(shè)置。 當(dāng)平滑方法為閾值平滑時(shí)需要配置該參數(shù)。 | |
閾值上限 | 閾值最大值,默認(rèn)為-9999,表示不設(shè)置。 當(dāng)平滑方法為閾值平滑時(shí)需要配置該參數(shù)。 | |
百分位下限 | 最低百分位。 當(dāng)平滑方法為百分位平滑或箱線圖平滑時(shí)需要配置該參數(shù)。 | |
百分位上限 | 最高百分位。 當(dāng)平滑方法為百分位平滑或箱線圖平滑時(shí)需要配置該參數(shù)。 |
方式二:PAI命令方式
使用PAI命令方式,配置該組件參數(shù)。您可以使用SQL腳本組件進(jìn)行PAI命令調(diào)用,詳情請(qǐng)參見SQL腳本。
PAI -name fe_soften_runner -project algo_public
-DminThresh=5000
-Dlifecycle=28
-DsoftenMethod=min-max-thresh
-DsoftenCols=nr_employed
-DmaxThresh=6000
-DinputTable=pai_dense_10_1
-DoutputTable=pai_temp_2262_20381_1;
參數(shù)名稱 | 是否必選 | 參數(shù)描述 | 默認(rèn)值 |
inputTable | 是 | 輸入表的表名 | 無 |
inputTablePartitions | 否 | 輸入表中指定參與訓(xùn)練的分區(qū),格式為 如果是多級(jí)分區(qū),格式為 如果指定多個(gè)分區(qū),則需要使用,隔開。 | 輸入表的所有分區(qū)。 |
outputTable | 是 | 平滑后的結(jié)果表。 | 無 |
labelCol | 否 | 標(biāo)簽字段。如果您設(shè)置了該字段,則可以通過可視化方式查看特征到目標(biāo)變量的x-y分布直方圖。 | 默認(rèn)為空 |
categoryCols | 否 | 將勾選的字段作為枚舉特征處理。 | 默認(rèn)為空 |
softenCols | 是 | 選擇需要平滑的特征。如果特征為稀疏特征時(shí),系統(tǒng)會(huì)自動(dòng)化篩選。 | 無 |
softenMethod | 否 | 平滑方法如下:
| ZScore |
softenTopN | 否 | 當(dāng)未勾選softenCols參數(shù)時(shí),系統(tǒng)自動(dòng)挑選TopN個(gè)需要平滑的特征。取值為正整數(shù)。 | 10 |
cl | 否 | 置信水平。當(dāng)平滑方法為ZScore平滑時(shí)需要配置該參數(shù)。 | 10 |
minPer | 否 | 最低百分位。當(dāng)平滑方法為百分位平滑或箱線圖平滑時(shí)需要配置該參數(shù)。 | 0.0 |
maxPer | 否 | 最高百分位。當(dāng)平滑方法為百分位平滑或箱線圖平滑時(shí)需要配置該參數(shù)。 | 1.0 |
minThresh | 否 | 閾值最小值。當(dāng)平滑方法為閾值平滑時(shí)需要配置該參數(shù)。 | -9999 |
maxThresh | 否 | 閾值最大值。當(dāng)平滑方法為閾值平滑時(shí)需要配置該參數(shù)。 | -9999 |
isSparse | 否 | 是否為k:v的稀疏特征,取值如下:
默認(rèn)為稠密數(shù)據(jù)。 | false |
itemSpliter | 否 | 稀疏特征item的分隔符。 | , |
kvSpliter | 否 | 稀疏特征item的分隔符。 | : |
lifecycle | 否 | 結(jié)果表生命周期。取值為正整數(shù)。 | 7 |
coreNum | 否 | 節(jié)點(diǎn)個(gè)數(shù)。與memSizePerCore參數(shù)配對(duì)使用,取值為[1, 9999]的正整數(shù)。 | 系統(tǒng)自動(dòng)分配。 |
memSizePerCore | 否 | 單個(gè)節(jié)點(diǎn)內(nèi)存大小,單位為兆。取值為[2048, 64 *1024]的正整數(shù)。 | 系統(tǒng)自動(dòng)分配。 |
示例
輸入數(shù)據(jù)
create table if not exists pai_dense_10_1 as select nr_employed from bank_data limit 10;
nr_employed
5228.1
5195.8
4991.6
5099.1
5076.2
5228.1
5099.1
5099.1
5076.2
5099.1
參數(shù)配置
平滑特征選擇nr_employed,參數(shù)設(shè)置中平滑方法選擇閾值平滑,閾值下限為5000,閾值上限為6000,如下圖所示。
運(yùn)行結(jié)果
nr_employed
5228.1
5195.8
5000.0
5099.1
5076.2
5228.1
5099.1
5099.1
5076.2
5099.1