提升决策树回归
重要
对机器学习工作室(经典)的支持将于 2024 年 8 月 31 日结束。 建议在该日期之前转换到 Azure 机器学习。
从 2021 年 12 月 1 日开始,你将无法创建新的机器学习工作室(经典)资源。 在 2024 年 8 月 31 日之前,可继续使用现有的机器学习工作室(经典)资源。
ML 工作室(经典)文档即将停用,将来可能不会更新。
使用提升决策树算法创建回归模型
模块概述
本文介绍如何使用机器学习 Studio 中的 "提升决策树回归" 模块 (经典) ,通过使用提升来创建回归树的系综。 “提升”表示每个树依赖于前面的树。 该算法通过拟合每个树前面剩余的树来进行学习。 因此,决策树系综中的提升往往会提高准确度,但在某种程度上也会带来降低覆盖面的小风险。
此回归方法是一种监督式学习方法,因此需要带标签的数据集。 标签列必须包含数字值。
注意
此模块只能与使用数字变量的数据集配合使用。
定义模型后,通过使用 训练模型 或 微调模型超参数 模块来训练该模型。
提示
想要了解有关已创建的树的详细信息? 在对模型进行训练后,右键单击 " 训练模型 " 模块的输出 (或 调整 model 超参数 module) 并选择 " 可视化 " 以查看在每个迭代上创建的树。 可以向下钻取到每个树的拆分,并查看每个节点的规则。
有关提升回归树的详细信息
提升是用于创建系综模型以及装袋、随机林等的多种经典方法中的一种。 在机器学习 Studio (经典) ,提升的决策树使用市场渐变提升算法的有效实现。 梯度提升是解决回归问题的一种机器学习技术。 它使用预定义的损失函数测量每个步骤中的误差并在下一个步骤中纠正误差,以步进的方式生成每个回归树。 因此,预测模型实际上是较弱预测模型的系综。
在回归问题中,提升可采用步进方式生成一系列树,然后选择使用任意可微分损失函数的最佳树。
有关更多信息,请参阅以下文章:
https://wikipedia.org/wiki/Gradient_boosting#Gradient_tree_boosting
这篇有关梯度提升的维基百科文章提供了一些有关提升树的背景知识。
https://research.microsoft.com/apps/pubs/default.aspx?id=132652
Microsoft Research:从 RankNet 到 LambdaRank 再到 LambdaMART:概述。 J.C. Burges 撰写。
此外,梯度提升法可以使用适当的损失函数将分类问题化简为回归来解决此类问题。 有关分类任务的提升树实现的详细信息,请参阅双类提升决策树。
如何配置“提升决策树回归”
将 提升决策树 模块添加到试验中。 可以在“机器学习”、“初始化”中的“回归”类别下找到此模块。
通过设置“创建训练器模式”选项来指定如何训练模型。
单个参数:如果知道自己想要如何配置模型,请选择此选项并提供一组特定的值作为参数。
参数范围:如果不确定最佳参数并想要运行参数整理,请选择此选项。 选择要循环访问的值范围,优化模型超参数将循环访问所提供设置的所有可能组合,以确定产生最佳结果的超参数。
每个树的最大叶数:指示可在任何树中创建的终端节点(叶)的最大数目。
如果增大此值,则可能会增加树的大小并获得更好的精度,但风险是过度拟合和更长的训练时间。
每个叶节点的最小样本数:指示在树中创建任何终端节点(叶)所需的最小案例数。
通过增加此值,可以增加创建新规则的阈值。 例如,使用默认值 1 时,即使是单个案例也可以导致创建新规则。 如果将值增加到 5,则训练数据将必须包含至少 5 个满足相同条件的案例。
学习速率:键入一个介于 0 和 1 之间的数字,用以定义学习时的步幅。 学习速率决定了学习器收敛于最优解的速度。 如果步幅太大,则可能会越过最优解。 如果步幅太小,则训练将花费更长的时间来收敛于最优解。
构造的树数:指示要在系综中创建的决策树总数。 通过创建更多决策树,你可能会获得更好的覆盖范围,但训练时间将会增加。
此值还控制对训练后的模型进行可视化时显示的树的数量。 若要查看或打印 ingle 树,可将值设置为 1;但是,这意味着在树 (仅生成一个树,其中) 初始参数集,并且不执行其他迭代。
随机数种子:键入用作随机种子值的可选非负整数。 指定种子可以确保具有相同数据和参数的运行之间的可再现性。
随机种子默认设置为 0,这意味着将从系统时钟获取初始种子值。
允许未知的分类级别:选择此选项可在定型集和验证集中为未知值创建组。 如果取消选择此选项,则模型只能接受训练数据中包含的值。 对于已知值,此模型可能不太精确,但是对于新的(未知)值,它可以提供更好的预测。
添加一个训练数据集和一个训练模块:
运行试验。
结果
在训练完成后:
若要查看在每次迭代中创建的树,请右键单击 " 训练模型 模块",然后选择 " 定型模型 " 进行可视化。 如果使用 优化模型超参数,请右键单击模块并选择 " 训练最佳模型 ",以可视化最佳模型。
单击每个树以向下钻取拆分,并查看每个节点的规则。
若要使用模型进行评分,请将其连接到评分模型,以预测新输入示例的值。
若要保存已训练模型的快照,请右键单击训练模块的“已训练模型”输出,并选择“另存为”。 保存的训练模型的副本不会在后续运行的实验中更新。
示例
有关如何在机器学习中使用提升树的示例,请参阅 Azure AI 库:
需求估计:使用 提升决策树回归 预测特定时间的租赁数。
Twitter 情绪分析:使用回归生成预测评级。
技术说明
本部分包含实现详情、使用技巧和常见问题解答。
提示
一般而言,当特征在某种程度上相关时,决策树会生成更好的结果。 如果特征有很大程度的平均信息量(即,它们不相关),它们共享很少或没有相互信息,并对数据进行排序的树中则不会产生大量的预测性的重要性。
实现详细信息
树的系综生成每个步骤,在计算回归树,它模拟的渐变的丢失函数中,并将其添加到以前的树,但新树的丢失降到最低的系数。 MART 在给定的实例上生成的系综的输出是树输出的总数。
二元分类问题中,通过使用某种形式的校准,输出应转换为概率。
对于回归问题,输出是预测的函数的值。
对于排名问题,实例按系综的输出值排序。
模块参数
名称 | 范围 | 类型 | 默认 | 说明 |
---|---|---|---|---|
每个树的最大叶数 | >=1 | Integer | 20 | 指定每个树的最大叶数 |
每个叶节点的最小样本数 | >=1 | Integer | 10 | 指定构成一个叶节点所需的最小用例数 |
学习速率 | [double.Epsilon;1.0] | Float | 0.2 | 指定初始学习速率 |
构造的总树数 | >=1 | Integer | 100 | 指定训练期间可以创建的最大树数 |
随机数种子 | any | Integer | 提供模型使用的随机数生成器种子。 保留空白表示使用默认值。 | |
允许未知的分类级别 | any | 布尔 | 是 | 如果为 true,则为每个分类列创建一个附加级别。 测试数据集中不可用于训练数据集的级别将映射到此附加级别。 |
Outputs
名称 | 类型 | 说明 |
---|---|---|
未训练的模型 | ILearner 接口 | 未训练的回归模型 |