回帰ツリーの作成例
この例では、ADULT サンプル・データ・セットで回帰ツリーを作成する方法を示します。
次のようにして、ADULT サンプル・データ・セットをトレーニング・データ・セットと検証データ・セットに分割できます。
CREATE VIEW CUSTOMER_DATA AS SELECT DURATION, IN_B2B_INDUSTRY, TOTAL_BUY, ANNUAL_REVENUE_MIL, CUST_ID AS ID from SAMPLES.CUSTOMER_CHURN;
CALL IDAX.SPLIT_DATA('intable=customer_data, traintable=customer_train, testtable=customer_test, id=id, fraction=0.65');
回帰ツリーを作成するときには、ツリーのさまざまなパラメーターに対して制約を使用できます。最もよく知られている制約は、ツリーの深さ、ツリー・ノード当たりの最小レコード数、およびツリー・ノード当たりの不純度の改善度の最小量です。
次の呼び出しは、ADULTTRAIN データ・セットに対してアルゴリズムを実行し、回帰ツリーを作成します。
CALL IDAX.GROW_REGTREE('model=customer_regt, intable=customer_train, id=ID, target=duration, maxdepth=8, minsplit=10, minimprove=0.01');
この回帰ツリーには以下の属性があります。
- ツリー内に最大 8 レベル
- 非リーフのノード 1 つあたりのレコード数は 10 以上
- 非リーフ・ノードの不純度は下位ノードの不純度よりも 1% 以上高い
モデルの過剰適合ノードをプルーニングするには、そのモデルを検証データ・セットに適用できます。
次の呼び出しは、回帰ツリーのオーバーフィッティング・ノードをプルーニングする方法を示しています。
CALL IDAX.PRUNE_REGTREE('model=customer_regt, valtable=customer_test');
オーバーフィッティング・ノードをプルーニングすると、adult_regt モデルの回帰ツリーのノード数は 171 から 99 に減少します。
作成後のモデルを検査するには、次の例に示すように、PRINT_MODEL ストアード・プロシージャーを使用します。
CALL IDAX.PRINT_MODEL('model=customer_regt');
PREDICT_REGTREE ストアード・プロシージャーを使用して AGE 列の値を予測できます。
次の呼び出しは、新しいトランザクションに値を関連付ける方法を示しています。
CALL IDAX.PREDICT_REGTREE('model=customer_regt, intable=customer_test, outtable=customer_regt_out');