• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      SPGAPSO-SVM:一種城市公交客流量預(yù)測算法

      2020-12-11 01:49:58李雷孝
      關(guān)鍵詞:客流量適應(yīng)度種群

      林 浩,李雷孝,王 慧

      1(內(nèi)蒙古工業(yè)大學(xué) 數(shù)據(jù)科學(xué)與應(yīng)用學(xué)院,呼和浩特 010080) 2(內(nèi)蒙古自治區(qū)基于大數(shù)據(jù)的軟件服務(wù)工程技術(shù)研究中心,呼和浩特 010080)

      1 引 言

      在現(xiàn)代交通系統(tǒng)中,城市公交交通發(fā)揮著重要職能.相對于其他出行方式,公共交通具有載客量大、排污量小、成本較低等優(yōu)勢.為了保障城市公交高效有序的運(yùn)營,不僅需要良好的公交運(yùn)營管理方案,有效的運(yùn)營調(diào)度同樣必不可少.利用公交相關(guān)信息數(shù)據(jù)進(jìn)行準(zhǔn)確公交客流量預(yù)測可以為城市公交車的運(yùn)營調(diào)度提供有效的決策支持.

      目前國內(nèi)外學(xué)者在公交客流量預(yù)測領(lǐng)域已經(jīng)取得了一定的研究成果,研究成果可分為兩類,一類是用數(shù)學(xué)方法建立數(shù)學(xué)規(guī)劃模型或線性預(yù)測模型來實(shí)現(xiàn)對城市公交客流量的預(yù)測.文獻(xiàn)[1]利用多元線性回歸方法建立公交車各個(gè)時(shí)間段的客流量預(yù)測模型,并通過城市一卡通數(shù)據(jù)對模型進(jìn)行了驗(yàn)證[1].文獻(xiàn)[2]采用乘積差分整合移動(dòng)平均自回歸模型(Autoregressive Integrated Moving Average model,ARIMA)對城市軌道交通的客流量進(jìn)行預(yù)測,實(shí)驗(yàn)結(jié)果表明該模型具有良好的適用性[2].另一類是通過機(jī)器學(xué)習(xí)的相關(guān)算法構(gòu)建預(yù)測模型,利用訓(xùn)練數(shù)據(jù)對模型進(jìn)行訓(xùn)練,從而預(yù)測出客流量.文獻(xiàn)[3]使用長短時(shí)記憶網(wǎng)絡(luò)(Long Short-Term Memory,LSTM)實(shí)現(xiàn)對多個(gè)公交站點(diǎn)的客流量預(yù)測,并分析出多個(gè)站點(diǎn)的客流量數(shù)據(jù)間存在相關(guān)性[3].文獻(xiàn)[4]采用基于黃金分割的粒子群算法對支持向量機(jī)(Support Vector Machine,SVM)的參數(shù)進(jìn)行尋優(yōu),構(gòu)建了混合核SVM客流量預(yù)測模型[4].文獻(xiàn)[5]根據(jù)徑向基(Radial Basis Function,RBF)神經(jīng)網(wǎng)絡(luò)的特點(diǎn)構(gòu)建了多尺度RBF神經(jīng)網(wǎng)絡(luò)的客流量預(yù)測模型.實(shí)驗(yàn)結(jié)果顯示,RBF神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)速度快于BP神經(jīng)網(wǎng)絡(luò),更適用于客流量預(yù)測領(lǐng)域[5].

      由于公交客流量日間變化較大,其數(shù)據(jù)具有非線性、非平穩(wěn)性、潮汐性等特點(diǎn)[6].而SVM作為經(jīng)典的機(jī)器學(xué)習(xí)算法之一,通過尋求結(jié)構(gòu)風(fēng)險(xiǎn)最小化(Structural Risk Minimization,SRM)來最小化實(shí)際風(fēng)險(xiǎn),能夠較好地解決非線性數(shù)據(jù)、小樣本和維數(shù)災(zāi)難等問題[7].故本文采用SVM進(jìn)行城市公交客流量預(yù)測.SVM算法的性能受其核函數(shù)以及核函數(shù)參數(shù)值的影響.針對傳統(tǒng)SVM預(yù)測模型準(zhǔn)確率不高的問題,本文在SVM的參數(shù)尋優(yōu)階段采用基于遺傳算法(Genetic Algorithm,GA)和粒子群算法(Particle Swarm Optimization,PSO)的混合啟發(fā)式算法輔助SVM確定核函數(shù)參數(shù).混合啟發(fā)式算法相比單一啟發(fā)式算法,計(jì)算量必定更大,耗時(shí)必定更長.針對混合啟發(fā)式算法速度較慢的問題,分析了影響算法速度的原因,對混合啟發(fā)式算法基于Spark平臺進(jìn)行了并行化設(shè)計(jì),并以此提出了SPGAPSO-SVM算法.使用SPGAPSO-SVM算法訓(xùn)練公交客流量預(yù)測模型,進(jìn)而預(yù)測公交客流量可以在提高預(yù)測準(zhǔn)確率的同時(shí)減少算法運(yùn)行時(shí)間,進(jìn)一步提高公交客流量預(yù)測的效率.

      2 SVM算法優(yōu)化

      2.1 支持向量機(jī)

      支持向量機(jī)是Vapnik等提出的一種基于統(tǒng)計(jì)學(xué)習(xí)理論的機(jī)器學(xué)習(xí)方法,根據(jù)用途可分為支持向量回歸機(jī)(SVR)和支持向量分類機(jī)(SVC).基本思想是在空間中尋求最優(yōu)分類面,使得距離超平面最遠(yuǎn)的樣本點(diǎn)之間距離最大.設(shè)n個(gè)樣本集為{((xi,y1)|i=1,2,…,n)},xi∈Rn,其中xi為輸入樣本,yi為輸出樣本.此時(shí)的決策邊界超平面表示如公式(1)所示.

      ωTxi+b=0

      (1)

      通常樣本往往是非線性且不可分的,故需引入懲罰因子C與松弛因子ξ,從而得到非線性SVM,如公式(2)所示.

      (2)

      其中懲罰因子C的作用是調(diào)整誤差,其取值決定了模型因?yàn)殡x群點(diǎn)而帶來的損失.針對公式(2)所描述的非線性問題,可以通過引入核方法(KernelTrick)解決.RBF核是實(shí)際中最常用的核函數(shù),其對應(yīng)的映射函數(shù)可以將樣本空間映射至高維空間,RBF的解析式如公式(3)所示.

      (3)

      g為核函數(shù)半徑,是RBF函數(shù)自帶的一個(gè)參數(shù).g隱含地決定了數(shù)據(jù)映射到新特征空間后的分布,g越大,支持向量越少,而支持向量的個(gè)數(shù)又影響著訓(xùn)練與預(yù)測的速度.g和公式(3)中σ的關(guān)系如公式(4)所示.

      (4)

      懲罰因子C與核函數(shù)半徑g是SVM模型兩個(gè)非常重要的參數(shù),C和g的取值很大程度上決定了SVM模型的復(fù)雜程度和性能.為了優(yōu)化SVM模型性能,提高回歸預(yù)測準(zhǔn)確率,本文采用GA和PSO混合優(yōu)化算法輔助SVM尋找最優(yōu)的C與g.

      2.2 遺傳算法優(yōu)化支持向量機(jī)

      遺傳算法是Holland等人受達(dá)爾文進(jìn)化論的啟發(fā),通過模擬自然界和生物進(jìn)化而被提出的一種元啟發(fā)式算法.GA過程簡單,多用于函數(shù)優(yōu)化、數(shù)據(jù)挖掘、機(jī)器學(xué)習(xí)等領(lǐng)域.但GA的種群個(gè)體沒有記憶,遺傳操作盲目無方向,故所需要的收斂時(shí)間更長.

      對于SVM參數(shù)尋優(yōu)問題,二進(jìn)制編碼是最常用的編碼方法.二進(jìn)制的編碼、解碼操作簡單易行;交叉、變異操作便于實(shí)現(xiàn).遺傳算法通過適應(yīng)度函數(shù)評價(jià)每一組參數(shù)的適應(yīng)度,來引導(dǎo)迭代過程向好的方向進(jìn)行.計(jì)算適應(yīng)度后,根據(jù)個(gè)體的適應(yīng)度選擇個(gè)體,并借助于組合交叉和變異等操作,產(chǎn)生出新的解集種群.

      2.3 粒子群算法優(yōu)化支持向量機(jī)

      PSO是Eberhart博士和Kennedy博士于1995年提出的一種元啟發(fā)式算法.該算法的思路源于鳥群捕食行為,通過群體中個(gè)體之間的信息傳遞和信息共享來尋找最優(yōu)解.相較于其他優(yōu)化算法,PSO參數(shù)選取簡單、收斂速度快,但是PSO也存在著精度較低、易發(fā)散等缺點(diǎn).

      PSO同樣使用適應(yīng)度評價(jià)粒子的優(yōu)劣程度,通過適應(yīng)度函數(shù)尋找個(gè)體極值和全局極值,隨后根據(jù)公式(5)、公式(6)更新各粒子的速度及位置.

      v=v1+c1r1(pbest-xi)+c2r2(Gbest-xi)

      (5)

      x=xi-vi

      (6)

      在公式(5)、公式(6)中,v是更新后粒子速度;x是更新后粒子位置;vi是粒子當(dāng)前速度;xi是粒子當(dāng)前位置;c1和c2分別為學(xué)習(xí)因子;r1和r2為(0,1)之間的隨機(jī)數(shù);pbest為個(gè)體極值;Gbest為全局極值.公式(5)中3項(xiàng)相加反映了粒子間的信息共享,通過個(gè)體的經(jīng)驗(yàn)和種群的經(jīng)驗(yàn)來決定下一步活動(dòng).

      2.4 GAPSO-SVM預(yù)測模型

      單一智能算法優(yōu)化SVM在解決復(fù)雜問題時(shí)存在許多不足,利用算法之間互補(bǔ)性的混合算法成為近年來的研究熱點(diǎn).啟發(fā)式算法的混合大體上可分為3類:串行式混合,嵌入式混合,并行式混合.本文根據(jù)文獻(xiàn)[8],總結(jié)PSO算法和GA算法的混合方式、優(yōu)勢和應(yīng)用如表1所示[8].

      表1 PSO和GA的混合方式、優(yōu)勢和應(yīng)用Table 1 Hybrid mode,advantages and applicationscenario of PSO and GA

      由表1可知,并行式混合適用于參數(shù)優(yōu)化等問題.GA和PSO同為元啟發(fā)式算法,二者均具有智能性和隨機(jī)性.并且GA和PSO都有種群、適應(yīng)度函數(shù)、更新操作、迭代操作等概念,可以共用一個(gè)種群,且均具有并行性.GA比PSO種群更多樣,搜索更全面;PSO比GA算法思想更簡單,收斂更快速.將GA和PSO結(jié)合成GAPSO-SVM算法,兩者的異同點(diǎn)使得兩種算法在性能上可以克服局限性,實(shí)現(xiàn)互補(bǔ)[9,10].

      2.4.1 GAPSO-SVM算法設(shè)計(jì)

      SVM參數(shù)尋優(yōu)問題的關(guān)鍵是尋找最優(yōu)的C與g[11],因此SVM參數(shù)尋優(yōu)問題的數(shù)學(xué)模型可以表示為:

      P={gbest,Cbest}

      (7)

      GAPSO-SVM算法將種群分成兩部分,分別進(jìn)行GA操作和PSO操作,每次迭代比較出兩者中較優(yōu)值作為本次迭代的結(jié)果進(jìn)入下次迭代,如公式(8)、公式(9)所示.

      (8)

      (9)

      利用GA和PSO都是通過迭代尋優(yōu)的共性,將兩個(gè)算法混合并共用一個(gè)最優(yōu)個(gè)體,迭代中充分利用GA的搜索范圍大和PSO快速收斂的能力.將參數(shù)尋優(yōu)后得到C與g作為SVM的運(yùn)行參數(shù)輸入,訓(xùn)練新的SVM預(yù)測模型,進(jìn)而可求出SVM預(yù)測模型的準(zhǔn)確率Accuracy.將Accuracy定義為SVM參數(shù)尋優(yōu)問題的目標(biāo)函數(shù),則可將GAPSO-SVM算法參數(shù)尋優(yōu)問題描述為:

      (10)

      其中g(shù)min和gmax為RBF核參數(shù)g的變化范圍,Cmin和Cmin為懲罰參數(shù)的C變化范圍.最后判斷所得結(jié)果是否滿足終止條件.當(dāng)滿足終止條件時(shí),終止GAPSO-SVM算法的迭代.終止條件如公式(11)所示.

      min{fitnessgabest,fitnesspsobest}≤fitnessmin
      orT≤Tmax

      (11)

      其中finessmin為最小適應(yīng)度,即可接受的最小誤差,T為迭代次數(shù),Tmax為最大迭代次數(shù).

      GAPSO-SVM算法根據(jù)訓(xùn)練數(shù)據(jù)規(guī)模將實(shí)驗(yàn)數(shù)據(jù)切分為訓(xùn)練集和測試集.對初始種群分別進(jìn)行GA操作和PSO操作,如果當(dāng)次迭代GA適應(yīng)度優(yōu)于PSO適應(yīng)度,則將GA的最優(yōu)個(gè)體保存下來用到下一次迭代中.當(dāng)二者的最小值小于最小的適應(yīng)度或迭代次數(shù)超過了最大迭代次數(shù),則終止迭代,返回最優(yōu)C、最優(yōu)g作為SVM運(yùn)行參數(shù).

      2.4.2 GAPSO-SVM算法耗時(shí)分析

      GAPSO-SVM算法的GA操作和PSO操作均可分為初始化種群、種群更新、計(jì)算適應(yīng)度3部分.初始化種群部分包括參數(shù)初始化、隨機(jī)生成初始化種群、計(jì)算初始化種群適應(yīng)度.種群更新部分包括選擇操作、交叉操作、變異操作、速度更新、位置更新、種群更新.計(jì)算適應(yīng)度部分包括遍歷種群中的所有個(gè)體,并調(diào)用svm_train函數(shù)計(jì)算個(gè)體適應(yīng)度.分別運(yùn)行GA操作和PSO操作20次,其中最大迭代次數(shù)為50,種群規(guī)模為20,計(jì)算并記錄各部分消耗時(shí)間的平均值.運(yùn)行結(jié)果如圖1所示.

      圖1 GAPSO-SVM算法各部分耗時(shí)Fig.1 Time consumptionabout each part of GAPSO-SVM

      由圖1可知,針對GAPSO-SVM算法而言,種群內(nèi)所有個(gè)體適應(yīng)度的計(jì)算約占總體算法運(yùn)行時(shí)間的91.4%,計(jì)算邏輯較為復(fù)雜的種群更新耗時(shí)約占總體算法運(yùn)行時(shí)間的5.72%,初始化種群約占總體算法運(yùn)行時(shí)間的3.4%.計(jì)算適應(yīng)度耗時(shí)過長是因?yàn)槊總€(gè)個(gè)體都需要進(jìn)行一次交叉驗(yàn)證來計(jì)算樣本均方誤差(Mean Square Error,MSE).如最大迭代次數(shù)為50,種群規(guī)模為20,交叉驗(yàn)證參數(shù)為5,則要進(jìn)行5000次交叉驗(yàn)證.

      針對計(jì)算適應(yīng)度消耗時(shí)間過長的問題,本文將采用Spark平臺對算法進(jìn)行并行化處理來減少計(jì)算適應(yīng)度運(yùn)行時(shí)間.

      3 SPGAPSO-SVM算法的提出

      與GA-SVM、PSO-SVM等單一算法優(yōu)化SVM相比,GAPSO-SVM算法邏輯更加復(fù)雜,計(jì)算量必然更大,算法運(yùn)行時(shí)間也必然更長,尤其是計(jì)算適應(yīng)度階段[12].所以本文將GAPSO-SVM算法基于Spark平臺進(jìn)行并行化處理,提出SPGAPSO-SVM算法,以提高算法的運(yùn)行速度.

      3.1 Spark平臺

      Spark是專為大規(guī)模數(shù)據(jù)處理而設(shè)計(jì)的快速通用的計(jì)算引擎.Spark擁有MapReduce所具有的優(yōu)點(diǎn),并且中間輸出結(jié)果可以保存在內(nèi)存中.因此Spark能更好地結(jié)合數(shù)據(jù)挖掘與機(jī)器學(xué)習(xí)等需要迭代的MapReduce的算法.在內(nèi)存計(jì)算下,Spark比Hadoop快100倍;在硬盤計(jì)算下,Spark比Hadoop快10倍[13].

      3.2 SPGAPSO-SVM算法設(shè)計(jì)

      SPGAPSO-SVM算法設(shè)計(jì)主要是依賴Spark所特有的彈性分布式數(shù)據(jù)集(Resilient Distributed Datasets,RDD)來進(jìn)行種群的構(gòu)建、切分和并行化處理.針對計(jì)算適應(yīng)度耗時(shí)過長的問題,將種群切分為多個(gè)子種群,并行計(jì)算子種群內(nèi)個(gè)體的適應(yīng)度.本文采用SVM的MSE作為適應(yīng)度函數(shù),適應(yīng)度函數(shù)的計(jì)算公式如公式(12)所示.

      (12)

      3.2.1 SPGA操作

      在SPGA操作開始階段,首先設(shè)置SparkConf參數(shù),用于Spark集群應(yīng)用提交.使用二進(jìn)制編碼將變量編碼成染色體用于隨機(jī)初始化種群.將種群轉(zhuǎn)化為RDD,通過map(getFitness())并行計(jì)算種群內(nèi)個(gè)體的適應(yīng)度.通過collect()合并所有個(gè)體適應(yīng)度,隨后比較出最優(yōu)適應(yīng)度.使用輪盤賭方法對當(dāng)前種群進(jìn)行選擇操作、交叉操作和變異操作以產(chǎn)生新的種群,每個(gè)個(gè)體進(jìn)入下一代的概率如公式(13)所示[14].

      (13)

      反復(fù)以上操作直至滿足終止條件.算法偽代碼如下所示.

      算法1.SPGA

      輸入:conf:Spark初始化參數(shù)

      lenchrom:染色體長度

      bound:染色體取值范圍

      sizepop:種群規(guī)模

      k:數(shù)據(jù)分區(qū)個(gè)數(shù)

      pcross:交叉概率

      pmutation:變異概率

      輸出:newChrom:迭代后種群

      bestFitness:最優(yōu)個(gè)體適應(yīng)度

      1.ProcedureSPGA(conf,lenchrom,bound,sizepop,k,pcross,pmutation)

      2.sc← sparkConf(conf)

      3.foriinsizepopdo

      4.chrom[i] ← Code(lenchrom,bound)

      5.endfor

      6.populationRdd←sc.parallelize(chrom,k)

      7.times← 0

      8.while(minFitness≥bestFitnessortimes≥maxTimes)do

      9.FitnessRdd←populationRdd.map(getFitness(),k)

      10.fitness←FitnessRdd.collect()

      11.bestFitness← min(fitness)

      12.newChrom← SelectCrossMutation(chrom,fitness,sizepop,pcross,pmutation)

      13.chrom.clear()

      14.times←times+ 1

      15.endwhile

      16.endprocedure

      3.2.2 SPPSO操作

      SPPSO操作的流程和SPGA操作的流程相似.首先設(shè)置SparkConf參數(shù),并隨機(jī)初始化個(gè)體位置和速度.將種群轉(zhuǎn)化為RDD,再通過map(getFitness())并行計(jì)算種群內(nèi)個(gè)體的適應(yīng)度.SPPSO中適應(yīng)度函數(shù)與SPGA中適應(yīng)度函數(shù)相同,這樣便于比較兩種算法產(chǎn)生的解集種群.通過collect()合并所有個(gè)體適應(yīng)度.以當(dāng)前種群為基礎(chǔ),據(jù)公式(5)、公式(6)更新個(gè)體位置和速度,隨后比較出個(gè)體最優(yōu)適應(yīng)度和全局最優(yōu)適應(yīng)度[15].反復(fù)以上操作直至滿足終止條件.算法具體偽代碼如下所示.

      圖2 SPGAPSO-SVM算法Fig.2 Flow chart of SPGAPSO-SVM

      算法2.SPPSO

      輸入:conf:Spark初始化參數(shù)

      popmax:粒子位置上界

      popmin:粒子位置下界

      sizepop:種群規(guī)模

      k:數(shù)據(jù)分區(qū)個(gè)數(shù)

      Vmax:粒子最大速度

      Vmin:粒子最小速度

      c:學(xué)習(xí)因子

      輸出:newPop:迭代后種群

      bestFitness:最優(yōu)個(gè)體適應(yīng)度

      1.ProcedureSPPSO(conf,popmax,popmin,sizepop,k,Vmax,Vmin,c)

      2.sc← sparkConf(conf)

      3.foriinsizepopdo

      4.pop[i] ←np.random.rand(2)* (popmax-popmin)+popmin

      5.V[i] ←np.random.rand(2)* (Vmax-Vmin)+Vmin

      6.endfor

      7.populationRdd←sc.parallelize(pop,k)

      8.times← 0

      9.while(minFitness≥bestFitnessortimes≥maxTimes)do

      10.FitnessRdd←populationRdd.map(getFitness(),k)

      11.fitness←FitnessRdd.collect()

      12.bestFitness,bestFitnessForPop← min(fitness)

      13.newPop,V← PopVelocityUpdate(pop,V,c)

      14.Pop.clear()

      15.times←times+ 1

      16.endwhile

      17.endprocedure

      4 相關(guān)實(shí)驗(yàn)與結(jié)果分析

      4.1 實(shí)驗(yàn)環(huán)境

      本文利用libSVM(libraryforsupportvectormachines,LIBSVM)實(shí)現(xiàn)SVM,編程語言為Python.libSVM是一個(gè)支持向量機(jī)的軟件庫,是由臺灣大學(xué)林智仁教授研發(fā)的SVM分類與回歸的軟件包,其高效易用性得到了廣泛認(rèn)可[16].

      本文通過虛擬機(jī)搭建的8個(gè)節(jié)點(diǎn)的Spark集群來驗(yàn)證SPGAPSO-SVM算法性能,每個(gè)節(jié)點(diǎn)CPU數(shù)量為1,節(jié)點(diǎn)內(nèi)存為1G.集群詳細(xì)配置為:CentOS-6.10-x64,Spark-2.1.1-bin-hadoop2.7,hadoop-2.7.2.tar,pyspark-2.3.2,py4j-0.10.8.1,libSVM-3.2.3.SPGAPSO-SVM算法的參數(shù)設(shè)置如表2所示.

      4.2 數(shù)據(jù)預(yù)處理

      本文收集廣州市19路公交車2018年1月-6月6個(gè)月(20180101-20180631)的IC卡交易數(shù)據(jù)作為所用的實(shí)驗(yàn)數(shù)據(jù). 廣州市19路的運(yùn)行時(shí)間為06時(shí)-22時(shí)30分, 故本文只對該時(shí)間段預(yù)測.原始數(shù)據(jù)共有10個(gè)字段,包括交易時(shí)間、線路名稱、卡片ID等信息.

      表2 SPGAPSO-SVM算法參數(shù)設(shè)置Table 2 Parameters setting of SPPSO

      為了提高數(shù)據(jù)挖掘的質(zhì)量,需要利用Spark對數(shù)據(jù)進(jìn)行預(yù)處理[17].首先通過rdd:[(str,str)] = rdd1.zip(rdd2)將數(shù)據(jù)整合為key-value的RDD,其中key為線路編號,value為交易時(shí)間;然后通過rdd= filter(lambda keyValue:str(keyValue[0])== Line_name)將客流量信息根據(jù)線路編號分組.在節(jié)假日期間,城市公交客流量相較平日有明顯不同,以旅游、購物為目的的出行將明顯增多.因此,需通過rdd= filter(lambda keyValue:lp<= keyValue[1] <= up)將節(jié)假日的數(shù)據(jù)去掉以提高預(yù)測的準(zhǔn)確率.由于SVM對零一之間的數(shù)據(jù)較為敏感,訓(xùn)練速度較快,故對數(shù)據(jù)進(jìn)行歸一化處理[18].常用的基于極值歸一化公式如公式(14)所示.

      (14)

      其中X為原始數(shù)據(jù),Xmax、Xmin分別為原始數(shù)據(jù)集的最大值和最小值.

      使用libSVM作為SVM的實(shí)現(xiàn)工具,還需要將進(jìn)行篩選過的數(shù)據(jù)整理為libSVM的輸入格式.libSVM的輸入格式如下.

      Label index 1:value index2:value index3:value

      對于客流量預(yù)測,Label應(yīng)為目標(biāo)值,index是以1開始的整數(shù),value為訓(xùn)練數(shù)據(jù).

      4.3 實(shí)驗(yàn)結(jié)果分析

      4.3.1 算法準(zhǔn)確率和效率

      算法準(zhǔn)確率采用平均絕對百分誤差(MAPE)和均方誤差(MSE)評價(jià),算法效率是指算法執(zhí)行速度的快慢,使用算法程序運(yùn)行消耗的時(shí)間衡量.

      在上述實(shí)驗(yàn)環(huán)境下,采用Python語言對SVM、PSO-SVM、GA-SVM和SPGAPSO-SVM算法進(jìn)行了實(shí)現(xiàn),并將這4種算法運(yùn)行效果進(jìn)行對比,以此驗(yàn)證算法的準(zhǔn)確率和效率.采用4.2中經(jīng)過預(yù)處理的數(shù)據(jù),將每個(gè)算法分別運(yùn)行20次,計(jì)算并記錄其中MAPE的最優(yōu)值、最差值和平均值.運(yùn)行結(jié)果如表3和圖3所示.

      表3 算法的準(zhǔn)確率對比Table 3 Accuracy comparison of algorithms

      圖3 算法的運(yùn)行時(shí)間對比Fig.3 Running time comparison of algorithms

      由表3可以看出,針對客流量預(yù)測問題,傳統(tǒng)SVM算法預(yù)測準(zhǔn)確率穩(wěn)定在79%;PSO-SVM的最差值與最優(yōu)值相差接近4%,這表明PSO-SVM陷入局部最優(yōu)的概率很高且非常不穩(wěn)定;GA-SVM的表現(xiàn)優(yōu)于PSO-SVM,平均準(zhǔn)確率為85.5%左右;SPGAPSO-SVM算法相比PSO-SVM和GA-SVM準(zhǔn)確率更好,并且平均最優(yōu)值與最差值相差更小證明了其尋優(yōu)穩(wěn)定性更佳,整體預(yù)測準(zhǔn)確率可以達(dá)到86.71%.實(shí)驗(yàn)結(jié)果表明本文提出的SPGAPSO-SVM算法在客流量預(yù)測的準(zhǔn)確性上優(yōu)于其他方法.

      對于GA和PSO來說,種群的大小決定了整體算法的計(jì)算量.由圖3可以看出,在計(jì)算量小的情況下,SPGAPSO-SVM算法運(yùn)行所用時(shí)間最長.這是因?yàn)樯暾堎Y源、啟動(dòng)作業(yè)、劃分任務(wù)等基礎(chǔ)消耗時(shí)間大于每個(gè)節(jié)點(diǎn)任務(wù)的計(jì)算時(shí)間.隨著計(jì)算量的增加,3個(gè)算法的運(yùn)行時(shí)間呈近線性增加,并行計(jì)算的優(yōu)勢越來越明顯,SPGAPSO-SVM算法運(yùn)行所用時(shí)間將遠(yuǎn)遠(yuǎn)少于GA-SVM和PSO-SVM.實(shí)驗(yàn)結(jié)果驗(yàn)證了本文提出的SPGAPSO-SVM算法比GA-SVM和PSO-SVM運(yùn)行速度更快,算法運(yùn)行所用時(shí)間更短,計(jì)算效率更高.

      本文利用Python語言實(shí)現(xiàn)了RBF神經(jīng)網(wǎng)絡(luò)和LSTM作為典型機(jī)器學(xué)習(xí)算法與本文提出的算法進(jìn)行對比.其中LSTM的學(xué)習(xí)率為0.01、timestep為32、batchsize為5,RBF神經(jīng)網(wǎng)絡(luò)的參數(shù)通過網(wǎng)格搜索確定,計(jì)算結(jié)果如表4所示.

      表4 SPGAPSO-SVM與典型機(jī)器學(xué)習(xí)算法對比Table 4 Comparison between SPGAPSO-SVM and othertypical machine learning algorithms

      由表4可知,本文提出的SPGAPSO-SVM算法的預(yù)測效果優(yōu)于RBF神經(jīng)網(wǎng)絡(luò)和LSTM.

      4.3.2 收斂曲線對比實(shí)驗(yàn)

      收斂曲線對比實(shí)驗(yàn)使用均方誤差(MSE)作為評價(jià)指標(biāo),用于觀察SPGAPSO-SVM算法在每次迭代中SPGA操作和SPPSO操作的誤差變化和參數(shù)尋優(yōu)的整體收斂速度,從而驗(yàn)證混合算法的是否跳出了局部最優(yōu).在8個(gè)節(jié)點(diǎn)的集群中運(yùn)行SPGAPSO-SVM算法,其中種群大小為100,最大迭代次數(shù)為50,記錄每次迭代的MSE.運(yùn)行結(jié)果如圖4所示.

      圖4 SPGA操作和SPPSO操作的收斂曲線Fig.4 Convergence curve of SPGA and SPPSO

      從圖4可以看出,算法在20代以前收斂速度較快,算法在20代以后收斂速度逐漸變慢.在迭代開始階段,SPGA操作幫助整體算法跳出了局部最優(yōu).在第5次迭代時(shí),SPGA操作陷入了局部最優(yōu),而SPPSO操作幫助整體算法跳出了局部最優(yōu);在第42次迭代時(shí),SPGA操作再次幫助整體算法跳出局部最優(yōu);至此參數(shù)尋優(yōu)算法在最大迭代次數(shù)的限制下收斂至全局最優(yōu)解.實(shí)驗(yàn)結(jié)果驗(yàn)證了SPGAPSO-SVM算法與GA-SVM、PSO-SVM等單一算法優(yōu)化SVM相比具有兩個(gè)優(yōu)點(diǎn):SPGAPSO-SVM算法可以有效克服GA-SVM、PSO-SVM等單一算法優(yōu)化SVM易陷入局部最優(yōu)的問題,預(yù)測的準(zhǔn)確率更高;在最小適應(yīng)度相同的情況下,SPGAPSO-SVM算法比GA-SVM、PSO-SVM等單一算法優(yōu)化SVM所需的迭代次數(shù)更少.

      4.3.3 算法可擴(kuò)展性驗(yàn)證

      算法可擴(kuò)展性實(shí)驗(yàn)用于測試是否可以通過增加節(jié)點(diǎn)來提高算法運(yùn)行速度.實(shí)驗(yàn)基于單個(gè)節(jié)點(diǎn)、2個(gè)節(jié)點(diǎn)、4個(gè)節(jié)點(diǎn)和8個(gè)節(jié)點(diǎn),采用4.2中經(jīng)過預(yù)處理的數(shù)據(jù),將SPGAPSO-SVM算法運(yùn)行20次,計(jì)算并記錄平均值和加速比.運(yùn)行結(jié)果如圖5和圖6所示.

      圖5 SPGAPSO-SVM算法可擴(kuò)展性實(shí)驗(yàn)Fig.5 Experiments on scalability of SPGAPSO-SVM

      由圖5可以看出,隨著計(jì)算量逐步增加運(yùn)行時(shí)間呈線性增長.當(dāng)種群大小為100時(shí),單個(gè)節(jié)點(diǎn)、2個(gè)節(jié)點(diǎn)、4個(gè)節(jié)點(diǎn)和8個(gè)節(jié)點(diǎn)差別較小.這是因?yàn)槎喙?jié)點(diǎn)集群運(yùn)行程序時(shí),需要申請資源、啟動(dòng)作業(yè)、劃分任務(wù)和分配資源等操作,存在一定的基礎(chǔ)消耗.隨著計(jì)算量的增大,8個(gè)節(jié)點(diǎn)的運(yùn)行時(shí)間將遠(yuǎn)遠(yuǎn)低于4個(gè)節(jié)點(diǎn)、2個(gè)節(jié)點(diǎn)和單個(gè)節(jié)點(diǎn).這是因?yàn)楣?jié)點(diǎn)數(shù)越多,每個(gè)計(jì)算節(jié)點(diǎn)負(fù)責(zé)處理的計(jì)算量就越小.

      加速比是同一個(gè)任務(wù)串行運(yùn)行時(shí)間和并行運(yùn)行時(shí)間的比值,是衡量可擴(kuò)展性的一個(gè)重要指標(biāo).由圖6可以看出,在計(jì)算量小的情況下,加速效果不明顯,這是因?yàn)榧夯A(chǔ)消耗的時(shí)間較多,集群未發(fā)揮到理想的效果.隨著計(jì)算量的逐步增加,加速比呈增長趨勢并逐漸趨于理想值.通過上述實(shí)驗(yàn)結(jié)果分析,進(jìn)一步說明了SPGAPSO-SVM算法具有較好的可擴(kuò)展性.

      圖6 SPGAPSO-SVM算法加速比實(shí)驗(yàn)Fig.6 Speedup experiment of SPGAPSO-SVM

      4.3.4 客流量預(yù)測結(jié)果

      使用4.2中經(jīng)過預(yù)處理的數(shù)據(jù)作為實(shí)驗(yàn)數(shù)據(jù),采用SPGAPSO-SVM算法對數(shù)據(jù)集最后14天(20180617-20180630)06時(shí)-22時(shí)的公交客流量進(jìn)行預(yù)測,共224小時(shí).將每小時(shí)的預(yù)測結(jié)果按時(shí)間順序拼接,預(yù)測結(jié)果與真實(shí)值對比如圖7所示.

      圖7 客流量預(yù)測值與實(shí)際值對比Fig.7 Comparisons between predicted passenger flow and real passenger flow

      通過圖7可以看出,SPGAPSO-SVM算法對高峰期客流量預(yù)測有較高的準(zhǔn)確率,對低谷期客流量預(yù)測存在一定偏差.當(dāng)次整體預(yù)測準(zhǔn)確率為86.71%,當(dāng)次參數(shù)尋優(yōu)后最優(yōu)為0.68,最優(yōu)為15.4873.

      5 結(jié) 論

      本文在對公交客流量預(yù)測領(lǐng)域相關(guān)研究成果進(jìn)行深入分析研究的基礎(chǔ)上,針對GAPSO-SVM算法復(fù)雜度較高和運(yùn)行速度過慢的問題,對GAPSO-SVM算法基于Spark平臺進(jìn)行了并行化處理,提出SPGAPSO-SVM算法,該算法有效提高了運(yùn)行速度和效率.選取2018年廣州市19路公交車6個(gè)月的IC卡交易數(shù)據(jù)作為實(shí)驗(yàn)數(shù)據(jù),并根據(jù)實(shí)際需求對該數(shù)據(jù)集進(jìn)行了預(yù)處理,設(shè)計(jì)GAPSO-SVM算法耗時(shí)分析、SPGAPSO-SVM算法準(zhǔn)確率和效率、算法可擴(kuò)展性等多組實(shí)驗(yàn)對SPGAPSO-SVM算法進(jìn)行了驗(yàn)證.實(shí)驗(yàn)結(jié)果表明,SPGAPSO-SVM算法具有較高的預(yù)測準(zhǔn)確率、較快的運(yùn)行速度和良好的可擴(kuò)展性,預(yù)測效果由優(yōu)于RBF神經(jīng)網(wǎng)絡(luò)和LSTM等傳統(tǒng)機(jī)器學(xué)習(xí)算法.

      猜你喜歡
      客流量適應(yīng)度種群
      改進(jìn)的自適應(yīng)復(fù)制、交叉和突變遺傳算法
      山西省發(fā)現(xiàn)刺五加種群分布
      中華蜂種群急劇萎縮的生態(tài)人類學(xué)探討
      紅土地(2018年7期)2018-09-26 03:07:38
      基于嵌入式系統(tǒng)的商場客流量統(tǒng)計(jì)算法
      基于空調(diào)導(dǎo)風(fēng)板成型工藝的Kriging模型適應(yīng)度研究
      中國塑料(2016年11期)2016-04-16 05:26:02
      基于AFC數(shù)據(jù)的城軌站間客流量分布預(yù)測
      崗更湖鯉魚的種群特征
      從客流量推算公交出行PA矩陣的方法
      少數(shù)民族大學(xué)生文化適應(yīng)度調(diào)查
      新建旅游項(xiàng)目客流量分析方法初探
      乐都县| 潮州市| 南澳县| 光泽县| 宝应县| 巧家县| 郑州市| 衡水市| 和平区| 靖州| 息烽县| 日喀则市| 镶黄旗| 三穗县| 杭州市| 德阳市| 宜君县| 泗阳县| 合肥市| 澳门| 陇南市| 滦南县| 拉孜县| 锦屏县| 武宣县| 合山市| 深水埗区| 左云县| 当阳市| 鹰潭市| 淳安县| 永昌县| 邵阳市| 秀山| 二手房| 临洮县| 宜兴市| 西乌| 长治县| 盐源县| 莱西市|