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