创建决策树的示例

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

此决策树的属性如下所示:

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