使用神经网络模式识别进行模式识别
此示例说明如何使用神经网络模式识别训练浅层神经网络,以对模式进行分类。
使用 nprtool 打开神经网络模式识别。
nprtool

选择数据
神经网络模式识别提供了示例数据来帮助您开始训练神经网络。
要导入示例玻璃分类数据,请选择导入 > 导入玻璃数据集。您可以使用此数据集训练神经网络,根据玻璃的化学属性将玻璃分为窗用玻璃或非窗用玻璃。如果您从文件或工作区导入自己的数据,则必须指定预测变量和响应变量,以及观测值位于行中还是列中。

有关导入数据的信息显示在模型摘要中。此数据集包含 214 个观测值,每个观测值有 9 个特征。每个观测值分为两个类之一:窗用或非窗用。

将数据分成训练集、验证集和测试集。保留默认设置。数据拆分为:
70% 用于训练。
15% 用于验证网络是否正在泛化,并在过拟合前停止训练。
15% 用于独立测试网络泛化。
有关数据划分的详细信息,请参阅划分数据以实现最优神经网络训练。
创建网络
该网络是一个双层前馈网络,其中在隐藏层有一个 sigmoid 传递函数,在输出层有一个 softmax 传递函数。隐藏层的大小对应于隐藏神经元的数量。默认层大小为 10。您可以在网络窗格中看到网络架构。输出神经元的数量设置为 2,等于响应数据指定的类的数量。

训练网络
要训练网络,请点击训练。
在训练窗格中,您可以看到训练进度。训练会一直持续,直到满足其中一个停止条件。在此示例中,训练会一直持续,直到六次连续验证迭代的验证误差大于或等于先前最小验证误差(“满足验证条件”)。

分析结果
模型摘要包含关于每个数据集的训练算法和训练结果的信息。

您可以通过生成绘图来进一步分析结果。要对混淆矩阵绘图,请在绘图部分中,点击混淆矩阵。您会看到绿色方块(对角线)中的正确分类数字很高,红色方块(非对角线)中的错误分类数字很低,这表明网络输出非常准确。

查看 ROC 曲线以获得网络性能的额外验证。在绘图部分中,点击 ROC 曲线。

每个轴上的彩色线条表示 ROC 曲线。ROC 曲线是随阈值变化的真正率(敏感度)对假正率(1 - 特异度)的图。完美的测试会在左上角显示点,灵敏度和特异度均为 100%。对于此问题,网络性能非常好。
如果您对网络性能不满意,可以执行以下操作之一:
重新训练网络。
增加隐藏神经元的数量。
使用更大的训练数据集。
如果基于训练集的性能很好,但测试集的性能很差,这可能表明模型出现了过拟合。减少神经元的数量可以减少过拟合。
您还可以评估基于附加测试集的网络性能。要加载附加测试数据来评估网络,请在测试部分中,点击测试。模型摘要显示附加测试结果。您也可以生成图来分析附加测试结果。
生成代码
选择生成代码 > 生成简单的训练脚本以创建 MATLAB 代码,从命令行重现前面的步骤。如果您要了解如何使用工具箱的命令行功能来自定义训练过程,则创建 MATLAB 代码会很有帮助。在使用命令行函数进行模式识别中,您可以更详细地研究生成的脚本。

导出网络
您可以将经过训练的网络导出到工作区或 Simulink®。您也可以使用 MATLAB Compiler™ 和其他 MATLAB 代码生成工具部署网络。要导出您的训练网络和结果,请选择导出模型 > 导出到工作区。

另请参阅
神经网络拟合 | 神经网络时间序列 | 神经网络模式识别 | 神经网络聚类 | trainscg