摘 要: 旅游客流量受多種因素影響,傳統(tǒng)的時(shí)間序列預(yù)測(cè)模型無(wú)法描述預(yù)測(cè)對(duì)象的規(guī)律,,人工智能方法如BP神經(jīng)網(wǎng)絡(luò),,其結(jié)構(gòu)的選擇過(guò)多依賴(lài)經(jīng)驗(yàn),基于此提出了利用改進(jìn)的粒子群算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò),,通過(guò)慣性因子的非線性遞減來(lái)改善粒子群的尋優(yōu)性能,。將該預(yù)測(cè)模型應(yīng)用于自貢燈會(huì)的客流量進(jìn)行實(shí)際預(yù)測(cè)分析,通過(guò)對(duì)150組訓(xùn)練樣本和50組測(cè)試樣本的實(shí)驗(yàn)仿真,,可知改進(jìn)后的方法提高了預(yù)測(cè)結(jié)果的準(zhǔn)確度,,并且涉及參數(shù)少、簡(jiǎn)單有效,。
關(guān)鍵詞: 旅游客流量預(yù)測(cè),;BP神經(jīng)網(wǎng)絡(luò);粒子群算法,;非線性遞減
0 引言
隨著中國(guó)旅游日的設(shè)立和國(guó)民旅游意識(shí)的增強(qiáng),節(jié)假日旅游成了眾多人的選擇,,但旅游目的地的接待能力有限,,游客太多則旅游設(shè)施供不應(yīng)求,服務(wù)質(zhì)量下降,,甚至出現(xiàn)游客擁堵,、踩踏等安全事故。旅游景點(diǎn)游客量預(yù)測(cè),,一直是旅游研究中的熱點(diǎn),,也是旅游學(xué)界面對(duì)的難點(diǎn)問(wèn)題之一[1]。
傳統(tǒng)的旅游需求預(yù)測(cè),,主要是定量與定性方面的研究,,比如計(jì)量經(jīng)濟(jì)模型[2]、時(shí)間序列分析模型[3-4],、灰色預(yù)測(cè)模型[5]等方法,。然而這些方法有一定的缺陷,,或者是只分析單個(gè)影響因素,如客流量歷史數(shù)據(jù),,認(rèn)為未來(lái)是過(guò)去和現(xiàn)在的延續(xù),,或者是經(jīng)驗(yàn)對(duì)預(yù)測(cè)方法的過(guò)度干擾,缺少對(duì)歷史數(shù)據(jù)的學(xué)習(xí)過(guò)程,。這些都會(huì)致使預(yù)測(cè)結(jié)果的不準(zhǔn)確,。另外,旅游景區(qū)每日客流量容易受到多個(gè)外部因素的影響,,如天氣,、某些節(jié)假日等,具有較強(qiáng)的波動(dòng)性和非線性,,使用計(jì)量統(tǒng)計(jì)思想建立的模型難以逼近其內(nèi)在變化機(jī)制,。
由于具有良好的自適應(yīng)性和強(qiáng)大的非線性映射能力,BP神經(jīng)網(wǎng)絡(luò)得到了廣泛的應(yīng)用,,但其也存在著一些不足:一是網(wǎng)絡(luò)模型訓(xùn)練前BP網(wǎng)絡(luò)連接權(quán)值和閾值的隨機(jī)初始化賦值,,使得網(wǎng)絡(luò)易陷入局部極值點(diǎn),影響非線性學(xué)習(xí)能力,,也即預(yù)測(cè)的精度,;二是BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的確定,隱含層節(jié)點(diǎn)數(shù)沒(méi)有確切的公式,,選取不當(dāng)易發(fā)生過(guò)擬合或?qū)W習(xí)能力不足[6-7],,影響網(wǎng)絡(luò)的泛化能力。近年來(lái)人工智能算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)的方法在不同領(lǐng)域也有一些應(yīng)用,,如宋國(guó)鋒等[8]在改進(jìn)遺傳算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)作預(yù)測(cè)的研究中,,利用改進(jìn)的遺傳算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)和初始權(quán)重,而遺傳算法有三個(gè)基本算子:選擇,、交叉和變異(算法的編程實(shí)現(xiàn)比較復(fù)雜),,這三個(gè)算子的參數(shù)選擇大部分依靠經(jīng)驗(yàn);程軍等[9]在粒子群優(yōu)化神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)模型中,,利用粒子群算法優(yōu)化BP網(wǎng)絡(luò)權(quán)重參數(shù),,該方法改善了BP網(wǎng)絡(luò)易陷入局部極小值的不足,提高了收斂速度,。粒子群算法具有遺傳算法的大部分優(yōu)點(diǎn),,并且訓(xùn)練操作簡(jiǎn)單,李雪等[10]通過(guò)粒子群算法的慣性權(quán)重和加速因子的線性遞減,,實(shí)現(xiàn)粒子的全局搜索與局部搜索之間的平衡,,提高了尋優(yōu)性能。
針對(duì)以上不足,,結(jié)合以前學(xué)者的不同研究成果,,提出非線性調(diào)整粒子群速度更新公式中的慣性因子的方法,,根據(jù)樣本數(shù)據(jù)源結(jié)構(gòu)確定粒子群參數(shù)的初始化,用得到的粒子群的最優(yōu)值初始化BP神經(jīng)網(wǎng)絡(luò)的權(quán)重,,建立預(yù)測(cè)模型,。
1 BP神經(jīng)網(wǎng)絡(luò)
BP神經(jīng)網(wǎng)絡(luò)是一種多層前饋神經(jīng)網(wǎng)絡(luò),包括輸入信號(hào)前向傳遞和誤差反向傳播兩個(gè)過(guò)程,。在結(jié)構(gòu)上一般由輸入層,、隱含層、輸出層三層構(gòu)成,,每一層的神經(jīng)元狀態(tài)只影響下一層神經(jīng)元狀態(tài),,它被廣泛應(yīng)用在各種預(yù)測(cè)模型中。在BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)模型中,,網(wǎng)絡(luò)結(jié)構(gòu)一般只需單個(gè)隱含層就能以任意精度逼近任意有理函數(shù),。訓(xùn)練樣本的輸入、輸出向量的維數(shù)分別決定了網(wǎng)絡(luò)的輸入,、輸出層神經(jīng)節(jié)點(diǎn)個(gè)數(shù),,典型的只有單個(gè)隱含層、單個(gè)輸出的BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示,。
圖1中,,xi=(x1,x2,,…,,xn)為BP神經(jīng)網(wǎng)絡(luò)的一組輸入向量,y為網(wǎng)絡(luò)的目標(biāo)輸出值,,wij為輸入層與隱含層之間的連接權(quán)值,,wj1為隱含層與輸出層之間的連接權(quán)值,aj,、b分別為隱含層和輸出層的節(jié)點(diǎn)閾值,。若設(shè)隱含層節(jié)點(diǎn)個(gè)數(shù)為m,則j=1,,2,…,,m,,在前向傳遞中,輸入信號(hào)向量xi從輸入層經(jīng)隱含層逐層傳輸,,最后到輸出層,,通過(guò)各層連接權(quán)值矢量、閾值矢量和每一層相應(yīng)的激勵(lì)函數(shù)進(jìn)行計(jì)算,,得出輸出層的預(yù)測(cè)輸出值Y,,若預(yù)測(cè)值Y與目標(biāo)值y之間有誤差,,則誤差部分轉(zhuǎn)入反向逐層傳遞,沿誤差減小方向調(diào)整網(wǎng)絡(luò)各層連接的權(quán)值,、閾值,。反復(fù)執(zhí)行以上過(guò)程,使得BP神經(jīng)網(wǎng)絡(luò)的預(yù)測(cè)值不斷逼近實(shí)際輸出值,。
2 粒子群優(yōu)化BP神經(jīng)網(wǎng)絡(luò)
2.1 基本PSO算法
粒子群算法(Particle Swarm Optimization,,PSO)是于1995年由Kennedy和Eberhart首次提出的一種群體智能優(yōu)化算法,該算法的實(shí)現(xiàn)方法簡(jiǎn)單,,被廣泛應(yīng)用在許多優(yōu)化問(wèn)題中,。
假設(shè)粒子群規(guī)模為M,該種群在給定的一個(gè)N維的搜索空間中組成一個(gè)種群T=(X1,,X2,,…,XM),,粒子i在N維空間中的位置可表示為Xi=(xi1,,xi2,…,,xiN),,速度表示為Vi=(vi1,vi2,,…,,viN),其中i=1,,2,,…,M,。粒子i在尋找最優(yōu)解的過(guò)程中第k次迭代時(shí)經(jīng)過(guò)的最好位置記為Pik,,群體在k時(shí)刻經(jīng)過(guò)的最好位置記為Pgk,那么每次尋優(yōu)迭代過(guò)程中,,粒子i按式(1)來(lái)更新自己的速度和位置:
式中,,k是迭代次數(shù);c1為調(diào)節(jié)粒子向自身最優(yōu)位置方向移動(dòng)的步長(zhǎng),,c2為調(diào)節(jié)粒子向全局最優(yōu)位置方向移動(dòng)的步長(zhǎng),,它們是兩個(gè)非負(fù)加速因子;r1和r2為位于[0,,1]之間的常數(shù),。在粒子群算法中,為了控制Vik和Xik的各個(gè)分量在合理區(qū)域內(nèi),,指定Vmax,、Xmax,,則Vi∈[-Vmax,Vmax],,Xi∈[-Xmax,,Xmax],一般會(huì)對(duì)速度向量進(jìn)行最值限制,,當(dāng)Vi≥Vmax時(shí),,取Vi=Vmax;當(dāng)Vi≤-Vmax時(shí),,取Vi=-Vmax,。
2.2 改進(jìn)PSO算法
基本粒子群算法有容易陷入局部最優(yōu)和收斂精度差的不足,使得該算法的優(yōu)化效果無(wú)法達(dá)到最佳,。研究表明粒子的慣性因子w對(duì)算法的性能影響很大,,w較大時(shí)有利于算法的全局搜索,而w較小時(shí)有利于算法的局部搜索,。因此,,選擇一個(gè)合適的慣性權(quán)重很重要。有學(xué)者提出隨著算法的迭代,,w線性減小的方法,,其表達(dá)式為:
w(k)=wmax-(wmax-wmin)(Tmax-k)/Tmax(2)
式中wmin為最小慣性權(quán)重,wmax為最大慣性權(quán)重,,Tmax為粒子的最大迭代次數(shù),,k為當(dāng)前迭代次數(shù)。其中,, 0.1≤wmin≤wmax≤0.9,,一般情況下,wmin=0.4,、wmax=0.9時(shí)算法性能最好,。
這種方法中w的變化與迭代次數(shù)是線性相關(guān)的,會(huì)使得算法不能很好地解決復(fù)雜的,、非線性變化的優(yōu)化問(wèn)題,。通過(guò)分析基本粒子群算法知,若線性調(diào)整粒子群的慣性因子,,粒子局部搜索和全局搜索性能將有所下降,。為解決線性遞減方法調(diào)整的不足,這里采用非線性方法進(jìn)行調(diào)整,,此時(shí)的慣性因子表達(dá)式為:
w(k)=wmin+(wmax-wmin)exp(-25 k/Tmax)(3)
2.3 改進(jìn)PSO-BP的算法實(shí)現(xiàn)
粒子群優(yōu)化BP神經(jīng)網(wǎng)絡(luò),,首先要確定網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu),,根據(jù)網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)確定粒子的長(zhǎng)度,,即粒子搜索空間的維數(shù),。其次,BP網(wǎng)絡(luò)中權(quán)值和閾值的調(diào)整是以誤差均方值為基準(zhǔn)的,,以粒子群優(yōu)化的適應(yīng)度函數(shù)作為BP網(wǎng)絡(luò)誤差的反傳函數(shù),,建立誤差均方值與粒子群算法適應(yīng)度函數(shù)的對(duì)等關(guān)系,這樣目標(biāo)函數(shù)表達(dá)式:
式中,,N表示訓(xùn)練樣本總數(shù),,fi表示目標(biāo)函數(shù)的誤差平方和,y(k),、ym(k)分別表示目標(biāo)函數(shù)的目標(biāo)輸出值和實(shí)際輸出值,。
改進(jìn)粒子群算法的尋優(yōu),具體步驟如下:
?。?)初始化粒子群參數(shù):最大迭代次數(shù)Tmax,、學(xué)習(xí)因子c1和c2、粒子群規(guī)模M,、慣性權(quán)重wmax和wmin,,在指定的位置與速度范圍內(nèi)隨機(jī)初始化位置向量和速度向量。
?。?)初始化BP神經(jīng)網(wǎng)絡(luò),,根據(jù)實(shí)際預(yù)測(cè)的問(wèn)題確定BP神經(jīng)網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu),建立網(wǎng)絡(luò)模型,,并根據(jù)網(wǎng)絡(luò)的結(jié)構(gòu)確定粒子的維度,。
(3)輸入網(wǎng)絡(luò)的訓(xùn)練樣本,,將初始化的位置向量作為當(dāng)前的全局最優(yōu)值映射到網(wǎng)絡(luò)的權(quán)值和閾值中,,計(jì)算期望輸出與實(shí)際輸出的誤差均方,并把它作為粒子群的適應(yīng)度函數(shù),。
?。?)根據(jù)粒子群速度、位置和慣性因子的改進(jìn)公式,,更新粒子的速度和位置,。
(5)迭代運(yùn)算,,確定每個(gè)粒子的個(gè)體極值和全局極值:粒子i的適應(yīng)度值fi與個(gè)體最優(yōu)值pbest比較,,如果小于pbest則取代它作為當(dāng)前的個(gè)體最優(yōu);適應(yīng)度值fi與全局極值gbest比較,,如果小于gbest則取代它作為當(dāng)前的全局最優(yōu),。
(6)算法迭代停止時(shí),將全局最優(yōu)粒子位置映射到BP神經(jīng)網(wǎng)絡(luò)的權(quán)值和閾值中,,作為BP網(wǎng)絡(luò)權(quán)重值,。
(7)將樣本數(shù)據(jù)源中訓(xùn)練樣本輸入到已確定的網(wǎng)絡(luò)模型中進(jìn)行訓(xùn)練,,用測(cè)試樣本作預(yù)測(cè),。
3 改進(jìn)的PSO-BP旅游客流量的預(yù)測(cè)
實(shí)驗(yàn)在MATLAB R2010b平臺(tái)中編程實(shí)現(xiàn)。
3.1 數(shù)據(jù)集選定及預(yù)處理
實(shí)驗(yàn)數(shù)據(jù)為自貢燈會(huì)在每年的2~3月持續(xù)一個(gè)月左右的每日客流量及其他相關(guān)數(shù)據(jù),。通過(guò)燈會(huì)官方網(wǎng)站的電子商務(wù)訂票系統(tǒng),、景點(diǎn)入口的電子紅外掃描、窗口售票點(diǎn),、自貢氣象局等方式,,獲取到的數(shù)據(jù)源參數(shù)有:昨日客流量x1、去年同期日客流量x2,、窗口售票量x3,、電子網(wǎng)站訂票數(shù)量x4,天氣信息w和周末假日h,,通過(guò)這些參數(shù)預(yù)測(cè)目標(biāo)值當(dāng)日客流量y,。
鑒于神經(jīng)網(wǎng)絡(luò)只能處理表示數(shù)值的輸入數(shù)據(jù),天氣和周末假日是非數(shù)值量,,并且其他影響因素不是同一量綱,,在這里對(duì)不同天氣狀況和周末節(jié)假日等信息作如下變換:
(1)經(jīng)分析在2~3月份燈會(huì)期間,,自貢天氣以陰天,、多云天氣為主,在此對(duì)天氣信息作如下變換:
?。?)分析發(fā)現(xiàn),,一周中周五、六,、日三天觀展人數(shù)較其余四天多,,而周一至周四的游客人數(shù)基本接近,波動(dòng)較小,。周末假日信息作如下變換:
由于原始數(shù)據(jù)之間的數(shù)值相差較大,,為了提高預(yù)測(cè)精確度,需要對(duì)原始數(shù)據(jù)進(jìn)行歸一化處理,。歸一化的方法很多,,這里通過(guò)式(5)來(lái)處理:
其中,i=1,,2,,3,,4;xmax表示數(shù)據(jù)集里的最大值,,xmin表示數(shù)據(jù)集里的最小值,。
3.2 實(shí)驗(yàn)仿真
以自貢燈會(huì)2009~2013年2~3月份的150組數(shù)據(jù)為訓(xùn)練數(shù)據(jù)集,以2014年2~3月份的30組數(shù)據(jù)為測(cè)試集,,分別用來(lái)訓(xùn)練和測(cè)試網(wǎng)絡(luò)模型,整個(gè)輸入向量為6×180的矩陣,。
改進(jìn)PSO優(yōu)化BP神經(jīng)網(wǎng)絡(luò)的初始參數(shù)確定:種群規(guī)模M=50,,最大迭代次數(shù)G=200,輸入節(jié)點(diǎn)數(shù)為6,,輸出節(jié)點(diǎn)數(shù)為1,,隱含層節(jié)點(diǎn)個(gè)數(shù)取為15,共有6×15+15×1=105個(gè)權(quán)值,,15+1=16個(gè)閾值,,搜索空間維數(shù)N=105+16=121。建立6-15-1結(jié)構(gòu)的BP網(wǎng)絡(luò),。同時(shí)訓(xùn)練BP,、PSO-BP預(yù)測(cè)模型,使用這三種模型對(duì)測(cè)試集進(jìn)行預(yù)測(cè),,對(duì)比預(yù)測(cè)結(jié)果并作性能分析,。
BP網(wǎng)絡(luò)使用最小梯度下降法作為訓(xùn)練函數(shù),目標(biāo)誤差精度為10-4,;在標(biāo)準(zhǔn)PSO-BP中,,加速因子選擇c1=c2=2.0,其他參數(shù)選擇與改進(jìn)的PSO-BP網(wǎng)絡(luò)的參數(shù)相同,。圖2,、3、4分別為BP,、PSO-BP,、IPSO-BP當(dāng)日預(yù)測(cè)客流量與實(shí)際人數(shù)的擬合圖,并給出了兩者的絕對(duì)誤差曲線,,其中橫軸時(shí)間序列表示2~3月的時(shí)間量(每天),,縱軸表示對(duì)應(yīng)每天的景區(qū)客流量人數(shù)。
比較圖2,、3,、4可知,利用慣性因子的非線性遞減方法,,預(yù)測(cè)曲線擬合度較高,,預(yù)測(cè)的絕對(duì)誤差明顯減小。此時(shí)BP神經(jīng)網(wǎng)絡(luò)、PSO-BP神經(jīng)網(wǎng)絡(luò)和IPSO-BP神經(jīng)網(wǎng)絡(luò)的均方誤差分別是:mseBP=1.4×10-3,,msePSO-BP=4.76×10-4,,mseIPSO-BP=3.42×10-4,可以看出改進(jìn)后的預(yù)測(cè)精度有所提高,。
4 結(jié)束語(yǔ)
本文提出改進(jìn)的PSO-BP算法建立預(yù)測(cè)模型,,并以自貢燈會(huì)客流量為例做預(yù)測(cè)分析。雖然選用的訓(xùn)練樣本數(shù)據(jù)并不多,,但從仿真結(jié)果看,,卻取得了較高精度的預(yù)測(cè)效果,說(shuō)明粒子群算法無(wú)需過(guò)多原始數(shù)據(jù)也能得到理想的尋優(yōu)結(jié)果,。改進(jìn)PSO和BP網(wǎng)絡(luò)組合的預(yù)測(cè)模型簡(jiǎn)單有效,,對(duì)自貢燈會(huì)的管理決策有較大的參考價(jià)值。如何進(jìn)一步提高算法在法定節(jié)假日,、異常天氣情況下的客流量預(yù)測(cè)的泛化能力,,是下一步研究的重點(diǎn)。
參考文獻(xiàn)
[1] 陶偉,,倪明.中西方旅游需求預(yù)測(cè)對(duì)比研究:理論基礎(chǔ)與模型[J].旅游學(xué)刊,,2010,25(8):12-17.
[2] SMERAL E,, WITT S F,, WITT C A. Econometric forecasts: tourism trends to 2000[J]. Annals of Tourism Research,1992,,19(3):450-466.
[3] 陳萍萍.基于時(shí)間序列的旅游需求預(yù)測(cè)模型[J].統(tǒng)計(jì)與決策,,2013(18):11-13.
[4] 趙娟,江立輝.旅游客流量預(yù)測(cè)的模糊時(shí)間序列模型以黃山風(fēng)景區(qū)為例[J].合肥學(xué)院學(xué)報(bào)(自然科學(xué)版),,2014,,24(4):26-31.
[5] ZENG Z L, ZHENG Y. The grey model and its application to forecast of inbound visitors from mainland China to Macau[C]. 3rd Intrmational Conference on Management Science and Engineering Management,, 2009:48-54.
[6] 李松,,劉力軍,翟曼.改進(jìn)粒子群算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)的短時(shí)交通流預(yù)測(cè)[J].系統(tǒng)工程理論與實(shí)踐,,2012,,32(9):2045-2049.
[7] 王德明,王莉,,張廣明.基于遺傳BP神經(jīng)網(wǎng)絡(luò)的短期風(fēng)速預(yù)測(cè)模型[J].浙江大學(xué)學(xué)報(bào)(工學(xué)版),,2012,46(5):837-841.
[8] 宋國(guó)鋒,,梁昌勇,,梁焱,,等.改進(jìn)遺傳算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)的旅游景區(qū)日客流量預(yù)測(cè)[J].小型微型計(jì)算機(jī)系統(tǒng),2014,,35(9):2136-2141.
[9] 程軍,,李榮鈞.基于粒子群優(yōu)化的神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)模型[J].教學(xué)的實(shí)踐與認(rèn)識(shí),2015,,45(3):176-180.
[10] 李雪,,顧沈明,年浩.改進(jìn)粒子群算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)的糧食產(chǎn)量預(yù)測(cè)[J].漳州師范學(xué)院學(xué)報(bào)(自然科學(xué)版),,2014,,27(1):56-61.