本發(fā)明涉及交通大數(shù)據(jù)分析,特別涉及一種基于catboost的公交下車(chē)站點(diǎn)識(shí)別方法和系統(tǒng)。
背景技術(shù):
1、當(dāng)前,新能源汽車(chē)技術(shù)的快速發(fā)展使得購(gòu)車(chē)門(mén)檻顯著降低,城市中小汽車(chē)出行比例快速增長(zhǎng),公共交通吸引力顯著下降,導(dǎo)致城市交通擁堵加劇。為了緩解這一問(wèn)題,需要思考如何提升公共交通吸引力。利用技術(shù)手段分析公共交通大數(shù)據(jù),找出公交運(yùn)營(yíng)中需要優(yōu)化的問(wèn)題,如公交時(shí)刻表、公交線(xiàn)路等,從而優(yōu)化公共交通服務(wù)。近年來(lái),城市交通大數(shù)據(jù)技術(shù)不斷發(fā)展,公交刷卡數(shù)據(jù)成為客觀反映公共交通現(xiàn)狀的重要數(shù)據(jù)之一。但是,目前我國(guó)絕大多數(shù)城市公共交通采用“一票制”制度,即乘客只需在上車(chē)時(shí)刷卡,而在下車(chē)時(shí)無(wú)需進(jìn)行刷卡操作,導(dǎo)致采集到的ic卡信息中缺乏乘客的下車(chē)站點(diǎn)以及相關(guān)時(shí)間信息。而乘客的上下車(chē)信息是構(gòu)建公共交通出行者出行鏈的關(guān)鍵部分,也是掌握公交od的基本條件,因此有必要進(jìn)行公共交通乘客上下車(chē)站點(diǎn)及下車(chē)時(shí)間的準(zhǔn)確識(shí)別。目前,行業(yè)中的普遍技術(shù)方法為,通過(guò)開(kāi)發(fā)各種算法識(shí)別公交下車(chē)站點(diǎn)數(shù)據(jù),分析出當(dāng)前公共交通運(yùn)行特征,從而提出更優(yōu)的政策措施。
2、如何根據(jù)有限的數(shù)據(jù)有效地識(shí)別公交乘客的下車(chē)站點(diǎn)是近年來(lái)公共交通研究領(lǐng)域的熱點(diǎn)之一。有部分研究人員提出,根據(jù)當(dāng)前已有的公交車(chē)gps數(shù)據(jù)與公交ic卡刷卡數(shù)據(jù)結(jié)合,以時(shí)間信息和空間信息為判斷依據(jù),形成出行鏈,然后根據(jù)出行鏈判斷公交下車(chē)站點(diǎn)。比如,申請(qǐng)日為2023.02.24,申請(qǐng)?zhí)枮閏n202211424041的中國(guó)發(fā)明專(zhuān)利公開(kāi)了一種公交個(gè)體出行決策模型;申請(qǐng)日2019.02.19,申請(qǐng)?zhí)枮閏n201910123126.0的中國(guó)發(fā)明專(zhuān)利公開(kāi)了多源數(shù)據(jù)挖掘的公交車(chē)上下車(chē)站點(diǎn)識(shí)別和檢驗(yàn)方法;申請(qǐng)日為2020.12.29,申請(qǐng)?zhí)枮閏n202011593440.4的中國(guó)發(fā)明專(zhuān)利公開(kāi)了一種對(duì)出行鏈斷鏈時(shí)公交ic卡乘客進(jìn)行下車(chē)站點(diǎn)識(shí)別的方法。然而,出行鏈方法存在一個(gè)明顯的局限性:由于出行鏈算法只能根據(jù)有固定通勤出行的數(shù)據(jù)形成出行鏈,因此能使用該算法形成出行鏈的數(shù)據(jù)僅占所有數(shù)據(jù)的少部分,數(shù)據(jù)利用率較低,導(dǎo)致該算法不具有普適性,不能有效提供數(shù)據(jù)支撐。
3、另外一部分研究人員則建立機(jī)器學(xué)習(xí)模型用于訓(xùn)練識(shí)別公交乘客下車(chē)站點(diǎn),普遍采用xgboost和隨機(jī)森林模型。比如,申請(qǐng)日為2023.06.30,申請(qǐng)?zhí)枮閏n202310789299的中國(guó)發(fā)明專(zhuān)利公開(kāi)了一種基于出行鏈與集成學(xué)習(xí)的公交乘客下車(chē)站點(diǎn)推斷方法。該類(lèi)模型通常采用少量數(shù)據(jù)進(jìn)行訓(xùn)練和擬合,然后識(shí)別下車(chē)站點(diǎn)信息。然而,該類(lèi)模型在處理大規(guī)模多分類(lèi)問(wèn)題時(shí),效率和特征處理方面存在諸多不足,算法計(jì)算成本高、效率低。例如,xgboost和隨機(jī)森林模型對(duì)數(shù)據(jù)的兼容性不足,需要進(jìn)行大量的數(shù)據(jù)預(yù)處理以適配模型訓(xùn)練;在處理大量數(shù)據(jù)的情況下,需要更多的硬件資源,并且缺失模型保存的能力,在模型訓(xùn)練時(shí)容易出現(xiàn)錯(cuò)誤從而花費(fèi)更多時(shí)間在模型的訓(xùn)練上。
技術(shù)實(shí)現(xiàn)思路
1、本發(fā)明針對(duì)現(xiàn)有技術(shù)的缺陷,提供了一種基于catboost的公交下車(chē)站點(diǎn)識(shí)別方法和系統(tǒng)。以實(shí)現(xiàn)對(duì)大規(guī)模多源公交數(shù)據(jù)的高效處理。同時(shí),為了使catboost方法更適配公交下車(chē)站點(diǎn)識(shí)別場(chǎng)景,本發(fā)明提出通過(guò)分離不同公交線(xiàn)路數(shù)據(jù)來(lái)降低模型學(xué)習(xí)難度,從而提高模型識(shí)別的準(zhǔn)確性和可信性。
2、本發(fā)明解決的技術(shù)問(wèn)題是:解決結(jié)合時(shí)間和空間算法中不能成功識(shí)別公交下車(chē)站點(diǎn)的問(wèn)題;同時(shí)采用簡(jiǎn)單的數(shù)據(jù)處理方式,利用基于python的catboost機(jī)器學(xué)習(xí)框架對(duì)下車(chē)站點(diǎn)數(shù)據(jù)進(jìn)行識(shí)別;通過(guò)分離不同公交線(xiàn)路數(shù)據(jù)來(lái)降低機(jī)器學(xué)習(xí)模型學(xué)習(xí)難度,提高模型識(shí)別的準(zhǔn)確性和可信性。
3、為了實(shí)現(xiàn)以上發(fā)明目的,本發(fā)明采取的技術(shù)方案如下:
4、一種基于catboost的公交下車(chē)站點(diǎn)識(shí)別方法,包括以下步驟:
5、步驟s1,收集公交車(chē)站數(shù)據(jù)和公交車(chē)gps數(shù)據(jù)。融合公交車(chē)gps數(shù)據(jù)和ic卡刷卡數(shù)據(jù),通過(guò)出行鏈算法得到初步公交上下車(chē)站數(shù)據(jù);
6、步驟s2,對(duì)公交ic刷卡數(shù)據(jù)進(jìn)行特征工程,通過(guò)分解原始公交上下車(chē)站點(diǎn)數(shù)據(jù)的時(shí)間列特征,標(biāo)識(shí)工作日與節(jié)假日;
7、步驟s3,對(duì)公交ic刷卡數(shù)據(jù)進(jìn)行預(yù)處理,整合公交上下車(chē)站點(diǎn)數(shù)據(jù)結(jié)構(gòu),并將數(shù)據(jù)轉(zhuǎn)換為特征與標(biāo)簽的形式,其中下車(chē)站點(diǎn)作為輸入集的標(biāo)簽值;
8、步驟s4,搭建公交下車(chē)站點(diǎn)識(shí)別catboost模型,基于python語(yǔ)言進(jìn)行模型搭建,設(shè)置模型訓(xùn)練參數(shù)如損失函數(shù)和評(píng)價(jià)指標(biāo);
9、步驟s5,進(jìn)行公交下車(chē)站點(diǎn)識(shí)別catboost模型的訓(xùn)練、測(cè)試及保存,將數(shù)據(jù)按照模型所需結(jié)構(gòu)分為訓(xùn)練集和測(cè)試集,并輸入至模型中,通過(guò)調(diào)整模型參數(shù)進(jìn)行訓(xùn)練和測(cè)試;
10、步驟s6,使用步驟s5中保存的公交下車(chē)站點(diǎn)識(shí)別catboost模型進(jìn)行下車(chē)站點(diǎn)的預(yù)測(cè)。
11、進(jìn)一步地,所述步驟s1中,所述收集和預(yù)處理公交上下車(chē)站數(shù)據(jù)具體包括如下步驟:
12、步驟101、收集當(dāng)?shù)毓还舅峁┑膇c刷卡數(shù)據(jù)以及公交車(chē)輛的時(shí)空數(shù)據(jù),整理數(shù)據(jù)集,挖掘數(shù)據(jù)中相關(guān)列特征;
13、步驟102、根據(jù)公交車(chē)車(chē)輛時(shí)空數(shù)據(jù)、公交公司ic刷卡數(shù)據(jù)和車(chē)輛站點(diǎn)信息數(shù)據(jù),利用以下公式計(jì)算時(shí)間間隔:
14、δt=|tboarding-tarrival
15、其中tboarding表示乘客刷卡的時(shí)間,tarrive表示車(chē)輛到站的時(shí)間,時(shí)間間隔為δt;
16、步驟103、遍歷所有刷卡數(shù)據(jù)。根據(jù)步驟102中的公式進(jìn)行判斷,若δt≤30s則視為當(dāng)前刷卡記錄的上車(chē)站點(diǎn)為該路公交的??空军c(diǎn),反之則不是,并且進(jìn)行下一條刷卡數(shù)據(jù)判斷,若某條刷卡記錄與所有公交gps數(shù)據(jù)不能滿(mǎn)足步驟102中的條件,則視為“無(wú)效數(shù)據(jù)”;
17、步驟104、整理所有包含上車(chē)站點(diǎn)的刷卡數(shù)據(jù),采用出行鏈法捕捉ic卡刷卡數(shù)據(jù)的出行特征與換乘特征,補(bǔ)全出行鏈,獲取部分?jǐn)?shù)據(jù)的下車(chē)站點(diǎn)信息。
18、進(jìn)一步地,所述步驟s2中,特征工程還包括從刷卡數(shù)據(jù)中提取乘客上下車(chē)的地理位置信息,提取乘客上下車(chē)時(shí)相關(guān)的天氣信息。
19、進(jìn)一步地,所述步驟s4中,在所述步驟s4中,將下車(chē)站點(diǎn)識(shí)別問(wèn)題看作機(jī)器學(xué)習(xí)中的多分類(lèi)問(wèn)題,采用以下多分類(lèi)損失函數(shù):
20、
21、式中ωi是第i個(gè)下車(chē)站點(diǎn)的權(quán)重,n代表樣本總數(shù),m代表下車(chē)站點(diǎn)名的總數(shù),ai是對(duì)第i個(gè)下車(chē)站點(diǎn)應(yīng)用模型的結(jié)果。
22、進(jìn)一步地,所述步驟s4中,選用準(zhǔn)確率作為catboost模型的評(píng)價(jià)指標(biāo),如下式所示:
23、
24、其中ωi是第i個(gè)下車(chē)站點(diǎn)的權(quán)重,n代表樣本總數(shù),m代表下車(chē)站點(diǎn)的總數(shù),ai是對(duì)第i個(gè)下車(chē)站點(diǎn)應(yīng)用模型的結(jié)果。
25、進(jìn)一步地,所述步驟s4中,catboost模型自動(dòng)對(duì)字符串類(lèi)型的分類(lèi)特征進(jìn)行編碼,具體的編碼方式如下:
26、
27、其中t表示將類(lèi)別特征轉(zhuǎn)換為數(shù)值結(jié)果的值,n指當(dāng)前上車(chē)站點(diǎn)中是該公交線(xiàn)路名的數(shù)量,p為個(gè)人設(shè)置參數(shù)值,a指當(dāng)前上車(chē)站點(diǎn)占所有樣本中的數(shù)量。
28、進(jìn)一步地,所述步驟s3中,公交刷卡數(shù)據(jù)預(yù)處理具體包括如下步驟:
29、步驟501、提取包含下車(chē)站點(diǎn)的刷卡數(shù)據(jù),并將數(shù)據(jù)按線(xiàn)路名稱(chēng)分割出每條線(xiàn)路的數(shù)據(jù)表,最后的輸入數(shù)據(jù)集為dj={(xi,yi)}i=1,2,k,n其中j為公交線(xiàn)路名,x代表特征數(shù)據(jù),y代表下車(chē)站點(diǎn);
30、步驟502、對(duì)每條線(xiàn)路的數(shù)據(jù)建立下車(chē)站點(diǎn)識(shí)別模型,具體的目標(biāo)函數(shù)為:
31、oj=fj(dj)
32、oj指j線(xiàn)路模型的預(yù)測(cè)結(jié)果,即下車(chē)站點(diǎn)名集合oj={(yi)}i=1,2,k,n,fj這是j線(xiàn)路用于識(shí)別公交車(chē)下車(chē)站點(diǎn)的機(jī)器學(xué)習(xí)模型,dj指j線(xiàn)路輸入數(shù)據(jù)集。
33、進(jìn)一步地,所述catboost模型的目標(biāo)函數(shù)基于梯度提升決策樹(shù),具體形式如式下所示:
34、
35、其中y是真實(shí)值,是預(yù)測(cè)值,l是損失函數(shù),ω(f)是正則化項(xiàng)。
36、所述catboost模型采用梯度提升算法來(lái)構(gòu)建決策樹(shù)。梯度提升的具體形式如下式:
37、fm(x)=fm-1(x)+γmhm(x)
38、其中fm(x)是第m棵樹(shù)的預(yù)測(cè)值,fm-1(x)是前m-1棵樹(shù)的累積預(yù)測(cè)值,γm是學(xué)習(xí)率,hm(x)是第m棵樹(shù)的預(yù)測(cè)函數(shù)。
39、所述catboost模型包含了l2正則化項(xiàng)來(lái)防止模型過(guò)擬合,具體公式如下:
40、
41、其中,λ是正則化參數(shù),k是樹(shù)的葉子節(jié)點(diǎn)數(shù),ωk是第k個(gè)葉子節(jié)點(diǎn)的權(quán)重。
42、進(jìn)一步地,提取步驟s1中未能得到下車(chē)站點(diǎn)的刷卡數(shù)據(jù),以步驟s2相同的方式處理數(shù)據(jù)特征,并使用步驟s5中保存的模型進(jìn)行下車(chē)站點(diǎn)的預(yù)測(cè)。
43、本發(fā)明公開(kāi)了一種基于catboost的公交下車(chē)站點(diǎn)識(shí)別系統(tǒng),該系統(tǒng)能夠用于實(shí)施上述的公交下車(chē)站點(diǎn)識(shí)別方法,具體的,包括:
44、數(shù)據(jù)收集模塊:負(fù)責(zé)收集和存儲(chǔ)公交車(chē)站數(shù)據(jù)、公交車(chē)gps數(shù)據(jù)和ic卡刷卡數(shù)據(jù)。輸入包括公交車(chē)站點(diǎn)數(shù)據(jù)(如站點(diǎn)名稱(chēng)、位置等)、公交車(chē)的實(shí)時(shí)gps數(shù)據(jù)和ic卡刷卡數(shù)據(jù)(如刷卡時(shí)間、線(xiàn)路信息等)。
45、數(shù)據(jù)融合模塊:將公交車(chē)gps數(shù)據(jù)與ic卡刷卡數(shù)據(jù)進(jìn)行融合,結(jié)合出行鏈算法初步識(shí)別公交上下車(chē)站點(diǎn)數(shù)據(jù),并生成初步的上下車(chē)站點(diǎn)數(shù)據(jù)集。
46、特征工程模塊:對(duì)融合后的ic刷卡數(shù)據(jù)進(jìn)行特征工程處理,通過(guò)分解原始上下車(chē)站點(diǎn)數(shù)據(jù)的時(shí)間列特征,標(biāo)識(shí)工作日與節(jié)假日,提取其他特征,包括:地理位置特征和外部天氣數(shù)據(jù)。
47、數(shù)據(jù)預(yù)處理模塊:整合和規(guī)范化公交上下車(chē)站點(diǎn)數(shù)據(jù),將數(shù)據(jù)轉(zhuǎn)換為模型訓(xùn)練所需的特征與標(biāo)簽形式,其中下車(chē)站點(diǎn)作為輸入集的標(biāo)簽值,為模型訓(xùn)練提供結(jié)構(gòu)化的數(shù)據(jù)。
48、模型搭建模塊:基于python語(yǔ)言搭建公交下車(chē)站點(diǎn)識(shí)別的catboost模型,設(shè)置模型的訓(xùn)練參數(shù),包括損失函數(shù)、評(píng)價(jià)指標(biāo)和學(xué)習(xí)率,并準(zhǔn)備模型所需的訓(xùn)練數(shù)據(jù)和測(cè)試數(shù)據(jù)。
49、模型訓(xùn)練與測(cè)試模塊:將預(yù)處理后的數(shù)據(jù)分為訓(xùn)練集和測(cè)試集,輸入至catboost模型中進(jìn)行訓(xùn)練,模型通過(guò)調(diào)整參數(shù)以最小化損失函數(shù),并在測(cè)試集上進(jìn)行驗(yàn)證,確保模型的準(zhǔn)確性和穩(wěn)定性。
50、模型保存與加載模塊:訓(xùn)練完成后將catboost模型保存為文件,以便后續(xù)加載和使用。該模塊負(fù)責(zé)模型的持久化存儲(chǔ)和加載功能,以確保系統(tǒng)能夠?qū)π聰?shù)據(jù)進(jìn)行預(yù)測(cè)。
51、預(yù)測(cè)模塊:利用訓(xùn)練好的catboost模型對(duì)未能識(shí)別下車(chē)站點(diǎn)的刷卡數(shù)據(jù)進(jìn)行預(yù)測(cè),將新數(shù)據(jù)輸入模型,輸出預(yù)測(cè)的下車(chē)站點(diǎn)結(jié)果,補(bǔ)全未能識(shí)別的上下車(chē)數(shù)據(jù)。
52、本發(fā)明還公開(kāi)了一種計(jì)算機(jī)設(shè)備,包括存儲(chǔ)器、處理器及存儲(chǔ)在存儲(chǔ)器上并可在處理器上運(yùn)行的計(jì)算機(jī)程序,所述處理器執(zhí)行所述程序時(shí)實(shí)現(xiàn)上述公交下車(chē)站點(diǎn)識(shí)別。
53、本發(fā)明還公開(kāi)了一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其上存儲(chǔ)有計(jì)算機(jī)程序,該程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)上述公交下車(chē)站點(diǎn)識(shí)別。
54、與現(xiàn)有技術(shù)相比,本發(fā)明的優(yōu)點(diǎn)在于:
55、高效處理大規(guī)模公交數(shù)據(jù):本發(fā)明方法利用catboost算法,專(zhuān)為公交大數(shù)據(jù)場(chǎng)景優(yōu)化設(shè)計(jì),實(shí)現(xiàn)對(duì)大規(guī)模、多源公交數(shù)據(jù)的高效處理。這種高效性使得系統(tǒng)能夠處理大量的刷卡數(shù)據(jù)和gps數(shù)據(jù),提高數(shù)據(jù)處理的速度和能力。
56、提高識(shí)別準(zhǔn)確性和可信性:通過(guò)提出的分離不同公交線(xiàn)路的數(shù)據(jù)預(yù)處理方法,降低了模型的學(xué)習(xí)難度,從而提高了模型對(duì)下車(chē)站點(diǎn)的識(shí)別準(zhǔn)確性和可信性。這種方法能夠減少不同線(xiàn)路之間的混淆,提高模型在實(shí)際應(yīng)用中的表現(xiàn)。
57、解決下車(chē)站點(diǎn)識(shí)別中的技術(shù)難題:該方法針對(duì)結(jié)合時(shí)間和空間算法中無(wú)法成功識(shí)別公交下車(chē)站點(diǎn)的問(wèn)題,提供了一種新的解決方案。通過(guò)應(yīng)用基于python的catboost機(jī)器學(xué)習(xí)框架,簡(jiǎn)化了數(shù)據(jù)處理流程,增強(qiáng)了模型的識(shí)別能力。
58、提高模型的工作效率:分離不同公交線(xiàn)路數(shù)據(jù)的方法優(yōu)化了數(shù)據(jù)預(yù)處理過(guò)程,使模型能夠更專(zhuān)注于特定線(xiàn)路的數(shù)據(jù),提升了整體工作效率和模型的響應(yīng)速度。
59、增強(qiáng)數(shù)據(jù)處理的簡(jiǎn)單性和可靠性:本發(fā)明采用簡(jiǎn)單的數(shù)據(jù)處理方式,減少了復(fù)雜的數(shù)據(jù)預(yù)處理步驟,使得系統(tǒng)在實(shí)際應(yīng)用中更加可靠,減少了數(shù)據(jù)處理和模型訓(xùn)練的復(fù)雜性。
60、優(yōu)化公交系統(tǒng)服務(wù)質(zhì)量:準(zhǔn)確的下車(chē)站點(diǎn)識(shí)別能夠幫助公交系統(tǒng)優(yōu)化線(xiàn)路規(guī)劃和調(diào)度,提高運(yùn)營(yíng)效率,改善乘客服務(wù)體驗(yàn)。