ターゲットの割合が極端に少ない場合にモデルを構築する方法

[OS] ALL
[リリース] SAS Enterprise Miner 4.x
[キーワード] Enterprise Miner, Credit Scoring

[質問]

SAS Enterprise Miner 4.xで、ターゲット変数の水準の比率が極端に小さいデータを利用してモデルを構築しようとし ていますが、なかなか精度の高いモデルを構築することができません。
何か良い方法はないでしょうか(クレジット・スコアリング等を行なうケースで、全体に占める破産者の比率が少ない場合などが該当します)。

[回答]

ターゲット変数の水準で、予測の対象となる水準の比率が極端に小さい場合には、いろいろな対処策が考えられます。
ここではその一例として、SAS Enterprise Minerのリファレンス等にも記載されているオーバー・サンプリングと事前確率の調整を行なってモデルを構築する方法をご紹介します。この方法は、ターゲットがカテゴリカルなデータの場合のみ利用可能です。

ステップ1:事前確率の設定

オーバー・サンプリングにより、ターゲット水準の構成比が元のデータと異なってくるため、各ターゲット水準の確率値を元のデータの確率に適合するように調節する必要があります。そのため、ユーザー定義の事前ベクトルを作成します。
具体的には、[入力データソース]ノードのターゲット・プロファイラで設定を行ないます。
  1. [入力データソース]をダイアグラムに配置する。

  2. [入力データソース]ノードをダブルクリックし、設定画面を表示させる。

  3. [変数]タブにて設定を行なう。
    役割が"Target"に設定されている変数の上でマウスを右クリックし、[ターゲットプロファイルの編集]を選択する。

  4. ”(変数名)のターゲットプロファイル”ウィンドウが表示されるので、[事前確率]タブを選択して元データのターゲットの比率を入力する。

  5. 定義済みのプロファイルは編集できないため、左側のパン上でマウスを右クリックし、[追加]を選択する。

  6. 右側のパンに事前確率を入力する。事前確率は0-1の範囲を取り、合計が1となるように指定する。

    オリジナルデータセットがターゲット1(0.02)/ターゲット0(0.98)の場合の入力例
    
        ターゲット値 事前確率
        1 .02
        0 .98
    
    

  7. 上記で設定した事前確率を有効にするには、作成したプロファイルを選択してマウスを右クリックし、[使用する]を選択する。
    [使用する]に設定されたプロファイルには、「* (アスタリスク)」が表示される。

    この操作により、後述のモデル化ノードでは、設定した事前確率が調整されて算出されます。モデル構築時には、後述の[サンプリング]ノードで行なうオーバーサンプリングされたデータセットが使用されます。

ステップ2:オーバーサンプリング

  1. [入力データソース]ノード続いて、[サンプリング]ノードを接続する。

  2. [サンプリング]ノードをダブルクリックし、設定画面を表示させる。

  3. [一般]タブにて、[サンプリングの方法]で[層別抽出法]を選択する。

  4. [層別]タブに移り、[入力データソース]ノードで役割を"Target"に指定した変数を選択し、状態を"use"に変更する。

  5. [層別]タブの[オプション]サブタブに移動する。ここで、[基準]の中から[等しいオブザベーション]を選択する。

    ※ 上記設定にて、ターゲット変数の水準1/0 の比率が1:1のオーバー・サンプリングの設定が行なわれます。比率を変更したい場合には、[ユーザーの定義]を選択し、任意の比率を指定します。

ステップ3:モデルの構築

続いて、[データ分割]ノードやモデル化ノードを接続してモデルを構築する。