デシジョン・ツリーの作成例

この例は、ADULT サンプル・データ・セットに基づいてデシジョン・ツリーを作成する方法を示しています。

次のようにして、ADULT サンプル・データ・セットをトレーニング・データ・セットと検証データ・セットに分割できます。

CALL IDAX.SPLIT_DATA('intable=ADULT, traintable=ADULTTRAIN, testtable=ADULTTEST, id=ID, fraction=0.35');

デシジョン・ツリーを作成するには、ツリーのさまざまなパラメーターに対して制約を使用できます。最もよく知られている制約は、ツリーの深さ、ツリー・ノード当たりの最小レコード数、およびツリー・ノード当たりの不純度の改善度の最小量です。

以下の呼び出しは、ADULTTRAIN データ・セットでアルゴリズムを実行し、デシジョン・ツリーを作成します。

CALL IDAX.GROW_DECTREE('model=adult_dect, intable=ADULTTRAIN, id=ID, target=MARITAL_STATUS, maxdepth=8, minsplit=10, minimprove=0.01');

デシジョン・ツリーには以下の属性があります。

  1. ツリー内に最大 8 レベル
  2. 非リーフのノード 1 つあたりのレコード数は 10 以上
  3. 非リーフ・ノードの不純度は下位ノードの不純度よりも 1% 以上高い

モデルの過剰適合ノードをプルーニングするには、そのモデルを検証データ・セットに適用できます。

以下の呼び出しは、デシジョン・ツリーの過剰適合ノードをプルーニングする方法を示しています。

CALL IDAX.PRUNE_DECTREE('model=adult_dect, valtable=ADULTTEST');

過剰適合ノードをプルーニングすることにより、デシジョン・ツリー内のノードの数は、adult_dect モデルで 69 から 25 に減少します。

作成後のモデルを検査するには、次の例に示すように、PRINT_MODEL ストアード・プロシージャーを使用します。

CALL IDAX.PRINT_MODEL('model=adult_dect');

PREDICT_DECTREE ストアード・プロシージャーは、MARITAL_STATUS 列の値を予測します。

次の呼び出しは、新しいトランザクションに値を関連付ける方法を示しています。

CALL IDAX.PREDICT_DECTREE('model=adult_dect, intable=ADULTTEST, outtable=adult_dect_out');