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