王春梅
摘 要: 神經(jīng)網(wǎng)絡(luò)可以實(shí)現(xiàn)分類、預(yù)測(cè)等多種網(wǎng)絡(luò)模型。將神經(jīng)網(wǎng)絡(luò)的BP(前饋神經(jīng)網(wǎng)絡(luò))和SVM(支持向量機(jī))數(shù)據(jù)挖掘算法應(yīng)用于西安地區(qū)的空氣質(zhì)量預(yù)測(cè),雖然它們的泛化和收斂能力不同,但通過以往的歷史數(shù)據(jù)訓(xùn)練網(wǎng)絡(luò)模型。實(shí)驗(yàn)結(jié)果證明該算法可以較準(zhǔn)確地預(yù)測(cè)未來的數(shù)據(jù)。
關(guān)鍵詞: BP神經(jīng)網(wǎng)絡(luò); 支持向量機(jī); 核函數(shù); 數(shù)據(jù)挖掘
中圖分類號(hào): TN711?34 文獻(xiàn)標(biāo)識(shí)碼: A 文章編號(hào): 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 引 言
近年來空氣污染嚴(yán)重,空氣問題不容忽視,準(zhǔn)確的空氣質(zhì)量預(yù)測(cè)具有極大的現(xiàn)實(shí)意義。神經(jīng)網(wǎng)絡(luò)算法在數(shù)據(jù)挖掘中占有重要的地位,因?yàn)榫W(wǎng)絡(luò)模型、復(fù)雜度等不同,神經(jīng)網(wǎng)絡(luò)可以擬合各種曲線實(shí)現(xiàn)分類、預(yù)測(cè)等多種模式,至今神經(jīng)網(wǎng)絡(luò)已經(jīng)研究出了多種類型來適應(yīng)不同的要求。
神經(jīng)網(wǎng)絡(luò)要求網(wǎng)絡(luò)模型對(duì)訓(xùn)練數(shù)據(jù)集有比較好的逼近能力,也需要對(duì)訓(xùn)練集之外的分布數(shù)據(jù)能給出比較精準(zhǔn)的預(yù)測(cè)。泛化能力即經(jīng)過訓(xùn)練學(xué)習(xí)得到的預(yù)測(cè)模型,對(duì)沒有在訓(xùn)練集中出現(xiàn)但是具有一定規(guī)則的數(shù)據(jù)能有比較準(zhǔn)確的預(yù)測(cè)能力,不只是普通的保存學(xué)習(xí)過的樣本,而是需要進(jìn)行有限次數(shù)據(jù)的訓(xùn)練,找到未知的規(guī)律。
本文基于神經(jīng)網(wǎng)絡(luò)的BP算法和SVM算法利用已有的歷史數(shù)據(jù)訓(xùn)練網(wǎng)絡(luò)模型,對(duì)未來的天氣進(jìn)行較為準(zhǔn)確的預(yù)測(cè)工作。
1 BP算法
前饋神經(jīng)網(wǎng)絡(luò)是一種典型的神經(jīng)網(wǎng)絡(luò)模型,網(wǎng)絡(luò)具有分層結(jié)構(gòu),輸入數(shù)據(jù)從輸入層進(jìn)入到前饋神經(jīng)網(wǎng)絡(luò),經(jīng)過輸入層和隱層傳遞到輸出層。不同的前饋網(wǎng)絡(luò)節(jié)點(diǎn)限制函數(shù)、神經(jīng)元個(gè)數(shù)、隱層個(gè)數(shù)、權(quán)重修改方法能夠?qū)崿F(xiàn)擁有多樣能力的前饋神經(jīng)網(wǎng)絡(luò)。
只有一個(gè)隱層的感知器只能解決輸入數(shù)據(jù)線性能夠區(qū)分的問題,但很多分類問題的輸入數(shù)據(jù)都是線性不能區(qū)分的。要完成線性不可分的難題,需要在結(jié)構(gòu)中加入隱層。含有多隱層的前饋網(wǎng)絡(luò)相比于單層感知器的區(qū)分效果有明顯的提升。因?yàn)檎`差相反傳遞算法經(jīng)常用于神經(jīng)網(wǎng)絡(luò),所以也叫BP網(wǎng)絡(luò)。
1.1 基本思想
BP學(xué)習(xí)過程分為兩個(gè)過程,即輸入數(shù)據(jù)經(jīng)過輸入層和隱層正向流給輸出層,輸出層的誤差經(jīng)隱層反傳給輸入層。正向傳播時(shí),輸入數(shù)據(jù)從輸入層到達(dá),經(jīng)過每個(gè)隱層的加工后,再傳遞給最后的輸出層。如果輸出數(shù)據(jù)達(dá)不到預(yù)期目標(biāo),則進(jìn)入誤差的反向傳遞。誤差的反向傳遞是指將最后一層的誤差經(jīng)過某種方法,經(jīng)網(wǎng)絡(luò)的隱層反轉(zhuǎn)傳遞向輸入層,將誤差均勻給網(wǎng)絡(luò)每個(gè)層的所有神經(jīng)元節(jié)點(diǎn),因此得到網(wǎng)絡(luò)每層神經(jīng)元節(jié)點(diǎn)的誤差信號(hào),通過節(jié)點(diǎn)獲得的誤差來調(diào)整節(jié)點(diǎn)。這兩部分反復(fù),通過不斷地權(quán)重修改將誤差減少到比較滿意的情況,或達(dá)到學(xué)習(xí)次數(shù)上限。
1.2 基本原理
三層BP網(wǎng)絡(luò)模型圖如圖1所示。
在該三層前饋網(wǎng)絡(luò)中,為輸入向量,代表隱層神經(jīng)元節(jié)點(diǎn)的閾值;隱層輸出為圖1中是為輸出層神經(jīng)元引入閾值設(shè)置的;輸出層的輸出向量為預(yù)期輸出網(wǎng)絡(luò)的隱層和網(wǎng)絡(luò)輸入層的權(quán)值用矩陣表示;用表示網(wǎng)絡(luò)隱層到網(wǎng)絡(luò)輸出層的權(quán)值矩陣。
對(duì)于輸出層來說:
(1)
對(duì)于隱層來說:
(2)
轉(zhuǎn)移函數(shù)為:
(3)
1.3 學(xué)習(xí)算法
當(dāng)網(wǎng)絡(luò)輸出距離預(yù)期結(jié)果有差距時(shí),代表輸出誤差。
隱層:
(4)
輸入層:
(5)
據(jù)式(5)得知,網(wǎng)絡(luò)誤差展開到輸入層只和有關(guān),要想減小誤差,就要修改神經(jīng)元的權(quán)值。
假設(shè)網(wǎng)絡(luò)有個(gè)隱層,神經(jīng)元數(shù)代表網(wǎng)絡(luò)隱層的輸出,為權(quán)重,則權(quán)重修改公式如下:
輸出層:
(6)
第個(gè)隱層:
(7)
遞推可得:
(8)
在BP算法中,所有的權(quán)重修改公式都一樣,都取決于學(xué)習(xí)率、輸入和本層的輸出誤差。模型每層的輸出誤差和模型的總誤差有關(guān)系,反映了模型輸出的誤差。網(wǎng)絡(luò)中每一個(gè)隱層的誤差都和前面每個(gè)網(wǎng)絡(luò)層的誤差有聯(lián)系,都是經(jīng)過網(wǎng)絡(luò)的輸出層一層一層地向前回傳。
2 SVM算法
2.1 基本思想
從線性可分的方向來看,支持向量機(jī)的本質(zhì)是尋找一個(gè)最優(yōu)決策超平面,使其兩側(cè)和到平面距離最近的數(shù)據(jù)點(diǎn)之間的距離最大,有良好的泛化推廣能力。而對(duì)于非線性可分問題,根據(jù)Cover定理:如果分類問題在低維上不可分,那么將其非線性地映射到高維特征空間可能是線性可分的,只要變化是非線性的并且特征空間的維度很高,所以模式空間可以從低維變換到高維特征空間,讓問題在高維中有很大的可能可分。
2.2 基本原理
SVM方法是一個(gè)三層網(wǎng)絡(luò)構(gòu)建的過程,分類超平面的向量為網(wǎng)絡(luò)的權(quán)值,隱層使用非線性映射函數(shù)把數(shù)據(jù)輸入向量從低維映射到高維的特征向量空間中。
設(shè)是維的輸入向量,低維輸入的空間經(jīng)過非線性變換到維特征空間:
(9)
式中:是權(quán)重;是偏置。
特征空間分類超平面為:
(10)
式中:代表第個(gè)輸入向量在高維特征空間的像和輸入向量在特征空間的像的內(nèi)積。
使用內(nèi)積函數(shù)得到超平面:
(11)
支持向量機(jī)的基本思路是:對(duì)于非線性可分問題,讓輸入樣本從非線性低維變化到高維特征空間后,使其在高維特征空間線性可分,讓支持向量的個(gè)數(shù)是去除向量為零,最優(yōu)超平面判別函數(shù)為:
(12)
2.3 學(xué)習(xí)算法
在使用內(nèi)積核函數(shù)的情況下,SVM學(xué)習(xí)算法如下:
(1) 訓(xùn)練樣本
(2) 在約束條件下求解,讓目標(biāo)函數(shù):最大化的矩陣的第個(gè)元素是。
(3) 計(jì)算最優(yōu)的權(quán)值:
(4) 對(duì)于待分類模式計(jì)算判別函數(shù):
根據(jù)的值,判斷的類別。
向量機(jī)的設(shè)計(jì)不完全依靠設(shè)計(jì)人員的經(jīng)驗(yàn),因?yàn)榈玫降氖侨值淖顑?yōu)解,泛化能力較強(qiáng)。但是因?yàn)榫仃囘\(yùn)算耗時(shí),所以訓(xùn)練速度相對(duì)緩慢。
3 測(cè)試實(shí)驗(yàn)
3.1 BP算法實(shí)驗(yàn)
首先定義網(wǎng)絡(luò)結(jié)構(gòu),根據(jù)多次實(shí)驗(yàn),最終確定的網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示。網(wǎng)絡(luò)的輸入層節(jié)點(diǎn)數(shù)設(shè)計(jì)為5、輸出層節(jié)點(diǎn)數(shù)選擇為4、隱含層節(jié)點(diǎn)數(shù)選擇為100。隱層的轉(zhuǎn)移函數(shù)是Sigmoid函數(shù),輸出層轉(zhuǎn)移函數(shù)為Purelin函數(shù)。
由于是時(shí)間序列預(yù)測(cè),得到了以前數(shù)據(jù)后,令是第個(gè)輸入,令是第個(gè)輸出。輸入層節(jié)點(diǎn)總數(shù)用表示,代表輸出層節(jié)點(diǎn)的總數(shù)。
利用BP算法,根據(jù)2013年11月—2014年12月的西安歷史空氣質(zhì)量數(shù)據(jù),對(duì)2015年1月空氣質(zhì)量預(yù)測(cè)結(jié)果折線圖如圖3所示,數(shù)值參照表如表1所示。
3.2 SVM算法實(shí)驗(yàn)
本次實(shí)驗(yàn)采用Gauss來模擬RBF網(wǎng)絡(luò)預(yù)測(cè)空氣質(zhì)量。Gauss核函數(shù)需要參數(shù)。如果會(huì)發(fā)生嚴(yán)重的過學(xué)習(xí)現(xiàn)象,即泛化能力較弱;當(dāng)時(shí)會(huì)有前學(xué)習(xí)現(xiàn)象。
其次需要樣本準(zhǔn)備,因?yàn)闅v史空氣質(zhì)量的變化趨勢(shì)能反映空氣質(zhì)量的規(guī)律。輸入?yún)?shù)是歷史的空氣質(zhì)量輸出是下一日期的空氣質(zhì)量。是輸入空間的維度,是空氣質(zhì)量預(yù)測(cè)的步長。此處選取來預(yù)測(cè)未來1個(gè)月的空氣質(zhì)量。
使用lssvm的tunelssvm函數(shù),采用最小二乘法對(duì)Gauss核函數(shù)的參數(shù)和SVM參數(shù)進(jìn)行尋優(yōu),找到合適的Gauss函數(shù)參數(shù),再使用工具箱trainlssvm函數(shù)進(jìn)行訓(xùn)練,然后連續(xù)預(yù)測(cè)得到2015年1月的空氣質(zhì)量預(yù)測(cè)值。
利用SVM算法,根據(jù)2013年11月—2014年12月的西安歷史空氣質(zhì)量,對(duì)2015年1月空氣質(zhì)量預(yù)測(cè)結(jié)果折線圖如圖4所示,數(shù)值參照表如表2所示。
3.3 實(shí)驗(yàn)結(jié)果對(duì)比
從圖5和圖6得知,針對(duì)得到的樣本和實(shí)現(xiàn)的算法模型,BP算法模型和SVM支持向量機(jī)對(duì)2015年1月空氣質(zhì)量的總體走勢(shì)的預(yù)測(cè)相差不多,對(duì)于實(shí)際的空氣質(zhì)量,仍舊有較大的誤差。SVM的均方誤差略小于BP的均方誤差,但是BP算法網(wǎng)絡(luò)模型需要大量的時(shí)間訓(xùn)練,而SVM網(wǎng)絡(luò)參數(shù)尋優(yōu)使用的時(shí)間要少得多。
4 結(jié) 語
BP算法在神經(jīng)網(wǎng)絡(luò)中使用最普遍,但卻不能適用于所有的問題,確定網(wǎng)絡(luò)的層數(shù)和節(jié)點(diǎn)數(shù)仍然需要網(wǎng)絡(luò)設(shè)計(jì)者的經(jīng)驗(yàn)和不斷的試驗(yàn)調(diào)整。BP網(wǎng)絡(luò)還具有學(xué)習(xí)速率慢,易陷入極小值,泛化能力等問題需要人們解決。SVM由統(tǒng)計(jì)和數(shù)學(xué)理論發(fā)展而來,它能夠解決分類、回歸、預(yù)測(cè)等問題。對(duì)于線性不可分的問題,SVM能夠把其對(duì)應(yīng)于特征空間內(nèi),使其線性可分。SVM核心在于核函數(shù),不一樣的核函數(shù)可以模擬不同網(wǎng)絡(luò)應(yīng)用在不同問題。但是關(guān)于核函數(shù)的參數(shù)如何選取,在領(lǐng)域內(nèi)仍然沒有一個(gè)成熟的理論。數(shù)據(jù)挖掘中BP算法和SVM算法仍然有一些問題沒有統(tǒng)一的解決理論,但是這并不妨礙數(shù)據(jù)挖掘的潛力。相信隨著研究的不斷深入,理論的不斷完善,這些問題都將會(huì)迎刃而解。
參考文獻(xiàn)
[1] HAN Jiawei,KAMBER MIcheline,PEI Jian.數(shù)據(jù)挖掘:概念與技術(shù)[M].3版.北京:機(jī)械工業(yè)出版社,2012.
[2] 張良均.數(shù)據(jù)挖掘:實(shí)用案例分析[M].北京:機(jī)械工業(yè)出版社,2013.
[3] 陳封能.數(shù)據(jù)挖掘?qū)д揫M].北京:人民郵電出版社,2011.
[4] 朱明.數(shù)據(jù)挖掘[M].合肥:中國科學(xué)技術(shù)大學(xué)出版社,2008.
[5] 韓力群.人工神經(jīng)網(wǎng)絡(luò)理論、設(shè)計(jì)及應(yīng)用[M].2版.北京:化學(xué)工業(yè)出版社,2007.
[6] 王小川.Matlab神經(jīng)網(wǎng)絡(luò)43個(gè)案例分析[M].北京:北京航空航天大學(xué)出版社,2013.
[7] 施彥,韓力群,廉小親.神經(jīng)網(wǎng)絡(luò)設(shè)計(jì)方法與實(shí)例分析[M].北京:北京郵電大學(xué)出版社,2009.
[8] 張德豐.Matlab神經(jīng)網(wǎng)絡(luò)應(yīng)用設(shè)計(jì)[M].北京:機(jī)械工業(yè)出版社,2011.
[9] 趙紅.Matlab神經(jīng)網(wǎng)絡(luò)應(yīng)用設(shè)計(jì)[M].北京:機(jī)械工業(yè)出版社,2010.
[10] 陳明.Matlab神經(jīng)網(wǎng)絡(luò)原理與實(shí)例精解[M].北京:清華大學(xué)出版社,2013.