スコアカードトレーニングコンポーネントは、組み込みの特徴量エンジニアリングを備えたロジスティック回帰または線形回帰を使用して、信用スコアリングモデルをトレーニングします。標準の線形回帰とは異なり、トレーニング前にビニングベースの特徴量離散化を適用し、オプションで Weight of Evidence (WOE) を使用して特徴量を変換します。トレーニングプロセスでは、スコア変換、制約ベースの最適化、ステップワイズ特徴量選択がサポートされます。
ビニングを行わない場合、スコアカードトレーニングは標準のロジスティック回帰または線形回帰と同等です。
制限事項
スコアカードトレーニングコンポーネントは、モデル出力を MaxCompute の一時テーブルに格納します。Machine Learning Studio のデフォルトの保持期間は 369 日で、これは現在のワークスペースに対して Machine Learning Designer で設定された一時テーブルのライフサイクルと一致します。詳細については、「ワークスペースの管理」をご参照ください。
デフォルトの保持期間を超えてモデルを保持するには、Write Table コンポーネントを使用して永続化します。詳細については、「アルゴリズムコンポーネントに関するよくある質問」をご参照ください。
基本概念
特徴量エンジニアリング
スコアカードトレーニングと標準の線形モデリングの主な違いは、スコアカードトレーニングではモデルを適合させる前に特徴量エンジニアリングを適用する点です。ビニングコンポーネントは、2 つのアプローチをサポートしています。
ワンホットエンコーディング:各変数をビニングし、N 個のダミー変数 (N = ビンの数) を生成します。個々のダミー変数に制約を適用できます。
WOE 変換:元の変数の値を、そのビンの Weight of Evidence (WOE) 値に置き換えます。これにより、予測情報が特徴量に直接エンコードされます。
スコア変換
信用スコアリングでは、生のモデル予測 (対数オッズ) を解釈可能なスコアに変換する必要があります。スコアカードトレーニングでは、3 つのパラメーターを使用して線形変換を適用します。
| パラメーター | 説明 |
|---|---|
scaledValue | 参照オッズ値で割り当てられるスコア |
odds | scaledValue |
pdo | オッズを 2 倍にするためのポイント |
これらの 3 つのパラメーターは、スコアライン上の 2 つの点を定義します。たとえば、scaledValue=800、odds=50、pdo=25 の場合、次のようになります。
log(50) = a × 800 + b
log(100) = a × 825 + ba と b を解いて線形マッピングを導き出し、それを適用してモデルの重みをスコアに変換します。
-Dscale パラメーターを使用して、JSON 形式で変換設定を渡します。
{"scaledValue": 800, "odds": 50, "pdo": 25}-Dscale が指定されている場合、3 つのフィールドはすべて必須です。
制約
トレーニング中に、変数の重みの学習方法を制御するための制約を追加できます。制約はビニングコンポーネントで指定します。制約は、単一セルのテーブル (inputConstraintTableName) に格納された JSON 文字列として、スコアカードトレーニングに自動的に渡されます。
制約は、SQP および バリアー法 の最適化アルゴリズムでのみ有効です。L-BFGS またはニュートン法を選択した場合、すべての制約は無視されます。
サポートされている制約タイプ:
| 制約 | 効果 |
|---|---|
"<" | 重みを昇順にソート |
">" | 重みを降順にソート |
"=" | 特定のビンの重みを固定値に設定 |
"%" | 2 つのビンの重みが比例関係を満たす必要がある |
"UP" | ビンの重みの上限。たとえば、値 0.5 は、トレーニング後の変数の重みが最大 0.5 であることを示します。 |
"LO" | ビンの重みの下限。たとえば、値 0.5 は、トレーニング後の変数の重みが最小 0.5 であることを示します。 |
制約 JSON の例 (制約テーブルの 1 行 1 列):
{
"name": "feature0",
"<": [[0, 1, 2, 3]],
">": [[4, 5, 6]],
"=": ["3:0", "4:0.25"],
"%": [["6:1.0", "7:1.0"]]
}組み込みの制約:各変数について、トレーニング母集団全体の平均スコアは常に 0 です。その結果、切片の scaled_weight 値は、すべての変数にわたる母集団の平均スコアと等しくなります。
最適化アルゴリズム
[パラメーター設定]タブで、[詳細オプション]を選択して、最適化アルゴリズムを設定します。
| アルゴリズム | 順序 | 制約をサポート | 最適なケース |
|---|---|---|---|
| L-BFGS | 最初 | いいえ | 大規模な特徴量セット |
| ニュートン法 | 2 番目 | いいえ | 小から中規模の特徴量セット、高速な収束 |
| バリアー法 | 第2 | はい | ほとんどの場合で SQP と同等 |
| SQP | 第2 | はい | 制約付きの一般的な使用 (推奨) |
最適化アルゴリズムに慣れていない場合は、[最適化方法] を [自動選択] に設定します。システムは、データ量および制約の有無に基づいて、最も適切なアルゴリズムを選択します。
特徴量選択
このコンポーネントは、ステップワイズ特徴量選択 (フォワードセレクションとバックワードセレクションの組み合わせ) をサポートしています。各フォワードステップ (変数の追加) の後、バックワードパスで有意性しきい値を満たさなくなった変数が削除されます。
以下の表を使用して、ご自身のセットアップに適した選択基準を選択してください。
| 選択基準 | 特徴量エンジニアリング | モデルタイプ | しきい値 |
|---|---|---|---|
| 限界寄与 | ワンホットまたは WOE (任意) | 任意 | 推奨開始点:10E-5 |
| スコア検定 | WOE 変換のみ | ロジスティック回帰 | カイ二乗による SLENTRY (フォワード)、SLSTAY (バックワード) |
| F 検定 | WOE 変換のみ | 線形回帰 | F 分布による SLENTRY (フォワード)、SLSTAY (バックワード) |
限界寄与は、変数 X があるモデルとないモデルの目的関数の値の差を測定します。これはすべての特徴量エンジニアリングとモデルタイプの組み合わせに適用できるため、最も柔軟な基準です。
スコア検定 (フォワード):各反復で、各候補変数のスコアカイ二乗が計算されます。p 値が SLENTRY を下回ることを条件に、最も高いカイ二乗を持つ変数が追加されます。バックワードパスでは Wald カイ二乗が使用され、p 値が SLSTAY を超える変数は削除されます。
F 検定 (フォワード):スコア検定に似ていますが、F 分布を使用します。各候補変数に対して F 値が計算され、p 値が SLENTRY を超える変数は除外されます。バックワードパスでも同じ F 値のロジックが適用されます。
強制変数選択:無条件に含める変数を指定します。これらの変数にはフォワードセレクションもバックワードセレクションも適用されません。これは -Dselected パラメーターを使用して設定します。
{"max_step": 2, "slentry": 0.0001, "slstay": 0.0001}-Dselected が空白のままか、max_step が 0 に設定されている場合、特徴量選択は実行されません。
パラメーター
スコアカードトレーニングコンポーネントは、Machine Learning Designer UI を通じて、または PAI コマンドを直接実行して設定します。コマンドの例:
pai -name=linear_model -project=algo_public
-DinputTableName=input_data_table
-DinputBinTableName=input_bin_table
-DinputConstraintTableName=input_constraint_table
-DoutputTableName=output_model_table
-DlabelColName=label
-DfeatureColNames=feaname1,feaname2
-Doptimization=barrier_method
-Dloss=logistic_regression
-Dlifecycle=8| パラメーター | 必須 | デフォルト | 説明 |
|---|---|---|---|
inputTableName | はい | — | 入力特徴量テーブルの名前 |
labelColName | はい | — | ラベル列の名前 |
outputTableName | はい | — | 出力モデルテーブルの名前 |
inputTablePartitions | いいえ | テーブル全体 | 入力特徴量テーブルから読み取るパーティション |
inputBinTableName | いいえ | — | ビニング結果テーブル。ビニングルールに基づいて自動的な特徴量の離散化をトリガーします |
featureColNames | いいえ | ラベル以外のすべての列 | トレーニングに含める特徴量列 |
inputConstraintTableName | いいえ | — | 制約 JSON を含むテーブル (1 セル) |
optimization | いいえ | auto | 最適化アルゴリズム。有効な値:lbfgs、newton、barrier_method、sqp、auto |
loss | いいえ | logistic_regression | 損失関数。有効な値:logistic_regression、least_square |
iterations | いいえ | 100 | 最適化の最大反復回数 |
l1Weight | いいえ | 0 | L1 正則化の重み。有効なのは、optimization=lbfgs |
l2Weight | いいえ | 0 | L2 正則化の重み |
m | いいえ | 10 | L-BFGS の履歴ステップサイズ。optimization=lbfgs |
scale | いいえ | — | JSON 形式のスコア変換設定 |
selected | いいえ | — | JSON 形式の特徴量選択設定 |
convergenceTolerance | いいえ | 1e-6 | 収束許容度 |
positiveLabel | いいえ | 1 | 正例のラベル値 |
lifecycle | いいえ | — | 出力テーブルのライフサイクル (日数) |
coreNum | いいえ | システムが決定 | コア数 |
memSizePerCore | いいえ | システムが決定 | コアあたりのメモリ (MB) |
出力
スコアカードトレーニングコンポーネントは、各特徴量ビンの評価統計を含むモデルレポートを生成します。レポートには、3 つのフィールドグループが含まれます。
特徴量とビンのメタデータ:
feaname、binid、bin、constraint、weight、scaled_weightトレーニングセットの統計:
woe、contribution、total、positive、negative、percentage_pos、percentage_negテストセットの統計:
test_woe、test_contribution、test_total、test_positive、test_negative、test_percentage_pos、test_percentage_neg
完全な列リファレンス:
| 列 | 型 | 説明 |
|---|---|---|
feaname | STRING | 特徴量名 |
binid | BIGINT | ビン ID |
bin | STRING | ビン間隔の説明 |
constraint | STRING | トレーニング中にビンに適用された制約 |
weight | DOUBLE | ビンの重み。ビニングのない非スコアカードモデルの場合、これはモデル変数の重みです |
scaled_weight | DOUBLE | ビンの重みから線形変換されたスコア (スコアカードトレーニングのみ) |
woe | DOUBLE | トレーニングセットにおけるビンの WOE 値 |
contribution | DOUBLE | トレーニングセットにおけるビンの限界寄与 |
total | BIGINT | ビン内の合計サンプル数 (トレーニングセット) |
positive | BIGINT | ビン内の正例数 (トレーニングセット) |
negative | BIGINT | ビン内の負のサンプル数 (トレーニングセット) |
percentage_pos | DOUBLE | ビンの正例数と合計正例数の比率 (トレーニングセット) |
percentage_neg | DOUBLE | ビンの負のサンプル数と合計負のサンプル数の比率 (トレーニングセット) |
test_woe | DOUBLE | テストセットにおけるビンの WOE 値 |
test_contribution | DOUBLE | テストセットにおけるビンの限界寄与 |
test_total | BIGINT | ビン内の合計サンプル数 (テストセット) |
test_positive | BIGINT | ビン内の正例数 (テストセット) |
test_negative | BIGINT | ビン内の負のサンプル数 (テストセット) |
test_percentage_pos | DOUBLE | ビンの正例数と合計正例数の比率 (テストセット) |
test_percentage_neg | DOUBLE | ビンの負のサンプル数と合計負のサンプル数の比率 (テストセット) |