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