创建回归树的示例

此示例显示如何根据 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');

此回归树的属性如下所示:

  1. 在树中最多有 8 个层次
  2. 每个非叶节点至少有 10 个记录
  3. 非叶节点的杂质至少比其子节点杂质高 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');