这个例子展示了如何在回归学习器应用程序中使用超参数优化来调整回归集成的超参数。将经过训练的可优化集成的测试集性能与性能最好的预置集成模型的测试集性能进行比较。
在MATLAB®命令窗口,加载carbig
数据集,并创建一个包含大多数变量的表。将表分为训练集和测试集。
负载carbigcartable =表(加速、气缸、位移,...马力,Model_Year、重量、起源、MPG);rng (“默认”)%用于数据分割的再现性n =长度(MPG);分区= cvpartition (n,“坚持”, 0.15);idxTrain =培训(分区);%训练集指标cartableTrain = cartable (idxTrain:);cartableTest = cartable (~ idxTrain:);
回归学习者开放。单击应用程序选项卡,然后单击右边的箭头应用程序部分以打开应用程序库。在机器学习和深度学习组中,单击回归的学习者.
在回归的学习者选项卡,文件部分中,选择新会话>从工作区.
在“来自工作区的新会话”对话框中,选择cartableTrain
表的数据集变量列表。
如对话框所示,应用程序选择响应和预测变量。默认的响应变量是英里/加仑
.默认的验证选项是5倍交叉验证,以防止过拟合。对于本例,不要更改默认设置。
要接受默认选项并继续,请单击开始会议.
训练所有预先设置的集合模型。在回归的学习者选项卡,模型类型段,单击箭头以打开图库。在乐团的树木组中,单击所有的集合体.在培训部分中,点击火车.该应用程序训练每个集合模型类型中的一个,并显示模型在模型窗格。
提示
如果您有并行计算工具箱™,您可以训练所有的集成模型(所有的集合体)同时选择使用并行按钮培训节之前点击火车.你点击后火车,打开并行池对话框打开并保持打开状态,同时应用程序打开并行工作人员池。在此期间,您不能与该软件进行交互。泳池开放后,该应用程序会同时训练所有模特。
该应用程序显示了汽车数据的响应图。蓝点为真值,黄点为预测值。的模型窗格显示了每个模型的验证RMSE。
请注意
验证在结果中引入了一些随机性。您的模型验证结果可能与本例中显示的结果不同。
选择一个可优化的集成模型进行训练。在回归的学习者选项卡,模型类型段,单击箭头以打开图库。在乐团的树木组中,单击Optimizable合奏.应用程序禁用使用并行按钮时,您选择一个可优化的模型。
选择要优化的模型超参数。在模型类型部分中,选择高级>高级.应用程序会打开一个对话框,你可以在其中进行选择优化选中要优化的超参数。默认情况下,选中所有复选框。对于本例,接受默认选择并关闭对话框。
在培训部分中,点击火车.
该应用程序显示最小均方误差图当它运行优化过程时。在每次迭代中,应用程序都会尝试不同的超参数值组合,并使用该迭代之前观察到的最小验证均方误差(MSE)来更新图,用深蓝色表示。当应用程序完成优化过程时,它会选择一组优化过的超参数,用红色方块表示。有关更多信息,请参见最小均方误差图.
应用程序列出了优化的超参数优化结果地块右边的部分和优化Hyperparameters部分的当前模型的总结窗格。
请注意
一般情况下,优化结果是不可重复的。
比较训练后的预置集成模型和训练后的可优化模型。在模型窗格,应用程序突出最低RMSE(验证)(验证均方根误差),在方框中列出。在本例中,经过训练的可优化集成优于两个预置模型。
经过训练的可优化模型并不总是比预先训练的模型具有更低的RMSE。如果一个经过训练的可优化模型不能很好地执行,您可以尝试通过更长时间地运行优化来获得更好的结果。在模型类型部分中,选择高级>优化选项.在对话框中,增加迭代价值。例如,双击默认值30.
并输入值为60
.
由于超参数调优往往会导致模型过拟合,因此在测试集中检查可优化集成模型的性能,并将其与最佳预置集成模型的性能进行比较。首先将测试数据导入应用程序。
在回归的学习者选项卡,测试部分中,选择从工作区中测试数据>.
在“导入测试数据”对话框中,选择cartableTest
表的测试数据集变量列表。
如对话框所示,应用程序识别响应和预测变量。
点击进口.
计算最佳预设模型和可优化模型的RMSEcartableTest
数据。
首先,在模型窗格中,单击旁边的星形图标袋装的树木模型和Optimizable合奏模型。
对于每个模型,选择模型窗格,然后选择测试所有>测试选中在测试部分。该应用程序计算在完整数据集上训练的模型的测试集性能,包括训练和验证数据。
基于测试集RMSE对模型进行排序。在模型窗格中,打开排序列表并选择RMSE(测试)
.
在本例中,经过训练的可优化集成在测试集数据上仍然优于经过训练的预置模型。