特徴量アノマリー平滑化は、入力特徴量に含まれる外れ値を処理するための機械学習前処理手法です。この手法では、異常なデータを指定された範囲内に平滑化することで、より均一なデータ分布を実現し、モデルの安定性および予測性能を向上させます。このコンポーネントはスパース形式および密形式の両方のデータに対応しており、さまざまなタイプのデータセットで効果を発揮します。
仕組み
以下の平滑化手法が利用可能です。
-
Z スコア平滑化
特徴量が正規分布に従う場合、外れ値は通常、-3×alpha から 3×alpha の範囲外の値となります。ここで alpha は標準偏差です。この手法では、これらの外れ値を [-3×alpha,3×alpha] の範囲内に制限することで平滑化します。
たとえば、平均が 0、標準偏差が 3 の正規分布に従う特徴量において、特徴量値 -10 は外れ値として識別され、-3×3+0 に平滑化され、結果として -9 になります。同様に、値 10 は 3×3+0 に平滑化され、結果として 9 になります。
-
パーセンタイル平滑化
[minPer, maxPer] パーセンタイル範囲外のデータポイントを、minPer および maxPer パーセンタイルの値に平滑化します。
たとえば、値が 0 ~ 200 の範囲にある age 特徴量について、minPer を 0、maxPer を 50% に設定した場合、0 ~ 100 の範囲外の特徴量値は 0 または 100 に補正されます。
-
しきい値平滑化
指定された [minThresh, maxThresh] 範囲外のデータポイントを、minThresh および maxThresh 境界値に上限・下限制御(キャッピング)することで平滑化します。
たとえば、値が 0 ~ 200 の範囲にある age 特徴量について、minThresh を 10、maxThresh を 80 に設定した場合、10 ~ 80 の範囲外の特徴量値は 10 または 80 に補正されます。
-
ボックスプロット平滑化
この手法では、データの四分位範囲に基づいて上側および下側の平滑化しきい値を構築します。しきい値は次のように計算されます。minThresh=q1-1.5*(q3-q1) および maxThresh=q3+1.5*(q3-q1)。
特徴量アノマリー平滑化コンポーネントは、異常値を平滑化するだけであり、レコードをフィルタリングまたは削除することはありません。そのため、データの行数および列数は変更されません。
コンポーネントの構成
方法 1:ビジュアルインターフェイスを使用する
Machine Learning Designer で、パイプラインに Feature Anomaly Smoothing コンポーネントを追加し、右側のパネルでパラメーターを構成します。
|
グループ |
パラメーター |
説明 |
|
フィールド設定 |
平滑化対象の特徴列を選択 |
平滑化する特徴列を指定します。 |
|
ラベル列 |
指定すると、目的変数に対する特徴量の x-y 分布ヒストグラムを表示できます。 |
|
|
パラメーター設定 |
平滑化手法 |
平滑化手法です。有効な値は次のとおりです。
|
|
信頼度範囲 |
信頼度レベルです。平滑化手法 が Z スコア平滑化 に設定されている場合に必要です。 |
|
|
下限しきい値 |
デフォルト値 -9999 は、最小しきい値が設定されていないことを示します。 平滑化手法 が しきい値平滑化 に設定されている場合に必要です。 |
|
|
上限しきい値 |
デフォルト値 -9999 は、最大しきい値が設定されていないことを示します。 平滑化手法 が しきい値平滑化 に設定されている場合に必要です。 |
|
|
下限パーセンタイル |
最小パーセンタイルです。 平滑化手法 が パーセンタイル平滑化 または ボックスプロット平滑化 に設定されている場合に必要です。 |
|
|
上限パーセンタイル |
最大パーセンタイルです。 平滑化手法 が パーセンタイル平滑化 または ボックスプロット平滑化 に設定されている場合に必要です。 |
方法 2:PAI コマンドを使用する
SQL Script コンポーネント内で PAI コマンドを使用して、Feature Anomaly Smoothing コンポーネントを構成することもできます。詳細については、「SQL Script コンポーネント」をご参照ください。
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;
|
パラメーター |
必須 |
デフォルト |
説明 |
|
inputTable |
はい |
N/A |
入力テーブルの名前です。 |
|
inputTablePartitions |
いいえ |
入力テーブルのすべてのパーティション |
トレーニングに使用する入力テーブル内のパーティションを、 複数レベルのパーティションの場合、形式は 複数のパーティションを指定する場合は、, で区切ります。 |
|
outputTable |
はい |
N/A |
平滑化結果を格納する出力テーブルです。 |
|
labelCol |
いいえ |
なし |
ラベル列です。このパラメーターを指定すると、目的変数に対する特徴量の x-y 分布ヒストグラムを表示できます。 |
|
categoryCols |
いいえ |
なし |
カテゴリカル特徴量として処理する列を指定します。 |
|
softenCols |
はい |
N/A |
平滑化する特徴列を指定します。スパース特徴量の場合、このパラメーターを省略すると、コンポーネントは softenTopN パラメーターを使用して自動的に特徴量を選択します。 |
|
softenMethod |
いいえ |
ZScore |
平滑化手法です。有効な値は次のとおりです。
|
|
softenTopN |
いいえ |
10 |
softenCols パラメーターを指定しない場合、システムは自動的に平滑化対象の上位 N 個の特徴量を選択します。値は正の整数である必要があります。 |
|
cl |
いいえ |
10 |
信頼度レベルです。softenMethod が ZScore に設定されている場合に必要です。 |
|
minPer |
いいえ |
0.0 |
最小パーセンタイルです。softenMethod が min-max-per または boxplot に設定されている場合に必要です。 |
|
maxPer |
いいえ |
1.0 |
最大パーセンタイルです。softenMethod が min-max-per または boxplot に設定されている場合に必要です。 |
|
minThresh |
いいえ |
-9999 |
最小しきい値です。softenMethod が min-max-thresh に設定されている場合に必要です。 |
|
maxThresh |
いいえ |
-9999 |
最大しきい値です。softenMethod が min-max-thresh に設定されている場合に必要です。 |
|
isSparse |
いいえ |
false |
入力データがスパースキー・バリュー形式かどうかを指定します。有効な値は次のとおりです。
デフォルトでは、入力は密データとして扱われます。 |
|
itemSpliter |
いいえ |
, |
スパース特徴量内のアイテムのデリミタです。 |
|
kvSpliter |
いいえ |
: |
スパース特徴量内の各アイテムにおけるキーと値のデリミタです。 |
|
lifecycle |
いいえ |
出力テーブルのライフサイクル(日数)です。値は正の整数である必要があります。 |
|
|
coreNum |
いいえ |
システム割り当て |
コア数です。このパラメーターは memSizePerCore とともに使用します。値は 1 ~ 9,999 の整数である必要があります。 |
|
memSizePerCore |
いいえ |
システム割り当て |
コアあたりのメモリサイズ(MB 単位)です。値は 2,048 ~ 65,536 の整数である必要があります。 |
例
-
入力データ
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
-
パラメーター構成
平滑化対象の特徴列を選択 で、nr_employed を選択します。パラメーター設定 セクションで、平滑化手法 を しきい値平滑化、下限しきい値 を 5000、上限しきい値 を 6000 に設定します。
-
結果
nr_employed
5228.1
5195.8
5000.0
5099.1
5076.2
5228.1
5099.1
5099.1
5076.2
5099.1