这个例子展示了如何使用分类学习者应用程序,然后使用ClassificationTree预测Simulink®中标签预测的块。金宝app该块接受观察(预测器数据),并使用培训的分类决策树模型返回预测的类标签和类分数。
通过在分类学习者应用中使用HyperParameter优化列车进行分类决策树模型。
1.在MATLAB®命令窗口中,加载电离层
包含雷达回波质量的数据集(y
)和预测数据(X
)34个变量。雷达返回质量很好('G'
)或质量不好('B'
).
加载电离层
数据集。确定样本量。
加载电离层n = numel(y)
n=351
假设雷达回波是按顺序检测到的,你有前300次观测,但你还没有收到最后51次。将数据划分为当前和未来的样本。
prsntX=X(1:300,:);prsntY=Y(1:300);ftrX=X(301:end,:);ftrY=Y(301:结束);
2.开放分类学习者。在这一点应用选项卡,在应用节中,单击展示更多箭头以显示应用程序库。在机器学习与深度学习组,点击分类学习者。
3.在这一点分类学习者选项卡,在文件部分,点击新会议并选择来自工作区。
4.在“从工作区”对话框的“新会话”中,选择“矩阵”Prsntx.
从数据集变量列表。在下面回答,单击来自工作区选项按钮并选择向量Prsnty.
从工作区。默认验证选项是5倍交叉验证,以防止过度装备。对于此示例,请勿更改默认设置。
5.接受默认选项并继续,单击开始会话。
6.选择要训练的优化树模型。在这一点分类学习者选项卡,在模型类型节中,单击展示更多箭头打开图库。在决策树组,点击优化的树. 应用程序将禁用使用并行当您选择一个可优化的模型时,单击该按钮。
7.在训练部分,点击火车. 该应用程序显示一个最小分类误差图当它运行优化过程时。在每次迭代中,应用程序尝试超参数值的不同组合,并使用在该迭代之前观察到的最小验证分类错误(以深蓝色表示)更新绘图。当应用程序完成优化过程时,它会选择一组优化的超参数,用红色方框表示。有关详细信息,请参阅最小分类误差图。
该应用程序列出了两个优化的超参数优化结果绘图右侧的部分和优化Hyperparameters部分当前模型摘要窗玻璃一般来说,优化结果是不可重复的。
8.将模型导出到MATLAB工作区。在这一点分类学习者选项卡,在出口部分,点击出口模式并选择出口模式,然后点击好啊。导出模型的默认名称是训练有素
。
或者,您可以生成培训的MATLAB代码,其中包含与应用程序中培训模型的相同设置的分类模型。在这一点分类学习者选项卡,在出口部分,点击生成功能。该应用程序从您的会话生成代码,并在MATLAB编辑器中显示该文件。该文件定义了一个接受预测器和响应变量的函数,列出分类模型,并执行交叉验证。将函数名称更改为列车分类树模型
并保存函数文件。利用遗传算法训练决策树分类模型列车分类树模型
功能。
trainedModel=列车分类树模型(prsntX,prsntY);
9.从中提取培训的模型训练有素
多变的。训练有素
包含一个分类树
中的模型对象分类树
场地。
treeMdl=trainedModel.ClassificationTree;
由于超参数优化可能会导致模型过度拟合,因此推荐的方法是在将数据导入分类学习器应用程序之前创建单独的测试集,并查看优化模型在测试集上的表现。有关详细信息,请参阅在分类学习者应用中使用HyperParameter优化的火车分类器。
此示例提供了Simulink模型金宝appslexIonosphereClassificationTreePredictExample.slx
,包括该ClassificationTree预测块。您可以打开Simulink模型或按本节所述创金宝app建新模型。
打开Simulin金宝appk模型slexIonosphereClassificationTreePredictExample.slx
。
simmdlname ='slexionosphereclassificationtrelepredictexample';开放式系统(SimMdlName)
这preloadfcn.
的回调函数slexionosphereclassificationtrelepredict表现
包括加载样本数据,培训模型的代码,并为Simulink模型创建输入信号。金宝app如果打开Simulink模型,则金宝app软件运行代码preloadfcn.
在加载Simulink模型之前。金宝app查看回调函数,在设置一节造型选项卡,单击模型设置并选择模型属性.然后,在回调选项卡上,选择preloadfcn.
中的回调函数模型回调窗玻璃
要创建新的Simulink模型,金宝app请打开空白模型模板并添加ClassificationTree预测块。添加输入和输出块,并将它们连接到ClassificationTree预测块。
双击ClassificationTree Predict块以打开“块参数”对话框。可以指定包含训练模型的工作区变量的名称。默认变量名称为treeMdl
。点击刷新按钮。该对话框显示用于培训模型的选项treeMdl
在下面训练有素的机器学习模型。选择添加预测类别分数的输出端口复选框以添加第二个输出端口分数。
ClassificationTree Predict块需要一个包含34个预测值的观察值。双击Input块,然后设置端口尺寸到34岁了信号属性标签。
为Simulink模型创建结构数组形式的输入信号。结构数组必须包含以下字段:金宝app
时间
-观察值进入模型的时间点。在本例中,持续时间包括从0到50的整数。方向必须与预测数据中的观察值相对应。因此,在本例中,时间
必须是列向量。
信号
- 一个1×1结构阵列,描述输入数据并包含字段价值观
和尺寸
哪里价值观
是预测器数据的矩阵,和尺寸
是预测变量的数量。
为将来的雷达返回创建适当的结构阵列。
RadarreturnInput.time =(0:50)';RadarreturnInput.Signals(1).values = ftrx;RadarreturnInput.Signals(1).dimensions =尺寸(ftrx,2);
从工作区导入信号数据:
打开配置参数对话框。在这一点造型选项卡,单击模型设置。
在数据导入/导出窗格,选择输入复选框并进入雷达回波输入
在相邻的文本框中。
在解算器窗格,下面模拟时间, 放停止时间到RadarreturnInput.time(结束)
。在下面解算器选择, 放类型到固定步骤
和集合解算器到离散(无连续状态)
。
有关更多详细信息,请参阅用于模拟的负载信号数据(金宝appSimulink)。
模拟模型。
sim(SimMdlName);
当Inport块检测到一个观测值时,它将观测值引导到ClassificationTree Predict块中。你可以使用仿真数据检测器(金宝appSimulink)查看出口块的记录数据。