BP神经网络的使用
BP神经网络是数模比赛中进阶的必经之路。机器学习算法结合经典算法求解最优值,是拿到好的奖项不可或缺的一步,本文将详细阐释该方法的用法。

神经网络主要分为三个层:输入层(input)、隐含层以及输出层(output)
在matlab上,首先要想清楚自己要处理什么类型的数据,想要得到什么样的输出
大体方法基本类似:
导入数据,然后数据划分为训练集跟测试集(每次运行都会有不同的结果,因为数据往往会被打乱)。接着将数据归一化(因为BP神经网络一般是(0,1)之间的数据),然后启动神经网络(newff()),将输出的结果Sim可视化,并计算误差R^2即可。
P.S.记得要提前处理数据,有些异常的数据提前剔除掉,能让处理变得简单。
主要方法分为三类:
回归
一般用于多输入+单输出(可替代多元线性回归)
分类
此处一般用于聚类分析替代。结果可视化有混淆矩阵。
数据处理中,要注意将输出结果编码。
时间序列预测
主要应用递归,用于代替时间序列分析预测,可以获得较高的准确率。
多输入多输出
本质方法都是一样的。训练方法可以改进。

评价
BP神经网络属于机器学习算法,最好结果实际应用算法一起使用,不然的话说服力其实是不够的。但是,另一方面,这个方法确实很好用,暴力求解。
参考博主链接
(1)Matlab代码实现。
较为完整,有多种机器学习的算法(部分代码收费)
https://www.bilibili.com/video/BV19d4y1T7iV/?spm_id_from=333.788&vd_source=56d90f1bd717aa59e2ce3889d12127e4