使用回归学习应用程序训练回归树
这个示例展示了如何使用regression Learner应用程序创建和比较各种回归树,并将训练好的模型导出到工作区,以对新数据进行预测。
您可以训练回归树来预测对给定输入数据的响应。要预测回归树的响应,请从根(开始)节点一直跟踪到叶节点。在每个节点上,使用与该节点关联的规则决定遵循哪个分支。继续下去,直到到达一个叶节点。预测的响应是与该叶节点关联的值。
统计和机器学习工具箱™树是二叉的。预测的每一步都包括检查一个预测变量的值。例如,这是一个简单的回归树:
这棵树基于两个预测因子来预测响应,x1
而且x2
.要进行预测,从顶部节点开始。在每个节点上,检查预测器的值以决定遵循哪个分支。当分支到达叶节点时,响应被设置为与该节点对应的值。
本例使用carbig
数据集。该数据集包含1970年至1982年生产的不同车型的特征,包括:
加速度
气缸数量
发动机排量
发动机功率(马力)
模型一年
重量
原产国
每加仑英里数(MPG)
在给定其他变量作为输入的情况下,训练回归树来预测汽车模型的燃油经济性,单位为每加仑英里数。
在MATLAB®,加载
carbig
数据集,并创建包含不同变量的表:负载carbigcartable = table(加速度,气缸,位移,...马力,Model_Year、重量、起源、MPG);
在应用程序选项卡,在机器学习和深度学习组中,单击回归的学习者.
在回归的学习者选项卡,在文件部分中,选择从工作区中创建会话>.
下数据集变量在“从工作区新建会话”对话框中,选择
cartable
从工作空间中的表和矩阵列表中。观察应用程序有预选的响应和预测变量。
英里/加仑
被选为响应,所有其他变量被选为预测因子。对于本例,不要更改选择。若要接受默认验证方案并继续,请单击开始会议.默认的验证选项是交叉验证,以防止过拟合。
“回归学习器”创建响应图,并在图上记录数字x设在。
使用响应图来研究哪些变量对预测响应有用。为了可视化不同预测因子与响应之间的关系,在X列表下轴在地块的右边。
观察哪些变量与反应的相关性最明显。
位移
,马力
,重量
所有这些都对反应有明显的影响,并且都与反应呈负相关。选择变量
起源
下轴.系统自动显示箱形图。一个箱形图显示响应的典型值和任何可能的异常值。箱形图在绘制许多点重叠的标记时很有用。以显示箱形图时的变量x-axis很少有唯一值,在风格中,选择箱线图.训练一组回归树。的模型窗格已经包含了一个精细的树模型。将中等和粗树模型添加到草案模型列表中。在回归的学习者选项卡,在模型部分,单击箭头打开图库。在回归树组中,单击中树.该应用程序创建了一个草稿媒体树模型窗格。重新打开模型库并单击粗树在回归树组。该应用程序创建了一个草稿粗树模型窗格。
在火车部分中,点击火车都并选择火车都.该应用程序训练三个树模型,并为每个模型绘制真实的训练响应和预测响应。
请注意
如果您有并行计算工具箱™,那么应用程序有使用并行按钮默认开启。点击之后火车都并选择火车都或选择火车,该应用程序会打开一个并行的员工池。在此期间,您无法与该软件进行交互。泳池开放后,你可以继续与应用程序互动,而模型则并行训练。
如果你没有并行计算工具箱,那么应用程序有使用背景培训中的复选框。火车都默认选择的菜单。在你选择一个训练模型的选项后,应用程序会打开一个背景池。泳池开放后,当模特在后台训练时,你可以继续与应用程序互动。
请注意
验证在结果中引入了一些随机性。您的模型验证结果可能与本示例中显示的结果不同。
在模型窗格,检查RMSE(验证)(验证均方根误差)。最好的分数高亮显示在一个方框中。
的好树和中树有相似的rmse,而粗树不太准确。
中选择一个模型模型窗格中查看该模型的结果。例如,选择中树模型(模型2)响应图选项卡,在轴中,选择
马力
检查一下反应图。真实反应和预测反应现在都被绘制出来了。显示预测误差,以预测响应和真实响应之间的垂直线绘制,方法是选择错误复选框。有关当前所选模型的详细信息,请参见模型的总结选项卡。在回归的学习者选项卡,在模型部分中,点击总结.检查并比较其他模型特征,如r平方(决定系数)、MAE(平均绝对误差)和预测速度。要了解更多信息,请参见在摘要选项卡和模型窗格中查看模型统计信息.在总结选项卡,您还可以找到当前所选模型类型的详细信息,例如用于训练模型的超参数。
画出预测反应和真实反应。在回归的学习者选项卡,在情节和解释部分,单击箭头打开图库,然后单击预测与实际(验证)在验证结果组。使用此图可以了解回归模型对不同响应值的预测效果如何。
一个完美的回归模型已经预测了响应等于真实响应,所以所有的点都在一条对角线上。直线到任意一点的垂直距离就是对该点的预测误差。一个好的模型误差很小,所以预测结果分散在直线附近。通常一个好的模型的点在对角线周围大致对称地分散。如果您可以在图中看到任何清晰的模式,则很可能可以改进您的模型。
中选择其他模型模型窗格,打开每个模型的预测与实际图,然后比较结果。重新安排情节的布局,以便更好地比较情节。单击位于模型图选项卡最右边的Document Actions箭头。选择
瓷砖都
选项并指定1 × 3的布局。单击隐藏图形选项按钮在图的右上方为图腾出更多的空间。若要返回原始布局,可单击布局按钮。情节和解释部分并选择单型号(默认).
在模型画廊,选择所有的树在回归树组。为了改进树模型,需要在模型中包含不同的特性。看看是否可以通过去除低预测能力的特征来改进模型。
在回归的学习者选项卡,在选项部分中,点击特征选择.
在默认特性选择选项卡,可以选择不同的特征排序算法来确定最重要的特征。在你选择一个特征排名算法后,应用程序会显示一个排序特征重要性得分的图表,其中较大的得分(包括
正
S)表示更大的特征重要性。该表显示了排名特征及其得分。在这个例子中,两个MRMR而且方差齐性检验特征排序算法将加速度和原产国预测器排在最低的位置。应用程序会禁用RReliefF选项,因为预测器包括数字变量和分类变量的混合。
下特征排序算法,点击方差齐性检验.下特征选择,使用默认选项选择排名最高的特性,以避免验证指标中的偏差。指定为模型训练保留7个特征中的4个。
点击保存并应用.应用程序将特性选择更改应用到当前草案模型和使用模型画廊。
使用简化的特征集训练树模型。在回归的学习者选项卡,在火车部分中,点击火车都并选择火车都或选择火车.
观察的新模型模型窗格。这些模型与之前的回归树相同,但只使用7个预测因子中的4个进行训练。该应用程序显示使用了多少预测器。控件中的模型,单击模型窗格中,并注意展开的复选框特征选择模型剖面总结选项卡。
请注意
如果使用交叉验证方案并选择使用选择排名最高的特征选项,然后对于每个训练折叠,应用程序在训练模型之前执行特征选择。不同的折叠可以选择不同的预测因子作为最高等级的特征。桌子上的默认特性选择TAB显示了在训练和验证数据上训练的完整模型使用的预测器列表。
去掉这三个特征的模型表现不如使用所有预测因子的模型。一般来说,如果数据收集昂贵或困难,您可能更喜欢在没有预测器的情况下表现令人满意的模型。
训练三个回归树预设只使用
马力
作为一个预测者。在模型画廊,选择所有的树在回归树组。在模型中总结选项卡,展开特征选择部分。选择选择单独的特征选项,并清除所有功能的复选框马力
.在回归的学习者选项卡,在火车部分中,点击火车都并选择选择火车.仅使用发动机功率作为预测因素会导致模型精度较低。然而,考虑到它们只使用一个预测器,这些模型表现得很好。有了这个简单的一维预测空间,粗树现在表现得和中等树和精细树一样好。
选择最好的模型模型窗格并查看残差图。在回归的学习者选项卡,在情节和解释部分,单击箭头打开图库,然后单击残差(验证)在验证结果组。残差图显示了预测响应和真实响应之间的差异。若要将残差显示为折线图,请在风格部分中,选择行.
下轴,选择要在上绘图的变量x设在。选择真实反应、预测反应、记录数或其中一个预测因子。
通常一个好的模型的残差在0附近大致对称地分散。如果你能在残差中看到任何清晰的模式,你就有可能改进你的模型。
要了解模型超参数设置,请在中选择最佳模型模型窗格并展开模型Hyperparameters模型中的部分总结选项卡。比较粗树、中树和细树模型,并注意模型超参数中的差异。特别是最小叶片尺寸粗树设置为36,中等树设置为12,细树设置为4。该设置控制树叶的大小,并通过树叶控制回归树的大小和深度。
为了尝试改进最佳模型(使用所有预测器训练的中间树),更改最小叶片尺寸设置。中的模型模型窗格。在回归的学习者选项卡,在模型部分中,点击重复的.在总结选项卡,更改最小叶片尺寸取值为8。然后,在火车部份回归的学习者选项卡上,单击火车都并选择选择火车.
有关回归树设置的详细信息,请参见回归树.
您可以将所选模型的完整或紧凑版本导出到工作区。在回归的学习者选项卡,在出口部分中,点击出口模式选择其中之一出口模式或出口紧凑型.在“导出模型”对话框中,单击好吧接受默认变量名
trainedModel
.要查看有关结果的信息,请查看命令窗口。
使用导出的模型对新数据进行预测。例如,预测
cartable
数据在您的工作空间,输入:yfit = trainedModel.predictFcn(cartable)
yfit
包含每个数据点的预测响应。如果您想用新数据自动训练相同的模型或学习如何以编程方式训练回归模型,您可以从应用程序生成代码。要为训练的最佳模型生成代码,请在回归的学习者选项卡,在出口部分中,点击生成函数.
该应用程序从你的模型生成代码,并在MATLAB编辑器中显示文件。要了解更多信息,请参见生成MATLAB代码训练模型与新数据.
提示
使用与本例中相同的工作流来评估和比较您可以在回归学习者中训练的其他回归模型类型。
训练所有可用的不可优化回归模型预设:
在回归的学习者选项卡,在模型部分,单击箭头打开回归模型库。
在开始组中,单击所有.
在火车部分中,点击火车都并选择火车都.
要了解其他回归模型类型,请参见在回归学习应用程序中训练回归模型.