亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

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

        2020-12-11 01:49:58李雷孝
        小型微型計算機系統(tǒng) 2020年11期
        關(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)勢.為了保障城市公交高效有序的運營,不僅需要良好的公交運營管理方案,有效的運營調(diào)度同樣必不可少.利用公交相關(guān)信息數(shù)據(jù)進行準確公交客流量預(yù)測可以為城市公交車的運營調(diào)度提供有效的決策支持.

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

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

        2 SVM算法優(yōu)化

        2.1 支持向量機

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

        ωTxi+b=0

        (1)

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

        (2)

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

        (3)

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

        (4)

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

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

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

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

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

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

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

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

        (5)

        x=xi-vi

        (6)

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

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

        單一智能算法優(yōu)化SVM在解決復(fù)雜問題時存在許多不足,利用算法之間互補性的混合算法成為近年來的研究熱點.啟發(fā)式算法的混合大體上可分為3類:串行式混合,嵌入式混合,并行式混合.本文根據(jù)文獻[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ā)式算法,二者均具有智能性和隨機性.并且GA和PSO都有種群、適應(yīng)度函數(shù)、更新操作、迭代操作等概念,可以共用一個種群,且均具有并行性.GA比PSO種群更多樣,搜索更全面;PSO比GA算法思想更簡單,收斂更快速.將GA和PSO結(jié)合成GAPSO-SVM算法,兩者的異同點使得兩種算法在性能上可以克服局限性,實現(xiàn)互補[9,10].

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

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

        P={gbest,Cbest}

        (7)

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

        (8)

        (9)

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

        (10)

        其中g(shù)min和gmax為RBF核參數(shù)g的變化范圍,Cmin和Cmin為懲罰參數(shù)的C變化范圍.最后判斷所得結(jié)果是否滿足終止條件.當滿足終止條件時,終止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ù)據(jù)切分為訓(xùn)練集和測試集.對初始種群分別進行GA操作和PSO操作,如果當次迭代GA適應(yīng)度優(yōu)于PSO適應(yīng)度,則將GA的最優(yōu)個體保存下來用到下一次迭代中.當二者的最小值小于最小的適應(yīng)度或迭代次數(shù)超過了最大迭代次數(shù),則終止迭代,返回最優(yōu)C、最優(yōu)g作為SVM運行參數(shù).

        2.4.2 GAPSO-SVM算法耗時分析

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

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

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

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

        3 SPGAPSO-SVM算法的提出

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

        3.1 Spark平臺

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

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

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

        (12)

        3.2.1 SPGA操作

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

        (13)

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

        算法1.SPGA

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

        lenchrom:染色體長度

        bound:染色體取值范圍

        sizepop:種群規(guī)模

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

        pcross:交叉概率

        pmutation:變異概率

        輸出:newChrom:迭代后種群

        bestFitness:最優(yōu)個體適應(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ù),并隨機初始化個體位置和速度.將種群轉(zhuǎn)化為RDD,再通過map(getFitness())并行計算種群內(nèi)個體的適應(yīng)度.SPPSO中適應(yīng)度函數(shù)與SPGA中適應(yīng)度函數(shù)相同,這樣便于比較兩種算法產(chǎn)生的解集種群.通過collect()合并所有個體適應(yīng)度.以當前種群為基礎(chǔ),據(jù)公式(5)、公式(6)更新個體位置和速度,隨后比較出個體最優(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ū)個數(shù)

        Vmax:粒子最大速度

        Vmin:粒子最小速度

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

        輸出:newPop:迭代后種群

        bestFitness:最優(yōu)個體適應(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)實驗與結(jié)果分析

        4.1 實驗環(huán)境

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

        本文通過虛擬機搭建的8個節(jié)點的Spark集群來驗證SPGAPSO-SVM算法性能,每個節(jié)點CPU數(shù)量為1,節(jié)點內(nèi)存為1G.集群詳細配置為: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個月(20180101-20180631)的IC卡交易數(shù)據(jù)作為所用的實驗數(shù)據(jù). 廣州市19路的運行時間為06時-22時30分, 故本文只對該時間段預(yù)測.原始數(shù)據(jù)共有10個字段,包括交易時間、線路名稱、卡片ID等信息.

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

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

        (14)

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

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

        Label index 1:value index2:value index3:value

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

        4.3 實驗結(jié)果分析

        4.3.1 算法準確率和效率

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

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

        表3 算法的準確率對比Table 3 Accuracy comparison of algorithms

        圖3 算法的運行時間對比Fig.3 Running time comparison of algorithms

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

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

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

        表4 SPGAPSO-SVM與典型機器學(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 收斂曲線對比實驗

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

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

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

        4.3.3 算法可擴展性驗證

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

        圖5 SPGAPSO-SVM算法可擴展性實驗Fig.5 Experiments on scalability of SPGAPSO-SVM

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

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

        圖6 SPGAPSO-SVM算法加速比實驗Fig.6 Speedup experiment of SPGAPSO-SVM

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

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

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

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

        5 結(jié) 論

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

        猜你喜歡
        客流量適應(yīng)度種群
        邢氏水蕨成功繁衍并建立種群 等
        改進的自適應(yīng)復(fù)制、交叉和突變遺傳算法
        計算機仿真(2022年8期)2022-09-28 09:53:02
        山西省發(fā)現(xiàn)刺五加種群分布
        基于嵌入式系統(tǒng)的商場客流量統(tǒng)計算法
        基于空調(diào)導(dǎo)風板成型工藝的Kriging模型適應(yīng)度研究
        中國塑料(2016年11期)2016-04-16 05:26:02
        基于AFC數(shù)據(jù)的城軌站間客流量分布預(yù)測
        崗更湖鯉魚的種群特征
        從客流量推算公交出行PA矩陣的方法
        少數(shù)民族大學(xué)生文化適應(yīng)度調(diào)查
        新建旅游項目客流量分析方法初探
        国产成人久久精品一区二区三区| 色婷婷精品国产一区二区三区| 国产自拍精品在线视频| 一区二区三区国产免费视频| 日本中文字幕一区二区高清在线| 久久99精品综合国产女同| 日韩av无码中文字幕| 日韩亚洲av无码一区二区三区| 欧美日韩亚洲国产千人斩| 亚洲av精品一区二区三| 亚洲综合自拍偷拍一区| 国产精品成人aaaaa网站| 久久香蕉国产精品一区二区三| 国产一区二区精品网站看黄| 亚洲第一区二区精品三区在线 | 欧美zozo另类人禽交| 色婷婷一区二区三区久久亚洲 | 青青草手机视频免费在线播放| 国产三级视频不卡在线观看| 东北少妇不戴套对白第一次| 亚洲综合在线一区二区三区| 欧美在线视频免费观看| 国产免费视频一区二区| 免费av网站大全亚洲一区| 痉挛高潮喷水av无码免费| 啪啪无码人妻丰满熟妇| 久久丁香花综合狼人| 成人久久精品人妻一区二区三区| 亚洲国产一区二区三区在线观看| 久久久久久国产精品无码超碰动画| 麻豆精产国品| 夫妻一起自拍内射小视频| 看女人毛茸茸下面视频| 色老板精品视频在线观看| 国产免费久久精品99re丫y| 亚洲av高清一区三区三区| 午夜dy888国产精品影院| 无码av免费精品一区二区三区 | 欧美精品AⅤ在线视频| 国产精品一品二区三区| 又紧又大又爽精品一区二区|