预测类标签使用ClassificationNeuralNetwork预测块
这个例子展示了如何使用ClassificationNeuralNetwork预测块的标签预测模型®。金宝app块接受一个观察(预测数据)并返回的预测类标签和类评分观察使用训练好的神经网络分类模型。
训练神经网络分类器
训练一个神经网络分类器,并评估测试集上的分类器的性能。
加载humanactivity
数据集。该数据集包含24075 5观察物理人类活动:坐着,站着,散步、跑步、和跳舞。每个观察60特性提取加速度数据衡量智能手机加速计传感器。
负载humanactivity
创建预测X
作为一个数字矩阵包含60 24075年观测特性。创建类标签Y
作为一个数值向量包含活动id的整数:1,2,3,4,5代表坐着,站着,散步、跑步、和跳舞。
X =壮举;Y = actid;
随机观测分割成分层的训练集和测试集,使用y类信息的使用大约80%的观察来训练一个神经网络模型,和20%的观察来测试新数据训练模型的性能。
rng (“默认”)%的再现性分区简历= cvpartition (Y,“坚持”,0.20);
提取训练和测试指标。
trainingInds =培训(简历);testInds =测试(简历);
指定的培训和测试数据集。
XTrain = X (trainingInds:);YTrain = Y (trainingInds);XTest = X (testInds:);欧美= Y (testInds);
训练一个神经网络分类器通过训练数据XTrain
和YTrain
到fitcnet
函数。指定第一完全连接层和20 40输出输出第二完全连接层。
nnetMdl = fitcnet (XTrain YTrain,“LayerSizes”40 [20])
nnetMdl = ClassificationNeuralNetwork ResponseName:‘Y’CategoricalPredictors::[]类名(1 2 3 4 5)ScoreTransform:“没有一个”NumObservations: 19260 LayerSizes: 40[20]激活:“relu”OutputLayerActivation:“softmax”解算器:“LBFGS”ConvergenceInfo: [1 x1 struct] TrainingHistory: [1000 x7表]属性,方法
nnetMdl
是一个培训ClassificationNeuralNetwork
模型。可以使用点符号来访问的属性nnetMdl
。例如,您可以指定nnetMdl.TrainingHistory
获得更多的培训历史信息的神经网络模型。
评估测试集上的分类器的性能通过计算测试集分类精度。
testError =损失(nnetMdl XTest,欧美,“LossFun”,“classiferror”);testAccuracy = 1 - testError
testAccuracy = 0.9821
创建模型模型金宝app
这个示例提供了仿真软件模型金宝appslexClassificationNeuralNetworkPredictExample.slx
,包括ClassificationNeuralNetwork预测块。您可以打开仿真软件模型,或者创建一金宝app个新的模型如本节所述。
开放提供模型
打开模型模型金宝appslexClassificationNeuralNetworkPredictExample.slx
。
SimMdlName =“slexClassificationNeuralNetworkPredictExample”;open_system (SimMdlName)
如果你打开仿真软件模型,软件运行金宝app的代码PreLoadFcn
回调函数在装货前仿真软件模型。金宝app的PreLoadFcn
回调函数的slexClassificationNeuralNetworkPredictExample
如果您的工作区包含包括代码检查nnetMdl
变量的训练模式。如果工作空间不包含变量,PreLoadFcn
加载示例数据,训练神经网络模型,并创建一个输入信号的仿真软件模型。金宝app查看回调函数设置上节建模选项卡上,单击模型设置并选择模型属性。然后,在回调选项卡中,选择PreLoadFcn
回调函数的模型的回调窗格。
创建新的模型
而不是打开提供的模型,你可以创建一个新的模型。创建一个新的模型模型,打开金宝app空白模型模板和添加ClassificationNeuralNetwork预测块。添加尺寸和外港块和连接他们ClassificationNeuralNetwork预测块。
双击ClassificationNeuralNetwork预测块打开参数对话框。您可以指定一个工作空间变量的名称包含了训练的神经网络模型。默认的变量名nnetMdl
。单击刷新按钮。的训练有素的机器学习模型对话框的选项用来训练模型nnetMdl
。选择为预测类分数添加输出端口复选框添加第二个输出端口分数。
ClassificationNeuralNetwork预测块预计包含60预测一个观察值。双击尺寸块中,并设置港维60的信号的属性选项卡。
创建一个输入信号的形式结构阵列的仿真软件模型。金宝app结构数组必须包含这些字段:
时间
——的时间点观察输入模型。预测的方向必须对应于观测数据。在这个例子中,时间
必须是一个列向量。信号
- 1×1结构阵列描述输入数据和包含字段值
和维
,在那里值
是一个矩阵的预测数据,维
是预测变量的数量。
为未来的人类活动创建一个适当的结构数组。
activityInput。时间= (0:length(YTest)-1)'; activityInput.signals(1).values = XTest; activityInput.signals(1).dimensions = size(XTest,2);
从工作区导入信号数据:
打开配置参数对话框。在建模选项卡上,单击模型设置。
在数据导入/导出窗格中,选择输入复选框并输入
activityInput
在相邻的文本框。在解算器窗格中,在仿真时间,设置停止时间来
activityInput.time(结束)
。下解算器的选择,设置类型来固定步
,并设置解算器来离散(没有连续状态)
。
更多细节,请参阅负载为模拟信号数据(金宝app模型)。
模拟模型
模拟模型。
sim (SimMdlName);
当尺寸块检测到一个观察,它将观察到ClassificationNeuralNetwork预测块中。您可以使用仿真数据检查(金宝app模型)外港的查看记录的数据块。