此示例显示了如何使用分类vm预测Simulink®中标签预测的块。金宝app该块接受观察(预测器数据)并返回使用训练的支持向量机(SVM)分类模型的观察的预测类标签和类分数。金宝app
这个例子使用了电离层
数据集,其中包含雷达返回品质(y
)和预测数据(X
)34个变量。雷达返回质量很好('G'
)或质量不好('B'
)。
加载电离层
数据集。确定样本大小。
加载电离层n = numel(y)
n = 351.
假设按顺序检测到雷达返回,并且您拥有前300个观察,但您还没有收到最后51次。将数据分区为现在和未来的样本。
prsntx = x(1:300,:);prsnty = y(1:300);ftrx = x(301:结束,:);ftry = y(301:结束);
使用所有目前可用的数据列车SVM模型。指定预测数据标准化。
svmmdl = fitcsvm(prsntx,prsnty,'标准化',真的);
svmmdl.
是A.分类VM.
模型。
通过使用使用的检查负片名称和正类名Classnames.
财产svmmdl.
。
svmmdl.classnames.
ans =.2x1细胞{'b'} {'g'}
负面课程是'B'
,积极的课程是'G'
。来自的输出值分数分类VM的端口预测块具有相同的顺序。第一和第二元素分别对应于负类和正类分数。
此示例提供了Simulink模型金宝appslexionosphereclassificationsvmpredictexample.slx.
,包括该分类vm预测堵塞。您可以打开Simulink模型或创金宝app建新模型,如本节所述。
打开Simulin金宝appk模型slexionosphereclassificationsvmpredictexample.slx.
。
simmdlname ='slexionosphereclassificationsvmpredictexample';Open_System(SIMMDLNAME)
这preloadfcn.
回调函数slexionosphereclassificationsvmpredict表现
包括加载样本数据的代码,培训SVM模型,并为Simulink模型创建输入信号。金宝app如果打开Simulink模型,则金宝app软件运行代码preloadfcn.
在加载Simulink模型之前。金宝app查看回调函数,在设置一节造型选项卡,单击模型设置并选择模型属性。然后,在回调选项卡,选择preloadfcn.
回调函数在模型回调窗格。
要创建新的Simulink模型,金宝app请打开空白模型模板并添加分类VM预测块。添加Inport和Outport块并将其连接到分类VM预测块。
双击ClassificationsVM预测块以打开“块参数”对话框。指定选择培训的机器学习模型参数为svmmdl.
,这是包含培训的SVM模型的工作区变量的名称。点击刷新按钮。该对话框显示用于培训SVM模型的选项svmmdl.
在下面训练有素的机器学习模型。选择添加预测类别分数的输出端口复选框以添加第二个输出端口分数。
分类VM预测块期望观察包含34个预测值值。双击Inport块,并设置端口尺寸到34信号属性标签。
以Simulink模型的结构阵列的形式创建输入信号。金宝app结构阵列必须包含以下字段:
时间
- 观察到进入模型的时间点。在该示例中,持续时间包括从0到50的整数。方向必须对应于预测器数据中的观察。所以,在这种情况下,时间
必须是列向量。
信号
- 一个1×1结构阵列,描述输入数据并包含字段价值
和方面
, 在哪里价值
是预测器数据的矩阵,和方面
是预测变量的数量。
为将来的雷达返回创建适当的结构阵列。
RadarreturnInput.time =(0:50)';RadarreturnInput.Signals(1).values = ftrx;RadarreturnInput.Signals(1).dimensions =尺寸(ftrx,2);
从工作区导入信号数据:
打开配置参数对话框。在这一点造型选项卡,单击模型设置。
在里面数据导入/导出窗格,选择输入复选框并进入CarmallInput.
在相邻的文本框中。
在里面求解器窗格,下面模拟时间, 放停止时间到RadarreturnInput.time(结束)
。在下面求解器选择, 放类型到固定步骤
和集合求解器到离散(没有连续的状态)
。
有关更多详细信息,请参阅用于仿真的负载信号数据(金宝appSimulink)。
模拟模型。
sim(simmdlname);
当Inport块检测到观察时,它将观察指向分类VM预测块。你可以使用仿真数据检测器(金宝appSimulink)查看出口块的记录数据。