使用java实现BP神经网络进行回归分析,并利用训练好的神经网络实现空气质量的评级。
本实验的工程项目和训练数据集可访问以下网址下载:
http://download.csdn.net/detail/qq_24369113/9711645
https://github.com/muziyongshixin/Back-Propagation-Neural-Network
实验描述:
对指定数据集进行回归分析,选择适当的回归算法,编写程序实现,提交程序和结果报告。
数据集: AirQualityUCI.data ,根据数据集中的数据对神经网络进行训练,得到回归模型,对新的数据进行预测。
每个数据包括15个属性:
0 Date (DD/MM/YYYY)
1 Time (HH.MM.SS)
2 True hourlyaveraged concentration CO in mg/m^3 (reference analyzer)
3 PT08.S1(tin oxide) hourly averaged sensor response (nominally CO targeted)
4 True hourlyaveraged overall Non Metanic HydroCarbons concentration in microg/m^3(reference analyzer)
5 True hourlyaveraged Benzene concentration in microg/m^3 (reference analyzer)
6 PT08.S2(titania) hourly averaged sensor response (nominally NMHC targeted)
7 True hourlyaveraged NOx concentration in ppb (reference analyzer)
8 PT08.S3(tungsten oxide) hourly averaged sensor response (nominally NOx targeted)
9 True hourlyaveraged NO2 concentration in microg/m^3 (reference analyzer)
10 PT08.S4(tungsten oxide) hourly averaged sensor response (nominally NO2 targeted)
11 PT08.S5(indium oxide) hourly averaged sensor response (nominally O3 targeted)
12Temperature in °C
13 RelativeHumidity (%)
14 AHAbsolute Humidity
实验环境和编程语言:
本实验使用的编程语言为:Java
编程环境为:Intellij idea
实现聚类的算法为:BP神经网络算法
训练用例的样本个数为:9357个
样本示例:
1/23/2005,20:00:00,-200,1174,-200,8.7,926,245,674,157,1220,1020,5.4,78.2,0.7074,Verylow
算法分析:
BP (BackPropagation)神经网络,即误差反传误差反向传播算法的学习过程,由信息的正向传播和误差的反向传播两个过程组成。输入层各神经元负责接收来自外界的输入信息,并传递给中间层各神经元;中间层是内部信息处理层,负责信息变换,根据信息变化能力的需求,中间层可以设计为单隐层或者多隐层结构;最后一个隐层传递到输出层各神经元的信息,经进一步处理后,完成一次学习的正向传播处理过程,由输出层向外界输出信息处理结果。当实际输出与期望输出不符时,进入误差的反向传播阶段。误差通过输出层,按误差梯度下降的方式修正各层权值,向隐层、输入层逐层反传。周而复始的信息正向传播和误差反向传播过程,是各层权值不断调整的过程,也是神经网络学习训练的过程,此过程一直进行到网络输出的误差减少到可以接受的程度,或者预先设定的学习次数为止。
BP神经网络模型包括其输入输出模型、作用函数模型、误差计算模型和自学习模型。
(1)节点输出模型
隐节点输出模型:Oj=f(∑Wij×Xi-qj) (1)
输出节点输出模型:Yk=f(∑Tjk×Oj-qk) (2)
f-非线形作用函数;q -神经单元阈值。
(2)作用函数模型
作用函数是反映下层输入对上层节点刺激脉冲强度的函数又称刺激函数,一般取为(0,1)内连续取值Sigmoid函数:f(x)=1/(1+e乘方(-x)) (3)
(3)误差计算模型
误差计算模型是反映神经网络期望输出与计算输出之间误差大小的函数:
tpi- i节点的期望输出值;Opi-i节点计算输出值。
(4)自学习模型
神经网络的学习过程,即连接下层节点和上层节点之间的权重矩阵Wij的设定和误差修正过程。BP网络有师学习方式-需要设定期望值和无师学习方式-只需输入模式之分。自学习模型为
△Wij(n+1)=h ×Фi×Oj+a×△Wij(n) (5)
h -学习因子;Фi-输出节点i的计算误差;Oj-输出节点j的计算输出;a-动量因子。
实验结果分析:
根据程序运行的结果如图1.1所示,对训练集进行10000次训练之后,使用训练集进行测试,神经网络的正确率为90.8%。经过