这个例子展示了如何训练支持向量机(SVM)回归模型金宝app回归学习者应用程序,然后使用回归vm预测模块用于Simulink®中的响应预测。金宝app该块接受一个观测(预测数据),并使用训练过的SVM回归模型返回观测的预测响应。
在回归学习应用程序中使用超参数优化训练支持向量机回归模型。
1.在MATLAB®命令窗口中,加载carbig
数据集,并创建一个包含大多数预测变量和响应变量向量的矩阵。
负载carbigX =(加速度、汽缸、排量、马力、Model_Year重量);Y = MPG;
2.回归学习者开放。在应用程序标签,在应用程序部分,单击显示更多箭头显示应用程序库。在机器学习和深度学习组中,单击回归学习者.
3.在这方面回归学习者标签,在文件部分中,选择新会议并选择从工作空间..
4.在“来自工作区的新会话”对话框中,选择矩阵X
来自数据集变量列表。下回复, 点击从工作空间选项按钮,然后从工作区中选择向量y。默认验证选项是5倍交叉验证,以防止过度装备。对于此示例,请勿更改默认设置。
5.要接受默认选项并继续,请单击开始课程.
6.选择要培训的优化SVM模型。在回归学习者标签,在模型类型部分,单击显示更多箭头打开画廊。在金宝app支持向量机组中,单击优化的SVM.该应用程序禁用使用并行选择可优化的型号时按钮。
7.在训练部分中,点击火车.该应用程序显示一个最小MSE情节当它运行优化过程时。在每次迭代时,该应用程序尝试不同的Hyper参数值的组合,并使用最小验证均方误差(MSE)更新绘图,该折射在深蓝色中表示。当应用程序完成优化过程时,它会选择由红场指示的优化的超参数集。有关更多信息,请参阅最小MSE情节.
应用程序列出了优化的超参数优化结果情节右侧的部分和优化的超参数部分的当前模型的总结窗格。通常,优化结果不会再现。
8.将模型导出到MATLAB工作空间。在回归学习者标签,在出口部分中,点击出口模式并选择出口模式,然后单击好的.导出模型的默认名称是trainedModel
.
或者,您可以生成带有用于在应用中培训SVM模型的相同设置的回归模型的MATLAB代码。在回归学习者标签,在出口部分中,点击生成函数.应用程序从你的会话生成代码,并在MATLAB编辑器中显示文件。该文件定义了一个函数,该函数接受预测器和响应变量,训练回归模型,并执行交叉验证。将函数名更改为trainRegressionSVMModel
并保存函数文件。使用。训练SVM模型trainRegressionSVMModel
函数。
trainedModel = trainRegressionSVMModel (X, Y);
9.从中提取训练的SVM模型trainedModel
变量。trainedModel
包含一个回归vm.
模型对象回归vm.
字段。
svmmdl = troughermodel.regressionsvm;
由于HyperParameter优化可能导致过度饱和的模型,所以推荐的方法是在将数据导入回归学习者应用程序之前创建一个单独的测试集,并了解如何在测试集上执行优化的模型。有关详细信息,请参见在回归学习者应用中使用HyperParameter优化的列回归模型.
这个例子提供了Simulink模型金宝appslexcardataregressionsvmpredictexample.slx.
,其中包括回归vm预测堵塞。您可以打开Simulink模型或如金宝app本节所述的新模型创建新模型。
打开Simulin金宝appk模型slexcardataregressionsvmpredictexample.slx.
.
SimMdlName ='slexcardataregressortionsvmpredictexample';Open_System(SIMMDLNAME)
的PreLoadFcn
回调函数Slexcardataregressortionsvmpredict表口
包括加载样本数据、训练SVM模型和为Simulink模型创建输入信号的代码。金宝app如果打开Simulink模型,软金宝app件就会运行代码PreLoadFcn
加载Simulink模型之前。金宝app要查看回调函数,请在设置上节建模选项卡上,单击模型设置并选择模型属性.然后,在回调选项卡,选择PreLoadFcn
回调函数在模型回调窗格。
要创建新的Simulink模型,金宝app请打开空白模型模板,并添加RegressionSVM Predict块。添加import和Outport块,并将它们连接到RegressionSVM Predict块。
双击“回归”VM预测块以打开“块参数”对话框。您可以指定包含培训的SVM模型的工作区变量的名称。默认变量名称是svmMdl
.单击刷新按钮。对话框显示用于训练SVM模型的选项svmMdl
下训练有素的机器学习模型.
回归支持向量机预测块预测包含6个预测值的观测值。双击import块,并设置端口尺寸到6号信号属性标签。
以Simulink模型的结构阵列的形式创建输入信号。金宝app结构阵列必须包含这些字段:
时间
-观测数据进入模型的时间点。方位必须与预测器数据中的观测值相对应。在这个例子中,时间
必须是列向量。
信号
—描述输入数据并包含字段的1 × 1结构数组价值
和方面
, 在哪里价值
是预测数据的矩阵,和方面
是预测变量的数量。
为此创建合适的结构阵列Slexcardataregressortionsvmpredict表口
模型的Carsmall.
数据集。
负载Carsmall.testX =(加速度、汽缸、排量、马力、Model_Year重量);testX = rmmissing (testX);carsmallInput。时间= (0:size(testX,1)-1)'; carsmallInput.signals(1).values = testX; carsmallInput.signals(1).dimensions = size(testX,2);
从工作区导入信号数据:
打开“配置参数”对话框。在建模选项卡上,单击模型设置.
在数据导入/导出窗格中,选择输入复选框,并输入carsmallinput.
在相邻的文本框中。
在求解器窗格中,在模拟时间,设置停止时间来carsmallInput.time(结束)
.下求解器选择,设置类型来固定步
,并设置求解器来离散(没有连续的状态)
.
有关详细信息,请参见负载信号数据进行仿真(金宝app模型).
模拟模型。
sim(simmdlname);
当Inport块检测到观察时,它将观察指向回归的预测块。你可以使用仿真数据检查(金宝app模型)查看Outport块的记录数据。