デシジョン・ツリーの作成例
この例は、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');
デシジョン・ツリーには以下の属性があります。
- ツリー内に最大 8 レベル
- 非リーフのノード 1 つあたりのレコード数は 10 以上
- 非リーフ・ノードの不純度は下位ノードの不純度よりも 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');