❶ 車聯網數據分析(一):用戶出行行為分析
「數據 - 數字時代的石油」
「數據是新的石油」
在網路上、媒體上我們經常看到有人這樣宣揚。
問題是: 我們能夠像提煉石油一樣從數據中提煉出價值來嗎?
筆者多年從事汽車及出行領域的信息技術(IT)及產品研發,在這里就車聯網數據分析的一些實踐做個分享,看看能夠從這些數據「石油」中提煉點什麼,拋磚引玉。
下面的分析是針對單個車輛的車聯網數據進行分析,而不是群體車輛的行為分析。
筆者計劃從下面幾個方面進行探討(具體的會根據實際情況和各方面的反饋來調整):
- 用戶出行行為分析
- 用戶駕駛行為分析
- 燃油車車輛動態行為分析
- 電動車電池及充放電行為分析
- 能耗分析
本篇分享一下用戶出行行為的分析過程。
先看看車聯網數據到底有多大,各家OEM和後裝解決方案的數據採集信號、採集頻率都不同,也沒有行業統一標准。這里舉一個例子,讓大家粗略感受一下。
- 假設數據採集頻率為1 Hz(所有信號每秒采樣1次),家用汽車平均每天使用2個小時(燃油車引擎啟動就開始採集數據),一年就採集了365 * 2 * 3600 = 2.628 * 106次。
- 如果每次採集的數據量為10 KB,那麼,一輛車一年就產生大約26.3 GB 的數據。
- 一年一百萬輛裝備有車聯網的車將會產生26.3 GB * 106= 26.3 PB。(2018年中國有6家OEM年銷量過百萬)。
- 豐田、大眾、雷諾日產2018年全球銷量均超過1000萬。假設這幾家OEM在未來數年內銷量均保持這一水平,並且從今年開始實現100%新車車聯網,每輛車平均壽命6年,那麼6年後這些OEM存量車聯網的車就是6000萬,每家OEM每年將新增數據:26.3 GB * 60,000,000 = 1578 PB = 1.578 EB/年.
這么大的數據量,採集、傳輸、存儲,如果以現在的技術和市場價格,成本是十分驚人的。所以,筆者大膽猜測,大多數OEM和物流公司在實際運營中都會降低采樣頻率,或者減少採樣信號,或者以事件驅動,而不是以固定頻率采樣數據,以節省成本,盡管,技術上沒有問題。
對上述目標的分析,筆者使用的車聯網數據集來自於一輛車聯網實驗性乘用轎車。數據源本身就是脫敏的,去除了位置信息、用戶信息、車輛等靜態信息,只有車輛的動態數據。時間跨度為:2017年6月至8月。
采樣頻率高於1Hz,也就是平均每秒鍾采樣不止一次。原則上,采樣頻率越高越好,這樣保留了高頻信息,可以更加深刻地分析車輛的動態行為。
這幾年熱得一塌糊塗的無人駕駛,主要感測器的采樣頻率都不低於10 Hz。為什麼采樣頻率要求這么高呢?比如,在高速公路上以120公里/小時的時速行駛,那麼每秒鍾行駛的距離是:120000/3600 = 33.3 米/秒。也就是說,在0.1秒的時間里(對應10 Hz),車輛已經行駛了3.33 米,這個距離足以將車輛駛離車道並釀成事故。
有了原始車聯網數據(通常以CSV文件格式保存),筆者要對它進行預處理,為後續的數據探索、可視化,以及模型分析准備原料。
筆者使用的工具全程都是 R語言。
如何處理?要不忘初心、牢記使命:本部分數據分析的目的是 – 用戶出行行為分析 。
基於該目的,我們所需要的數據項其實很少,只需要下面三項數據就可以了(是不是太簡單了點?是的,就是這么簡單。就像,都是小麥,光面條就可以做出很多種,更不要說各種麵包,還有數不清的 mpling了):
- 時間戳– 每條記錄發生的日期和時間
- 里程錶
- 引擎轉速– 判斷車輛狀態
如果有明確的、可靠的信號用於判斷車輛狀態,那麼不建議使用「引擎轉速」了。筆者認為這完全取決於實際的數據質量和內容。如果各位大神有更好的解決方案,歡迎分享和交流哦。
把其他的數據項暫時擯棄,只保留這三項,現在可以進行下一步了。
如果上述數據中,不同信號的採集頻率不一樣,那麼,合並(或者叫融合,信號之間的融合)數據是非常重要的一步。合並可以發生在清洗、整理、聚合中間,或之前、之後的某個時間,具體要根據實際數據的情況來決定,很難一概而論。
首先了解選擇的數據集的summary信息,可以快速知道哪些欄位有數據缺失,有多少缺失。如果有缺失值,需要分析這些數據對我們的分析目的會有什麼影響。如果沒有什麼影響,就刪掉它們。
其次,時間戳是以字元串的形式存儲的,包括日期和時間,筆者用的數據集精確到毫秒。這樣不利於後續的計算和分析。需要把它轉化成便於計算和分析的數據。毫秒的精度對我們分析用戶出行行為來說沒有意義,所以,由時間戳生成年、月、日、時、分、秒,這樣,後續可以按照這些時間尺度進行聚合。
最後,按秒對數據進行聚合。選擇的數據集高於1Hz的采樣頻率,但是實際原始數據往往不會100%嚴格按照相同的采樣頻率生成數據,有時1秒內有多條記錄,有時會有缺失,看起來不是完全連續的。如果是車速等數據,聚合時採用平均值。里程數據是個累計值,所以取每秒內的最後一個數值,為了計算簡單,都用平均值也可以,因為1秒內里程數據很難有大的變化。
經過這些步驟後,數據就規整了很多,可以進行下一步了。
將數據分割成一個個單獨的駕駛行程,這樣可以方便後面的出行行為分析了。
如何判斷一個駕駛行程的開始和結束呢?
對於燃油車,一般來說,發動機啟動後,才開始採集車聯網數據,所以,沒有數據就可以假定為車子是熄火的。這里用的數據就是燃油車的數據。
對於純電動車(BEV),充電的全過程都會採集數據。
對於插電混動(PHEV)車,判斷的依據要更加復雜一些,這個問題以後再討論。
需要注意的是,真實數據通常不可能是理想的,每一步都要仔細檢查,如果有疑問,或者不合理,找出那些引起可疑的數據,仔細分析原因,再根據發現的原因進行調整。這是一個不斷試驗、不斷迭代的過程。
完成技術上的分割後,需要合並、過濾,得到相對合理的「有意義的」駕駛行程,在這個示例中,筆者得到了142次駕駛行程。也就是說,從2017年6月至8月的時間里,開了142次車。
處理完這些之後,我們就可以下鍋做菜了,看看能不能做出點有意思的東東來吧。
分析的過程通常是由淺入深、由全局到局部。
如果數據足夠多,建議先從大的時間尺度開始,比如從年開始,到月、日、小時,再到單個駕駛行程。最後,看看這些駕駛行程之間的關系,行程和各個時間維度之間的關系。一步步深挖。
首先,對整個數據集要有一個總體的認識,這個可以通過統計下面表格中的指標來完成。列出來的指標只是用於示例,具體需要統計哪些值應該根據分析的目的、業務場景、實際的原始數據集等。還是那句話:具體情況,具體分析。
其次,我們看一看該用戶每月駕駛(出行)的頻次,和旅行的總里程(公里數)。如圖1所示,7月份開車的次數和行駛總里程最多,差不多是6月和8月的兩倍。
從每月開車的次數來看,7月份開了70次左右,6月份半個月就有接近40次,而8月份僅有34次開車記錄。那我們很想知道 8 月份的開車次數為什麼減少了那麼多呢?
統計一下每天駕駛的次數,如圖2所示。結果有些讓人意外,6月份從14日至24日(11天),7月份從10至29日(共18天,中間缺了2天),8月份從5至12日,27至31日(總共13天),其他的日期沒有車聯網數據。接近一半的日期里沒有車聯網數據。
是什麼原因導致的呢?是那些天用戶完全沒有開車嗎?還是由於某種原因,數據沒有傳輸上來呢?
回答這個問題並不難。
我們還是從查看原始數據著手,里程錶是不斷遞增的。比對最後一條記錄的里程錶和第一條記錄的里程錶數據得知,兩者的差值是5646公里。回想前面表格里統計的「總駕駛里程」為2666公里,這說明在那些缺失數據的日期里,車輛仍然駕駛了接近3000 公里。
這也提醒分析人員,如果再對這批數據按月份進行分析,已經失去了意義。
因為這批原始數據來自於一輛車聯網實驗性的乘用轎車,我們不能要求太高。但是對我們實踐我們的研究方法依然有效。
再前進一步,從日期的角度看看用戶駕駛/出行的特徵。如圖3所示,共統計了三個指標的分布:
1. 左上– 每天駕駛次數的分布,中值是3次,最多有7次。說明該用戶開車比較頻繁。
2. 右上– 每天行駛距離的分布,中值是63公里左右,最多一天行駛261公里。
3. 左下和右下兩張圖– 每天駕駛時長的分布,中值在90分鍾處,說明該用戶每天大約開車一個半小時。用頻率圖從另一個角度可以看到駕駛時長的分布特徵。
在實際工作的時候,分析人員根據實際情況選擇該用什麼樣的圖表來更好地展現。
現在分析 單次駕駛的行為特徵 。先從最簡單的統計特徵,單次駕駛距離和駕駛時長,入手。如圖4所示,
- 該用戶開車的距離多數在10公里以內,或者在30-50公里范圍內。
- 每次開車多數分布在5-15分鍾內,或者在30-60分鍾內。
無論是距離還是時間長度都有兩個峰值,是不是有某種背後的原因? 又一次把筆者的胃口吊起來了。
下面我們看一看單次駕駛距離的散點圖,如圖5所示,每一次駕駛的距離在圖中表示為一個小圓點,從6月14日開始的第一次駕駛到8月31日記錄的第142次駕駛,總共142個點。
根據前面的距離分布圖(圖4)得到的啟示,我們從下圖中可以觀察到幾個特徵:
1. 有一個超過200公里的行程,鶴立雞群。其餘的都沒有超過100公里的。
2. 在15公里以下有很多點行駛距離十分接近。
3. 在30-50公里也有很多點的行駛距離十分接近。
我們似乎找到了前述疑問的答案,但是咱們既然是做數據分析,就要顯得更加「科學」和「客觀」,讓數據來說話,而不是憑肉眼觀察和猜測,否則,怎麼顯示出分析師的「逼格」來呢?
如何讓數據說話呢? 聚類分析 是個好的工具,尤其是這里只有一個變數,K均值的方法就可以了,簡單易行。
一開始,我們並不能確切地知道(假裝不知道,這樣才能「客觀」)該分成幾個聚類簇,一個做法是:從K = 1 到n(n 的取值要足夠大,以保證最佳簇個數不大於n)都做一次聚類分析,然後比較各個K值下的 Betweens/TSS (簇之間的總平方和 / 總離差平方和),該比值越大,聚類效果越好。一般來說,K值越大,該比值也會越大。極端的情況是,比如,有100個點,分成100個聚類簇,這樣當然沒有意義。所以這里需要一個主觀判斷,通常在比值差不多的情況下,應該選擇最小的K值作為最佳聚類簇。
在這個例子中,我取n = 10,因為直覺告訴我,最多3或4個聚類簇就夠了,在此基礎上放寬一到兩倍作為n的取值應該足夠了。
直覺會告訴我們可能有幾個聚類,但是不要完全相信直覺(否則,就不「客觀」了),還是應該讓數據說話。
這里多啰嗦幾句:在做數據分析的時候,直覺很重要,但是筆者建議更多地應該把直覺當成線索、孕育新的想法,就像是偵探破案一樣。如果有一些小夥伴一起探索、探討就更好了,可以時不時地問問:「元芳,你怎麼看?」。
好了,把K從1到10循環做聚類分析,將這10個K值對應的Betweens/TSS顯示在圖上,如圖6所示。可以清楚地看到,K = 3 和 K = 4 時,結果非常接近,但是比 K = 2 時顯著改善,所以,筆者選定 K = 3 作為最佳聚類簇。
按照K = 3做聚類分析,重新繪制圖5:單次駕駛的距離– 散點圖,同時用不同的顏色區別聚類簇,如圖7所示。
從圖中,可以清晰地看出簇1(紅色)只有一個點,就是那個單次駕駛距離最大的那個點,超過200公里,再一次鮮艷地鶴立雞群。
既然簇1(紅色)只有一個點,明顯是一個特例,就不再深挖了(真相是挖不下去了)。
下面對簇2和簇3分別作進一步的分析。
對簇2(綠色)的駕駛次數,分別按照一天24小時、星期、單次駕駛距離,和單次駕駛時長,作頻率分布圖,如圖8所示。從圖中可以觀察到下面幾個特點:
1. 大部分駕駛行為發生在下午至晚上,以下午3點至5點最多。
2. 周日至周六都有,但是以周二最少。 又是一個線索,不是嗎? 值得進一步深挖。限於篇幅,就不再贅述了(累了,歇歇吧)。
3. 駕駛距離大部分不超過10公里。
4. 開車時間大部分不超過20分鍾。
好像是一個生活比較有規律的人啊。
同樣,對簇3(藍色)也做同樣的分析,如圖9所示,仔細觀察這些分布圖,可以發現下面幾個特點:
1. 駕駛的時間十分有規律,大部分發生在早上10 - 11點,和晚上7 - 9點。
2. 周一至周5特別顯著,周日完全沒有。
3. 駕駛距離大部分出現在30 - 36公里之間。
4. 開車時間大約在30 - 60分鍾之間。
從這些特徵不難推測,簇3反映的是工作日上下班的駕駛行為。而家裡到公司的距離大約30多公里,單程需要開車30分鍾至1小時。交通狀況還是不錯的哦。
平均來看,上班時間大約早上10點,下班時間晚上8點。是不是和某一類熟悉的人群的特徵比較吻合啊?有一種似曾相識的感覺。
結合簇2的特徵,工作之餘,主要在方圓10公里的范圍內活動。簇1告訴我們,3個月內僅有一次遠門。哈哈,形象更加豐滿啦!
一不小心又自嗨了,初當程序員時的毛病,這么多年還是沒有完全改掉。別忘了,這3個月里還有一半的日子沒有數據呢。
至此,要演示的用戶出行行為的分析告一段落了。筆者用到的數據僅有三項:
- 時間戳
- 里程錶
- 引擎轉速(僅用於推算車輛狀態)。
如果輔之以更多的、「相關的」數據欄位,我們可以做更加深入的、多個角度的分析。
在這個過程中,如何提出問題、從數據中發現線索、不放棄任何一個疑點,然後像個偵探一樣,一步一步地挖掘。坦率地說,這個感覺真的不錯。
後續,筆者還會就車聯網數據在其他方面的分析,進一步分享,敬請期待!
❷ 大數據和雲計算,在汽車自動駕駛技術里的作用是什麼
數據和雲計算,在汽車自動駕駛技術里的作用是什麼?可以基於路況、車輛性能、駕駛員操作習慣等因素,提供節能減排、降低駕駛疲勞的駕駛方案。自動駕駛藉助汽車上的激光感測器和GPS,車輛通過相對先進的演算法進行自我定位。
在道路上行駛是一個處理大量數據並做出決策的過程,而自動駕駛汽車則使用各種感測器來「觀察」道路。這個過程也會產生大量的數據,平均1.5小時左右的駕駛時間會產生4TB的數據。在車輛方面,顯然不適合處理和儲存如此巨大的工作量。所以最好的辦法就是使用雲計算和雲存儲來支持自動駕駛汽車。
❸ 交通事故大數據分析 哪些道路最危險,哪些時候易發生事故
12月2日是第九個122「全國交通安全日」,今年的主題是「知危險會避險安全文明出行」。省公安廳交通管理局對2020年前三季度全省道路交通事故進行了數據分析,請廣大駕駛人從事故中吸取教訓。
加大宣傳引導力度,提醒佩戴頭盔,減少事故傷亡
(一)什麼時間容易發生交通事故:下午和前半夜的14-22時事故起數和死亡人數分別占總數的44.3%和41.3%,呈高位運行狀態。其中,18至19時發生事故最多,19至20時死亡人數最多。
(二)什麼道路上交通事故較多:在前三季度全省交通事故總數和死亡人數中,高速公路占總數1.45%、5.59%;國道占總數的9.3%、13.7%;省道占總數的16.6%、23.7%;城市區道路佔35.1%、20.1%;農村地區道路(含縣、鄉和其他道路)占總數的37.6%、36.8%。農村地區事故情況同比去年有所下降,但事故佔比仍為前三季度事故總量最高。
(三)哪些違法行為最易引發交通事故:駕駛車輛操作不規范妨礙安全的行為、未按規定讓行、無證駕駛、酒後駕駛、逆行、超速行駛、違反交通信號是引發我省道路交通事故的主要原因。上述七項主要違法行為引發的事故和導致的死亡人數,分別占總數的72.9%、73.6%。其中,駕駛車輛操作不規范妨礙安全的行為占事故總數最大,占總數的31.2%、未按規定讓行占總數的14.8%、酒後駕駛(含醉酒)占總數的6.8%、無證駕駛占總數的6.4%、逆行占總數的5.2%、超速行駛占總數的4.5%、違反交通信號占總數的4.1%。
(四)什麼樣的交通事故後果最嚴重:高速公路單起事故死亡率最高,是全省平均數的3.84倍。超速行駛致人死亡率最高,是全省平均數的1.85倍
(五)哪個駕齡段的駕駛人最易發生交通事故:6至10年駕齡駕駛人引發事故起數和死亡人數佔比最大,其次是11至15年駕齡駕駛人、3年以下駕齡駕駛人。20年以上駕齡駕駛人最少。
(六)什麼的車型發生交通事故最多:小型客車肇事起數和死亡人數佔比最高。私用車輛事故起數和死亡人數佔比最大,發生事故數量和死亡人數分別占總數的80.2%、64.68%。其次是駕駛重型貨車、駕駛電動自行車、駕駛摩托車。重型貨車單起事故死亡率最高。
(七)哪些道路今年發生交通事故多,需要避險繞行:京滬高速青縣段159公里至178公里處、長深高速唐山西外環950公里至969公里處、大廣高速威縣段1683公里至1702公里處、國道京環線霸州境內58公里至67公里處、國道京廣線任丘縣境內151公里至160公里處、國道岐銀線滄縣境內61公里至70公里處、國道青石線寧晉境內595公里至604公里,國道京環線高碑店境內97公里至106公里、省道保滄線高陽境內54公里至63公里、省道晉州連接線8公里至17公里。
當前,交通安全形勢十分嚴峻,隨著冬季惡劣天氣的到來,也將進入全年事故多發高發期。今年「全國交通安全日」的主題是「知危險會避險」,意在提醒所有交通參與者,主動了解不同的出行方式可能面臨的安全風險,科學掌握防範事故的知識和技能,善於自我防護,有效規避危險。
本文來源於汽車之家車家號作者,不代表汽車之家的觀點立場。