BP神经网络“分类”工具手册(完整版)

最后更新于:2024-03-23 17:28:04

神经网络“分类”工具箱是专为使用神经网络进行分类的工具箱。

工具箱中的代码在不定期更新中,不断完善和添加新的功能。

致力于实现优质、易用的程序,帮助研究人员快速实现目标

一、获取神经网络“分类”工具箱使用手册(完整版)

获取通道一(淘宝):点击此处获取完整版程序

获取通道二(本页面):点击下面“立即支付”按钮,付款后获取完整版代码下载链接和售后联系方式~本通道处于测试阶段,使用该通道可以额外优惠(仅需29元)。付款完成后刷新一下本页面即可看到下载链接。

(注意支付跳转失败的话,请使用浏览器打开本页面)

您需要先支付 29元 才能查看此处内容!立即支付

二、代码运行环境

MATLAB2016以及更新版本。

三、工具箱介绍

注:图标代表该m文件为脚本文件,可以直接运行;图标代表函数文件,在没有输入变量的情况下无法直接运行。更详细的解释可以看这里

1.demoBPclass.m

调用funs中的bpPatternnet函数进行分类的例子,演示了bpPatternnet函数的常规用法。

2.bpPatternnet.m

封装好的程序。快速模式识别(分类)神经网络,可以自主设定训练集比例,并得到测试集分类正确率。函数参数说明如下:

3.class2label.m

将class转为label,例如将[3,2,1,1]转换为[0,0,1;0,1,0;1,0,0;1,0,0]。

函数参数说明如下:

4.label2class.m

将label转为class,例如将[0,0,1;0,1,0;1,0,0;1,0,0]转换为[3,2,1,1]。

函数参数说明如下:

四、快速开始

1.使用你的数据快速获取预测结果(使用封装函数bpPatternnet

(1)导入数据

根据你的文件类型的不同(excel,txt,csv等),将数据导入MATLAB的方法有所不同。同学们可以先参考这个文档。后续博主会针对常用文件的导入方法出一个教程。

如果你已经实现了数据导入,这时候应该拥有了两组数据:

dataX:输入的训练集,R*Q的矩阵,R为特征维度,Q为批次数,输入该变量时一定要注意行列方向是否正确

dataY:训练集的标签值,U*Q的矩阵或1*Q的cell向量,U为标签种类数,Q为批次数,输入该变量时一定要注意行列方向是否正确

(2)实现预测

分类的一般实现方法在文件夹中的demoBPclass文件中有所展示,代码分为导入数据和调用函数两步。用户只需要将导入数据部分换成自己的导入程序,再设置好调用函数的入口参数即可。

其中大部分参数设置方法在注释中都有所介绍,不过其中的set需要额外说明一下:

set中目前可以设置的属性包括trainFcn和transferFcn、epochs三种,分别代表神经网络的训练函数和激活函数、最大迭代次数。trainFcn和transferFcn可选的属性以及相应的描述如下:

trainFcn

trainscg(默认):比例共轭梯度方向传播

trainbfg:BFGS准牛顿反向传播

traincgb:具有Powell-Beale重启的共轭梯度方向传播

traincgf:具有Fletcher-Reeves更新的共轭梯度反向传播

traincgp:具有Polak-Ribiére更新的共轭梯度反向传播

traingda:自适应学习速率方向传播的梯度下降

traingdm:动量方向传播的梯度下降

traingdx:动量梯度下降和自适应学习速率反向传播

trainlm:Levenberg-Marquardt反向传播

trainoss:一步割线反向传播

trainrp:弹性反向传播

transferFcn

logsig

Log-sigmoid转移函数,表达式:

logsig(n) = 1 / (1 + exp(-n))

tansig

表达式:

a = tansig(n) = 2/(1+exp(-2*n))-1

poslin(就是ReLU)

表达式:

poslin(n) = n, if n >= 0
          = 0, if n <= 0


2.运行程序

将会绘制如下图片:

五、重要更新

20240323 重要更新,重构了代码,现在代码可以以cell类型的字符串为标签。另外增加了混淆矩阵绘图以及测试集真是类别与预测类别对比图。

20200504 完成初版代码