すべてのプロダクト
Search
ドキュメントセンター

Platform For AI:特徴量の離散化

最終更新日:Apr 02, 2026

一意の値が多数存在する連続的な数値特徴量や、極端な外れ値を含む連続的な数値特徴量は、特に分類タスクにおいてモデルの精度を低下させる可能性があります。特徴量の離散化(Feature Discretization)では、連続的な数値列を離散的なビン(区間)に変換し、カテゴリ型入力を想定するアルゴリズムとの互換性を確保するとともに、外れ値の影響を低減します。

このコンポーネントは、数値データ型の密な特徴量(dense feature)のみを対象とします。疎な特徴量(sparse feature)は自動的にフィルターされます。

サポートされる離散化メソッド

教師なしメソッド

これらのメソッドは、ラベル情報を使わず、データ分布に基づいて値を分割します。

メソッド動作の仕組みデフォルト
等幅離散化値の範囲を等しい幅のビンに分割します。各ビンは同じ範囲の値をカバーします。はい
等頻度離散化各ビンに含まれるデータポイント数が等しくなるように値を配分します。値を均等に分散させることで、外れ値の影響を低減します。いいえ

教師ありメソッド

これらのメソッドは、エントロピー利得による探索を用いて、ラベル情報をもとに最適な分割点を特定します。アルゴリズムがデータ全体を走査するため、教師あり離散化は教師なしメソッドと比較して大幅に処理時間が長くなります。

ラベル列のデータ型は ENUM、STRING、または BIGINT である必要があります。教師ありメソッドによって生成されるビンの数は、maxBins パラメーターで制御されません。
メソッド動作の仕組み
ジニ利得に基づく離散化各ステップでジニ不純度を最小化する分割点を特定します。
エントロピー利得に基づく離散化各ステップで情報利得を最大化する分割点を特定します。

離散化メソッドの選択

シナリオ推奨メソッド
列に有効なモデリングが困難なほど多数の一意の値が存在する等幅離散化または等頻度離散化
値に極端な外れ値が存在し、モデルが歪む等頻度離散化(値を均等に分散させ、外れ値の影響を低減)
ラベルデータがあり、分割点がクラス境界を反映する必要があるジニ利得に基づく離散化またはエントロピー利得に基づく離散化
信用スコアリングやリスクモデリングで証拠重み(Weight of Evidence:WOE)指標が必要代わりに「ビニング」コンポーネントをご利用ください

コンポーネントの設定

方法 1:パイプラインページから設定(推奨)

Machine Learning Designer(旧称:Machine Learning Studio)のパイプラインページで、特徴量の離散化(Feature Discretization)コンポーネントを設定します。

[フィールド設定] タブ

パラメーター説明
個別の特徴離散化する特徴量を指定します。
ラベル列(任意)ラベル列を指定します。指定した場合、出力に各特徴量とラベルの関係を示す x-y ヒストグラムが表示されます。

[パラメーター設定] タブ

パラメーター説明
離散化メソッド使用するメソッドを指定します。有効な値: 等幅離散化等頻度離散化ジニ利得に基づく離散化エントロピー利得に基づく離散化。デフォルト値:等幅離散化。
離散化間隔ビンの数を指定します。1 より大きい正の整数である必要があります。

[チューニング] タブ

パラメーター説明
コア数計算に使用するコア数を指定します。正の整数である必要があります。
コアあたりのメモリサイズ各コアに割り当てるメモリ量を指定します。

方法 2:PAI コマンドを使用

SQL スクリプトコンポーネント経由で PAI コマンドを呼び出します。詳細については、「SQL スクリプト」をご参照ください。

PAI -name fe_discrete_runner_1 -project algo_public
   -DdiscreteMethod=SameFrequecy
   -Dlifecycle=28
   -DmaxBins=5
   -DinputTable=pai_dense_10_1
   -DdiscreteCols=nr_employed
   -DoutputTable=pai_temp_2262_20382_1
   -DmodelTable=pai_temp_2262_20382_2;

パラメーター

パラメーター必須デフォルト説明
inputTableはい入力テーブル名を指定します。
inputTablePartitionsいいえすべてのパーティショントレーニングに使用するパーティションを指定します。フォーマット: Partition_name=value。マルチレベルパーティションの場合は:name1=value1/name2=value2。複数のパーティションを指定する場合は、カンマで区切ります。
outputTableはい離散化された値を含む出力テーブル。
discreteColsはい""離散化する特徴量を指定します。疎な特徴量は自動的にフィルターされます。
labelColいいえラベル列を指定します。指定すると、出力に x-y ヒストグラムが有効になります。
discreteMethodいいえ等尺性離散化離散化メソッドを指定します。有効な値: 等幅離散化(等幅)、等頻度離散化(等頻度)、ジニ利得に基づく離散化エントロピー利得に基づく離散化
maxBinsいいえ100ビンの数を指定します。1 より大きい正の整数である必要があります。教師ありメソッドには適用されません。
lifecycleいいえ7出力テーブルのライフサイクル(日数)を指定します。正の整数である必要があります。
coreNumいいえシステムが決定コア数を指定します。memSizePerCore と併用します。正の整数である必要があります。
memSizePerCoreいいえシステムが決定コアあたりのメモリサイズ(MB)を指定します。正の整数である必要があります。

サンプル

この例では、等幅離散化を用いて単一の数値列を 5 個のビンに離散化します。

入力データの準備

以下の SQL ステートメントを実行して、入力テーブルを作成します:

CREATE TABLE IF NOT EXISTS pai_dense_10_1 AS
SELECT nr_employed
FROM bank_data
LIMIT 10;

コンポーネントの設定

  • 入力テーブル:pai_dense_10_1

  • [フィールド設定] タブ: 離散化対象の特徴量nr_employed に設定します。

  • [パラメーター設定] タブ: 離散化メソッド等幅離散化 に、離散化間隔5 に設定します。

出力

nr_employed の離散化後の値は以下のとおりです:

nr_employed
4.0
3.0
1.0
3.0
2.0
4.0
3.0
3.0
2.0
3.0