主要内容

使用ClassificationTree预测块预测类标签

这个例子展示了如何使用。训练分类决策树模型分类学习者应用程序,然后使用ClassificationTree预测在Simulink®中用于标签预测的块。万博1manbetx该块接受一个观察(预测数据),并使用训练过的分类决策树模型返回预测的类别标签和类别得分。

在分类学习者应用程序中训练分类模型

在分类学习者应用程序中使用超参数优化训练分类决策树模型。

1.在MATLAB®命令窗口中,加载电离层数据集,其中包含雷达返回质量(Y)及预测数据(X)的34个变量。雷达回波要么质量好(‘g’)或不良品质(“b”).

加载电离层数据集。确定样本量。

负载电离层n =元素个数(Y)
n = 351

假设按顺序探测到雷达返回,您已经有了前300个观测值,但还没有收到最后51个。将数据划分为当前和未来的样本。

prsntX = X(施用:);prsntY = Y(施用);ftrX = X(301年:,);ftrY = Y(301:结束);

2.开放分类学习者。在应用程序选项卡,应用程序部分,单击显示更多箭头显示应用程序库。在机器学习和深度学习组中,单击分类学习者

3.上分类学习者选项卡,文件部分中,点击新会议并选择从工作空间

4.在“来自工作区的新会话”对话框中,选择矩阵prsntX数据集变量列表。下回答,单击从工作空间选择按钮并选择矢量prsntY从工作空间。默认的验证选项是5倍交叉验证,以防止过拟合。对于本例,不要更改默认设置。

5.要接受默认选项并继续,请单击开始会议

6.选择一个可优化的树模型进行训练。在分类学习者选项卡,模型类型部分,单击显示更多箭打开画廊。在决策树组中,单击Optimizable树.应用程序禁用使用并行按钮时,您选择一个可优化的模型。

7.在培训部分中,点击火车.该应用程序显示最小分类误差图当它运行优化过程时。在每次迭代中,应用程序都会尝试不同的超参数值组合,并用在迭代中观察到的最小验证分类错误(深蓝色表示)来更新图。当应用程序完成优化过程时,它会选择一组优化过的超参数,用红色方块表示。有关更多信息,请参见最小分类误差图

应用程序列出了优化的超参数优化结果地块右边的部分和优化超参数部分的当前模型的总结窗格。一般情况下,优化结果是不可重复的。

8.将模型导出到MATLAB工作空间。在分类学习者选项卡,出口部分中,点击出口模式并选择出口模式,然后单击好吧.导出模型的默认名称是trainedModel

或者,你可以生成MATLAB代码,用应用程序中训练模型的相同设置来训练分类模型分类学习者选项卡,出口部分中,点击生成函数.应用程序从你的会话生成代码,并在MATLAB编辑器中显示文件。该文件定义了一个函数,该函数接受预测器和响应变量,训练分类模型,并执行交叉验证。将函数名更改为trainClassificationTreeModel并保存函数文件。利用该方法训练决策树分类模型trainClassificationTreeModel函数。

trainedModel = trainClassificationTreeModel (prsntX prsntY);

9.将训练过的模型从trainedModel变量。trainedModel包含一个ClassificationTree中的模型对象ClassificationTree字段。

treeMdl = trainedModel.ClassificationTree;

因为超参数优化可能导致模型过度拟合,所以推荐的方法是在将数据导入Classification Learner应用程序之前创建一个单独的测试集,看看优化的模型在测试集上的表现如何。有关详细信息,请参见基于超参数优化的分类器分类器

创建模型模型万博1manbetx

这个例子提供了Simulink模型万博1manbetxslexIonosphereClassificationTreePredictExample.slx,其中包括ClassificationTree预测块。您可以打开Simulink模型或创万博1manbetx建本节所述的新模型。

打开Simulin万博1manbetxk模型slexIonosphereClassificationTreePredictExample.slx

SimMdlName =“slexIonosphereClassificationTreePredictExample”;open_system (SimMdlName)

PreLoadFcn回调函数的slexIonosphereClassificationTreePredictExample包括加载示例数据、训练模型和为Simulink模型创建输入信号的代码。万博1manbetx如果打开Simulink模型,软万博1manbetx件就会运行代码PreLoadFcn加载Simulink模型之前。万博1manbetx要查看回调函数,请在设置上节建模选项卡上,单击模型设置并选择模型属性.然后,在回调选项卡中,选择PreLoadFcn的回调函数模型的回调窗格。

要创建新的Simulink模型,万博1manbetx请打开空白模型模板并添加ClassificationTree Predict块。添加import和Outport块,并将它们连接到ClassificationTree Predict块。

双击ClassificationTree Predict块,打开块参数对话框。您可以指定包含经过训练的模型的工作区变量的名称。默认变量名为treeMdl.单击刷新按钮。对话框显示用于训练模型的选项treeMdl训练有素的机器学习模型.选择添加预测类分数的输出端口复选框以添加第二个输出端口分数

ClassificationTree Predict块期望一个包含34个预测值的观测值。双击import块,并设置港维到34号信号的属性选项卡。

以结构数组的形式为Simulink模型创建一个输入信号。万博1manbetx结构数组必须包含以下字段:

  • 时间-观测数据进入模型的时间点。在本例中,持续时间包括从0到50的整数。方位必须与预测器数据中的观测值相对应。在这种情况下,时间必须是一个列向量。

  • 信号—描述输入数据并包含字段的1 × 1结构数组,在那里是预测数据的矩阵,和为预测变量的数量。

为将来雷达返回创建一个适当的结构阵列。

radarReturnInput。时间= (0:50)';radarReturnInput.signals(1)。值= ftrX;radarReturnInput.signals(1)。尺寸大小= (ftrX 2);

从工作区导入信号数据:

  • 打开“配置参数”对话框。在建模选项卡上,单击模型设置

  • 数据导入/导出窗格中,选择输入复选框,并输入radarReturnInput在相邻的文本框中。

  • 解算器窗格中,在仿真时间,设置停止时间radarReturnInput.time(结束).下解算器的选择,设置类型固定步,并设置解算器离散(无连续状态)

有关详细信息,请参见模拟负载信号数据(万博1manbetx模型)

模拟模型。

sim (SimMdlName);

当import块检测到一个观察结果时,它将该观察结果导向ClassificationTree Predict块。你可以使用仿真数据检查(万博1manbetx模型)查看Outport块的记录数据。

另请参阅

相关话题