这个例子展示了如何使用ClassificationSVM预测在Simulink®中用于标签预测的块。金宝app该块接受一个观察值(预测器数据),并使用训练的支持向量机(SVM)分类模型返回预测的类别标签和类别评分。金宝app
此示例使用电离层
数据集,包含雷达返回质量(Y
)和预测数据(X
), 34个变量。雷达回波质量良好(‘g’
)或品质不良(“b”
).
加载电离层
数据集。确定样本量。
负载电离层n =元素个数(Y)
n = 351
假设雷达返回按顺序被检测到,并且您有前300个观测结果,但是您还没有收到最后51个观测结果。将数据划分为当前和未来的样本。
prsntX = X(施用:);prsntY = Y(施用);ftrX = X(301年:,);ftrY = Y(301:结束);
使用所有现有数据训练一个支持向量机模型。指定预测器数据标准化。
svmMdl = fitcsvm (prsntX prsntY,“标准化”,真正的);
svmMdl
是一个ClassificationSVM
模型。
方法检查负类名和正类名一会
的属性svmMdl
.
svmMdl。一会
ans =2 x1细胞{b} {' g '}
消极类是“b”
,而积极类是‘g’
.的输出值分数预测块有相同的顺序。第一个和第二个元素分别对应负类和正类分数。
此示例提供了Simulink模型金宝appslexIonosphereClassificationSVMPredictExample.slx
,其中包括ClassificationSVM预测块。您可以打开Simulink模型或创金宝app建本节中描述的新模型。
打开Simulin金宝appk模型slexIonosphereClassificationSVMPredictExample.slx
.
SimMdlName =“slexIonosphereClassificationSVMPredictExample”;open_system (SimMdlName)
的PreLoadFcn
回调函数的slexIonosphereClassificationSVMPredictExample
包含加载样例数据、训练SVM模型以及为Simulink模型创建输入信号的代码。金宝app如果您打开Simulink模型,金宝app那么软件将在其中运行代码PreLoadFcn
加载Simulink模型之前。金宝app要查看回调函数,请在设置上节建模选项卡上,单击模型设置并选择模型属性.然后,在回调选项卡中,选择PreLoadFcn
函数中的回调函数模型的回调窗格。
要创建新的Simulink模型,金宝app请打开空白模型模板,并添加ClassificationSVM Predict块。添加输入和输出块,并将它们连接到classiationsvm Predict块。
双击ClassificationSVM Predict块打开块参数对话框。指定选择经过训练的机器学习模型参数,svmMdl
,它是包含经过训练的SVM模型的工作空间变量的名称。单击刷新按钮。对话框显示用于训练SVM模型的选项svmMdl
下训练机器学习模型.选择为预测的班级分数添加输出端口复选框添加第二个输出端口分数.
classiationsvm Predict块期望包含34个预测值的观测值。双击输入块,并设置港维到34号信号的属性选项卡。
为Simulink模型创建一个结构数组形式的输入信号。金宝app结构数组必须包含以下字段:
时间
-观测值进入模型的时间点。在本例中,持续时间包括从0到50的整数。方向必须符合预测数据中的观测值。在这种情况下,时间
一定是列向量。
信号
-一个1乘1的结构数组,描述输入数据并包含字段值
和维
,在那里值
是一个预测数据的矩阵,和维
为预测变量的数量。
为将来的雷达返回创建一个适当的结构阵列。
radarReturnInput。时间= (0:50)';radarReturnInput.signals(1)。值= ftrX;radarReturnInput.signals(1)。尺寸大小= (ftrX 2);
从工作区导入信号数据:
打开“配置参数”对话框。在建模选项卡上,单击模型设置.
在数据导入/导出窗格中,选择输入勾选并输入radarReturnInput
在下面的文本框中。
在解算器窗格中,在仿真时间,设置停止时间来radarReturnInput.time(结束)
.下解算器的选择,设置类型来固定步
,并设置解算器来离散(无连续状态)
.
要了解更多细节,请参见模拟负载信号数据(金宝app模型).
模拟模型。
sim (SimMdlName);
当Inport块检测到一个观察结果时,它将观察结果导向ClassificationSVM Predict块。你可以使用仿真数据检查(金宝app模型)查看Outport块的日志数据。