基于神经网络的数据挖掘算法研究

王春梅
摘 要: 神经网络可以实现分类、预测等多种网络模型。将神经网络的BP(前馈神经网络)和SVM(支持向量机)数据挖掘算法应用于西安地区的空气质量预测,虽然它们的泛化和收斂能力不同,但通过以往的历史数据训练网络模型。实验结果证明该算法可以较准确地预测未来的数据。
关键词: BP神经网络; 支持向量机; 核函数; 数据挖掘
中图分类号: TN711?34 文献标识码: A 文章编号: 1004?373X(2017)11?0111?04
Research on data mining algorithm based on neural network
WANG Chunmei
(School of Computer Science and Technology, Xian University of Posts and Telecommunications, Xian 710121, China)
Abstract: The neural network can classify and predict the various network models. The data mining algorithm based on BP neural network and SVM is applied to the air quality prediction in Xian region. Although the BP neural network and SVM method have different generalization ability and convergence ability, the past historical data is used to train the network model. The experimental results prove that the data mining algorithm can predict the future data accurately.
Keywords: BP neural network; support vector machine; kernel function; data mining
0 引 言
近年来空气污染严重,空气问题不容忽视,准确的空气质量预测具有极大的现实意义。神经网络算法在数据挖掘中占有重要的地位,因为网络模型、复杂度等不同,神经网络可以拟合各种曲线实现分类、预测等多种模式,至今神经网络已经研究出了多种类型来适应不同的要求。
神经网络要求网络模型对训练数据集有比较好的逼近能力,也需要对训练集之外的分布数据能给出比较精准的预测。泛化能力即经过训练学习得到的预测模型,对没有在训练集中出现但是具有一定规则的数据能有比较准确的预测能力,不只是普通的保存学习过的样本,而是需要进行有限次数据的训练,找到未知的规律。
本文基于神经网络的BP算法和SVM算法利用已有的历史数据训练网络模型,对未来的天气进行较为准确的预测工作。
1 BP算法
前馈神经网络是一种典型的神经网络模型,网络具有分层结构,输入数据从输入层进入到前馈神经网络,经过输入层和隐层传递到输出层。不同的前馈网络节点限制函数、神经元个数、隐层个数、权重修改方法能够实现拥有多样能力的前馈神经网络。
只有一个隐层的感知器只能解决输入数据线性能够区分的问题,但很多分类问题的输入数据都是线性不能区分的。要完成线性不可分的难题,需要在结构中加入隐层。含有多隐层的前馈网络相比于单层感知器的区分效果有明显的提升。因为误差相反传递算法经常用于神经网络,所以也叫BP网络。
1.1 基本思想
BP学习过程分为两个过程,即输入数据经过输入层和隐层正向流给输出层,输出层的误差经隐层反传给输入层。正向传播时,输入数据从输入层到达,经过每个隐层的加工后,再传递给最后的输出层。如果输出数据达不到预期目标,则进入误差的反向传递。误差的反向传递是指将最后一层的误差经过某种方法,经网络的隐层反转传递向输入层,将误差均匀给网络每个层的所有神经元节点,因此得到网络每层神经元节点的误差信号,通过节点获得的误差来调整节点。这两部分反复,通过不断地权重修改将误差减少到比较满意的情况,或达到学习次数上限。
1.2 基本原理
三层BP网络模型图如图1所示。
在该三层前馈网络中,为输入向量,代表隐层神经元节点的阈值;隐层输出为图1中是为输出层神经元引入阈值设置的;输出层的输出向量为预期输出网络的隐层和网络输入层的权值用矩阵表示;用表示网络隐层到网络输出层的权值矩阵。
对于输出层来说:
(1)
对于隐层来说:
(2)
转移函数为:
(3)
1.3 学习算法
当网络输出距离预期结果有差距时,代表输出误差。
隐层:
(4)
输入层:
(5)
据式(5)得知,网络误差展开到输入层只和有关,要想减小误差,就要修改神经元的权值。
假设网络有个隐层,神经元数代表网络隐层的输出,为权重,则权重修改公式如下:
输出层:
(6)
第个隐层:
(7)
递推可得:
(8)
在BP算法中,所有的权重修改公式都一样,都取决于学习率、输入和本层的输出误差。模型每层的输出误差和模型的总误差有关系,反映了模型输出的误差。网络中每一个隐层的误差都和前面每个网络层的误差有联系,都是经过网络的输出层一层一层地向前回传。
2 SVM算法
2.1 基本思想
从线性可分的方向来看,支持向量机的本质是寻找一个最优决策超平面,使其两侧和到平面距离最近的数据点之间的距离最大,有良好的泛化推广能力。而对于非线性可分问题,根据Cover定理:如果分类问题在低维上不可分,那么将其非线性地映射到高维特征空间可能是线性可分的,只要变化是非线性的并且特征空间的维度很高,所以模式空间可以从低维变换到高维特征空间,让问题在高维中有很大的可能可分。
2.2 基本原理
SVM方法是一个三层网络构建的过程,分类超平面的向量为网络的权值,隐层使用非线性映射函数把数据输入向量从低维映射到高维的特征向量空间中。
设是维的输入向量,低维输入的空间经过非线性变换到维特征空间:
(9)
式中:是权重;是偏置。
特征空间分类超平面为:
(10)
式中:代表第个输入向量在高維特征空间的像和输入向量在特征空间的像的内积。
使用内积函数得到超平面:
(11)
支持向量机的基本思路是:对于非线性可分问题,让输入样本从非线性低维变化到高维特征空间后,使其在高维特征空间线性可分,让支持向量的个数是去除向量为零,最优超平面判别函数为:
(12)
2.3 学习算法
在使用内积核函数的情况下,SVM学习算法如下:
(1) 训练样本
(2) 在约束条件下求解,让目标函数:最大化的矩阵的第个元素是。
(3) 计算最优的权值:
(4) 对于待分类模式计算判别函数:
根据的值,判断的类别。
向量机的设计不完全依靠设计人员的经验,因为得到的是全局的最优解,泛化能力较强。但是因为矩阵运算耗时,所以训练速度相对缓慢。
3 测试实验
3.1 BP算法实验
首先定义网络结构,根据多次实验,最终确定的网络结构如图2所示。网络的输入层节点数设计为5、输出层节点数选择为4、隐含层节点数选择为100。隐层的转移函数是Sigmoid函数,输出层转移函数为Purelin函数。
由于是时间序列预测,得到了以前数据后,令是第个输入,令是第个输出。输入层节点总数用表示,代表输出层节点的总数。
利用BP算法,根据2013年11月—2014年12月的西安历史空气质量数据,对2015年1月空气质量预测结果折线图如图3所示,数值参照表如表1所示。
3.2 SVM算法实验
本次实验采用Gauss来模拟RBF网络预测空气质量。Gauss核函数需要参数。如果会发生严重的过学习现象,即泛化能力较弱;当时会有前学习现象。
其次需要样本准备,因为历史空气质量的变化趋势能反映空气质量的规律。输入参数是历史的空气质量输出是下一日期的空气质量。是输入空间的维度,是空气质量预测的步长。此处选取来预测未来1个月的空气质量。
使用lssvm的tunelssvm函数,采用最小二乘法对Gauss核函数的参数和SVM参数进行寻优,找到合适的Gauss函数参数,再使用工具箱trainlssvm函数进行训练,然后连续预测得到2015年1月的空气质量预测值。
利用SVM算法,根据2013年11月—2014年12月的西安历史空气质量,对2015年1月空气质量预测结果折线图如图4所示,数值参照表如表2所示。
3.3 实验结果对比
从图5和图6得知,针对得到的样本和实现的算法模型,BP算法模型和SVM支持向量机对2015年1月空气质量的总体走势的预测相差不多,对于实际的空气质量,仍旧有较大的误差。SVM的均方误差略小于BP的均方误差,但是BP算法网络模型需要大量的时间训练,而SVM网络参数寻优使用的时间要少得多。
4 结 语
BP算法在神经网络中使用最普遍,但却不能适用于所有的问题,确定网络的层数和节点数仍然需要网络设计者的经验和不断的试验调整。BP网络还具有学习速率慢,易陷入极小值,泛化能力等问题需要人们解决。SVM由统计和数学理论发展而来,它能够解决分类、回归、预测等问题。对于线性不可分的问题,SVM能够把其对应于特征空间内,使其线性可分。SVM核心在于核函数,不一样的核函数可以模拟不同网络应用在不同问题。但是关于核函数的参数如何选取,在领域内仍然没有一个成熟的理论。数据挖掘中BP算法和SVM算法仍然有一些问题没有统一的解决理论,但是这并不妨碍数据挖掘的潜力。相信随着研究的不断深入,理论的不断完善,这些问题都将会迎刃而解。
参考文献
[1] HAN Jiawei,KAMBER MIcheline,PEI Jian.数据挖掘:概念与技术[M].3版.北京:机械工业出版社,2012.
[2] 张良均.数据挖掘:实用案例分析[M].北京:机械工业出版社,2013.
[3] 陈封能.数据挖掘导论[M].北京:人民邮电出版社,2011.
[4] 朱明.数据挖掘[M].合肥:中国科学技术大学出版社,2008.
[5] 韩力群.人工神经网络理论、设计及应用[M].2版.北京:化学工业出版社,2007.
[6] 王小川.Matlab神经网络43个案例分析[M].北京:北京航空航天大学出版社,2013.
[7] 施彦,韩力群,廉小亲.神经网络设计方法与实例分析[M].北京:北京邮电大学出版社,2009.
[8] 张德丰.Matlab神经网络应用设计[M].北京:机械工业出版社,2011.
[9] 赵红.Matlab神经网络应用设计[M].北京:机械工业出版社,2010.
[10] 陈明.Matlab神经网络原理与实例精解[M].北京:清华大学出版社,2013.