创建回归树的示例
此示例显示如何根据 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 个层次
- 每个非叶节点至少有 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');