Python數(shù)據(jù)分析基礎與案例實戰(zhàn)PPT完整全套教學課件_第1頁
Python數(shù)據(jù)分析基礎與案例實戰(zhàn)PPT完整全套教學課件_第2頁
Python數(shù)據(jù)分析基礎與案例實戰(zhàn)PPT完整全套教學課件_第3頁
Python數(shù)據(jù)分析基礎與案例實戰(zhàn)PPT完整全套教學課件_第4頁
Python數(shù)據(jù)分析基礎與案例實戰(zhàn)PPT完整全套教學課件_第5頁
已閱讀5頁,還剩564頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

了解交通大數(shù)據(jù)第1章1.1了解交通大數(shù)據(jù).pptx第2章Python數(shù)據(jù)分析簡介.pptx第3章3.1了解常見的數(shù)據(jù)來源.pptx第3章3.2數(shù)據(jù)獲取.pptx第3章3.3了解數(shù)據(jù)的常見類型.pptx第3章3.4掌握數(shù)據(jù)的讀取方式.pptx第4章數(shù)據(jù)探索.pptx第5章數(shù)據(jù)預處理.pptx第6章6.1構建分類與回歸模型(1).pptx第6章6.1構建分類與回歸模型(2).pptx第6章6.2構建聚類模型.pptx第6章6.3構建時間序列模型.pptx第7章運輸車輛駕駛行為分析.pptx第8章公交車站點設置優(yōu)化分析.pptx第9章鐵路站點客流量預測.pptx第10章基于TipDM大數(shù)據(jù)挖掘建模平臺實現(xiàn)運輸車輛駕駛行為分析.pptx全套可編輯PPT課件1交通大數(shù)據(jù)的應用目錄交通大數(shù)據(jù)的背景2現(xiàn)如今,隨著大數(shù)據(jù)行業(yè)的蓬勃發(fā)展,大數(shù)據(jù)與人們的生活早已息息相關。日常生活中的衣食住行都會產(chǎn)生大量的數(shù)據(jù),這些數(shù)據(jù)看似雜亂無章卻在抽絲剝繭后可以發(fā)現(xiàn)其中的規(guī)律。如何在這些海量數(shù)據(jù)中挖掘到想要的結果,目前是一個非常熱門的研究方向。本章主要介紹交通大數(shù)據(jù)的背景與應用、數(shù)據(jù)分析的基本任務和基本流程、常用的數(shù)據(jù)分析工具以及如何配置Python開發(fā)環(huán)境。緒論隨著云時代的來臨,大數(shù)據(jù)也吸引了越來越多的關注。而交通大數(shù)據(jù)作為其下的分支自然備受關注。接下來簡單介紹交通大數(shù)據(jù)的背景以及應用。了解交通大數(shù)據(jù)隨著交通運輸服務行業(yè)的發(fā)展、城市規(guī)模的不斷擴大以及城市智能化進程的加快,大數(shù)據(jù)在交通運輸領域中的應用也成為了當下的熱點。大數(shù)據(jù)的應用使人們重新認識了交通需求以及交通運行的內在規(guī)律,同時也改變了交通運輸?shù)囊?guī)律。海量數(shù)據(jù)不僅能為企業(yè)帶來商業(yè)價值,也能為社會產(chǎn)生巨大的社會價值??茖W合理使用這些數(shù)據(jù)將使未來的生活產(chǎn)生極大的改變。交通大數(shù)據(jù)就是將所有與交通有關的數(shù)據(jù)信息整合到一起的數(shù)據(jù)鏈,交通行業(yè)是天然的大數(shù)據(jù)行業(yè),隨著交通領域技術發(fā)展及應用的推廣,每天產(chǎn)生的交通數(shù)據(jù)信息量能夠達到PB級別,并且呈幾何級別的增長。交通大數(shù)據(jù)的來源主要有:公路、鐵路及城市交通管理系統(tǒng)中的信息服務平臺、道路流量檢測、道路監(jiān)控、車牌識別、電子監(jiān)控、路上稱重、公交運營、長途客運售票、地鐵售票、鐵路售票、出租車調度、停車管理、公共自行車運營、公交一卡通統(tǒng)計等。交通大數(shù)據(jù)的背景大數(shù)據(jù)已經(jīng)滲透到每個行業(yè)和業(yè)務職能領域,并成為重要的生產(chǎn)要素。目前普遍認為大數(shù)據(jù)具有大量(Volume)、多樣(Variety)、高速(Velocity)、價值(Value)等特征,而交通大數(shù)據(jù)作為大數(shù)據(jù)的一種,自然也具備著同樣的特征。交通大數(shù)據(jù)的背景1.交通大數(shù)據(jù)具備的特點交通大數(shù)據(jù)的具體特征如表所示。交通大數(shù)據(jù)的背景特征概述大量(Volume)交通大數(shù)據(jù)所涉及的交通信息類型相當廣,而每種類型的衍生也特別多。如行人(乘車記錄,路線記錄)、車輛(車輛狀況記錄、攝像頭記錄)、道路(基礎設施記錄、車流量記錄)多樣(Variety)涉及面的廣大,決定了交通大數(shù)據(jù)形式的多樣性。比如行人出行相關的數(shù)據(jù),包括出行方式(字符類型)、出行時間(時間類型)、目的地所在(地理信息)等等。如果擴展到其他類型的交通信息,數(shù)據(jù)的多樣性會更強,每個區(qū)域、每段時間,交通信息都會存在各種各樣的數(shù)據(jù)。有結構化明顯的車輛基礎信息數(shù)據(jù),還有一些結構化不明顯數(shù)據(jù),如圖片、音頻、視頻等高速(Velocity)交通大數(shù)據(jù)具有高速性。交通運行狀態(tài)、交通服務對象、交通運載工具,每時每刻都在產(chǎn)生大量的數(shù)據(jù),同時這些數(shù)據(jù)也需要進行快速處理、分析和挖掘,并及時給出反饋信息價值(Value)交通大數(shù)據(jù)中隱藏著巨大價值,但是價值的密度較低,往往需要對龐大的數(shù)據(jù)進行挖掘分析處理,才能獲得需要的信息機遇往往伴隨著挑戰(zhàn),隨著智能交通技術的發(fā)展及應用的推廣和深入,智能交通大數(shù)據(jù)發(fā)展同樣面對著巨大挑戰(zhàn),如表所示。交通大數(shù)據(jù)的背景2.交通大數(shù)據(jù)面臨的挑戰(zhàn)挑戰(zhàn)概述數(shù)據(jù)采集的質量由于資金缺乏、信息化建設速度慢、缺乏統(tǒng)一數(shù)據(jù)采集標準、缺乏各部門之間的協(xié)作機制等問題,導致數(shù)據(jù)采集的質量受到很大的影響數(shù)據(jù)儲存壓力交通大數(shù)據(jù)最突出的特點是“龐大”,采集到的數(shù)據(jù)規(guī)模龐大、類型多,有結構化、半結構化和非結構化(語音、視頻等)的數(shù)據(jù),但數(shù)據(jù)存儲技術的發(fā)展速度落后于交通大數(shù)據(jù)的更新速度和應用需求數(shù)據(jù)共享利用由于交通大數(shù)據(jù)分散在不同單位和政府部門等,彼此孤立,所以很難實現(xiàn)數(shù)據(jù)共享,就連交通部門內部的數(shù)據(jù)共享也是困難重重數(shù)據(jù)的分析處理由于交通大數(shù)據(jù)數(shù)量規(guī)模龐大、價值密度很低、對時效性處理要求很高等,所以需要根據(jù)不同的應用需求,建立不同的數(shù)據(jù)分析模型,實現(xiàn)對數(shù)據(jù)的有效深入分析數(shù)據(jù)應用智能交通大數(shù)據(jù)應用群體多,如普通出行者、交通規(guī)劃與管理部門、咨詢機構等,如何開發(fā)個性化的智能交通大數(shù)據(jù)應用系統(tǒng),以滿足不同用戶群體,也是未來交通大數(shù)據(jù)發(fā)展與應用中面臨的挑戰(zhàn)交通使用者是交通系統(tǒng)的服務對象,主要包括行人、乘客、駕駛員以及企業(yè)等。對于交通使用者而言,其主要關心的是通往目的地的道路交通狀態(tài)信息,如路況信息、擁擠與事件信息、交通管制信息等,并據(jù)此做出合理的出行計劃。交通大數(shù)據(jù)的背景3.交通大數(shù)據(jù)服務的對象用戶對基礎交通信息的需求如表所示。交通大數(shù)據(jù)的背景用戶主體對交通信息的需求駕駛員車輛的誘導信息,如出行前需要了解路網(wǎng)與當前交通狀況信息,選擇最佳出行路線;行駛過程中需要了解動態(tài)交通信息,包括事故、施工、阻塞等,以便調整路線形式;遇到事故時能夠得到及時救援;提供停車信息等乘客了解到達目的地的各種交通手段、路線、時間、途中的各種服務特種車輛駕駛員提供優(yōu)先通行策略和行駛過程中的誘導信息、安全警告信息和調度信息車輛所有者車輛收費、管理信息,應通過車輛信息與自動定位、收費裝置完成采集;車輛被盜后應當能夠盡快通過先進的通信手段報警;當車輛在非運行狀態(tài)下發(fā)生意外損壞時,通過車輛自動報警裝置發(fā)出警報行人、非機動車騎行者、摩托車駕駛員通過先進的信號系統(tǒng),在彎道、路口、狹窄街道等視野受限制區(qū)域,能感知行駛車輛的存在;在上述區(qū)域能感知行駛車輛的速度、轉向和變更路線等行駛狀態(tài)或意向;在用戶途中遭遇疾病、盜匪等意外危險事件時,能發(fā)送緊急求救信號并通告所在位置交通管理部門通過監(jiān)控系統(tǒng)實時地對路網(wǎng)進行監(jiān)控;對施工、阻塞以及發(fā)生交通事故,應自動確定地點及路段和車輛,并自動調度警力前往事故地點進行事故處理;為了能夠保證緊急車輛快速、順利到達事發(fā)地點,提供如路網(wǎng)、路況信息、緊急事件相關信息,并將道路狀況及時通過信息系統(tǒng)發(fā)布公安機關通過先進的通信手段或監(jiān)控系統(tǒng)在第一時間獲得車輛被盜、駕駛員人身安全受到威脅等信息,運用定位技術自動確定出事地點,自動地調度警力進行處理。對公共運輸設施、停車場、警車內安全(包括警車、公安人員和犯罪嫌疑人)進行監(jiān)視、監(jiān)測,利用通信與感測技術,通過顯示和預警裝置向公安人員提供足夠的交通信息,幫助其做出最合適的決策用戶對基礎交通信息的需求如表所示。(接上表)交通大數(shù)據(jù)的背景用戶主體對交通信息的需求汽車運輸公司通過監(jiān)控系統(tǒng)了解車輛的運營和客流狀況,及時根據(jù)客流變化調整調度;遇到車輛故障及其他緊急事件應發(fā)出報警信號并迅速采取相應措施;當進行危險品運輸時,提供通告、監(jiān)控、路線引導等特殊的安全服務基礎設施(包括道路、換乘樞紐等)建設與管理部門提供基礎設施的位置信息,運用先進的通信和監(jiān)控手段,對可能造成基礎設施破壞的危險品運輸,提供自動檢測、通告、路線引導等服務,以保障基礎設施的安全;通過監(jiān)控系統(tǒng)實時監(jiān)控換乘樞紐的運轉狀況;對安全隱患發(fā)出警告信號;一旦出現(xiàn)緊急情況,自動報警并自動引導乘客通過緊急通道進行疏散換乘者提供最佳換乘路線,遇有緊急情況應當能夠發(fā)出緊急救援信號;并提供路線引導服務,通過緊急通道迅速撤離消防部門通過先進的通信手段接收消防救援信號,自動定位,引導消防車在第一時間到達火災地點急救中心通過先進的通信手段接收醫(yī)療緊急救援信號,通過緊急救援系統(tǒng)中的自動定位,迅速派出救護車進行緊急醫(yī)療救護交通控制指揮中心(緊急事件管理中心)通過監(jiān)控系統(tǒng)對路網(wǎng)進行實時監(jiān)控;自動檢測緊急事件;通過先進的通信手段接收緊急救援信號,自動確定救援地點,并發(fā)送救援指令迅速組織救援車輛維修公司通過先進的通信手段接收車輛故障信息,自動定位,并迅速提供維修服務1交通大數(shù)據(jù)的應用目錄交通大數(shù)據(jù)的背景2人們在日常出行時經(jīng)常會碰見各種交通相關的問題,如交通堵塞、找不到公交車站點的位置、不清楚列車的發(fā)車間隔,有效運用交通大數(shù)據(jù)可以很好地解決上述問題。例如,各大地圖導航,將歷史數(shù)據(jù)、實時數(shù)據(jù)、道路情況進行分析,預測從當前地點到達目的地的時間,給用戶提供多種不同組合的選擇,并推薦時間最短的組合。通過對用戶的引導,極大地緩解了交通壓力。常見的交通大數(shù)據(jù)的應用場景如下。交通大數(shù)據(jù)的應用交通大數(shù)據(jù)一個主要應用就是將路面采集數(shù)據(jù)、城市交通參與車輛的GPS數(shù)據(jù)與電子地圖定位導航數(shù)據(jù)進行多元融合和加工,生產(chǎn)出高準確率和高覆蓋率的實時路況信息。對于時效性要求較高的生鮮農(nóng)產(chǎn)品冷鏈物流配送,可利用配送管理信息系統(tǒng),通過交通大數(shù)據(jù)平臺獲取道路、實時路況等信息來管理和指揮在途車輛進行配送。同時客戶也可通過此平臺對車輛和貨物進行查詢并反饋信息。車輛將路況、位置等信息反饋給配送管理信息系統(tǒng)。與此同時,客戶、車輛甚至配送方的數(shù)據(jù)和信息也將通過冷鏈配送管理信息系統(tǒng)和交通大數(shù)據(jù)平臺被公共數(shù)據(jù)云收集。農(nóng)產(chǎn)品冷鏈物流互聯(lián)網(wǎng)租賃自行車可以深入城市角落,彌補其他出行方式的服務空白,其便捷的租還、支付方式和高分布密度等優(yōu)勢,提高了使用者的出行體驗和出行效率,受到廣大用戶的喜愛。然而自20世紀90年代以來,以機動車為導向的城市發(fā)展,逐漸擠壓自行車騎行與停放空間?;ヂ?lián)網(wǎng)租賃自行車的發(fā)展影響著居民的出行行為,也推動著城市規(guī)劃和管理者對城市空間和道路資源的重新認識。同時,互聯(lián)網(wǎng)租賃自行車出行產(chǎn)生的大量基于時間和位置的數(shù)據(jù)為描述和理解城市空間結構提供了新的途徑。因此,有必要通過對騎行大數(shù)據(jù)的時間和空間分析,揭示騎行需求規(guī)律,為城市相關規(guī)劃建設、行業(yè)管理部門和運營企業(yè)合作建立科學的投放與管理機制等提供技術支撐。自行車租賃伴隨著我國經(jīng)濟的飛速發(fā)展,汽車保有率不斷提高,隨之也涌現(xiàn)出了大量的環(huán)境問題、空間問題以及至關重要的安全問題。數(shù)量龐大的汽車和復雜的駕駛環(huán)境為人工智能的應用提供了海量數(shù)據(jù)。通過布置于車輛上的傳感器收集路面路況信息,利用算法挖掘出有效數(shù)據(jù),分析駕駛員的駕駛習慣,將其運用到自動駕駛之中可以實現(xiàn)安全高效的通行。汽車自動駕駛隨著中國城鎮(zhèn)化的快速發(fā)展,城市人口數(shù)量急劇增加,城市公共交通面臨著前所未有的壓力。城市公共交通具有大容量、低碳環(huán)保等優(yōu)勢,是緩解城市交通壓力,解決城市居民出行問題的最佳選擇。但傳統(tǒng)公交系統(tǒng)存在信息化、智能化水平較低,公交路線規(guī)劃不合理、服務水平較低等缺點,導致城市公交可達性較差,已難以滿足日益發(fā)展的城市出行需求。利用交通大數(shù)據(jù)優(yōu)化公交車站點的設置,提高了百姓的出行效率和乘車體驗,也提高了城市居民的幸福指數(shù)。公交車站點設置航空交通具有時效快的優(yōu)勢,對于長距離旅途而言有非常重要的意義,尤其是在目前的社會環(huán)境中,人們生活水平有了進一步的提升,這為航空公司規(guī)模的擴大提供了基礎。為了滿足當前的航空運輸需要,需要對企業(yè)的發(fā)展做升級和優(yōu)化。但是隨著高鐵、動車等鐵路運輸?shù)呐d建,航空公司同樣也受到巨大沖擊。民航的競爭除了中國3大航空公司之間的競爭之外,還將加入新崛起的各類小型航空公司、民營航空公司,甚至國外航空巨頭。航空產(chǎn)品生產(chǎn)過剩,產(chǎn)品同質化特征愈加明顯,于是航空公司從價格、服務間的競爭逐漸轉向對客戶的競爭。通過對航空公司客戶數(shù)據(jù)進行分析,可以挖掘出隱藏的高價值用戶。航空客戶近年來,高速鐵路以其快捷、準時、安全、環(huán)保的特點,在我國乃至世界范圍內高速發(fā)展。隨著我國高速鐵路的路網(wǎng)規(guī)模逐步擴大和運營里程的增加,鐵路旅客運輸能力得到逐步釋放,鐵路旅客運輸供不應求的局面得到緩解,鐵路運輸生產(chǎn)正逐步由粗放型向精細化轉換??土髯鳛殍F路運輸組織的基礎和關鍵因素,其分析工作是一個復雜的過程,如何對客流的分布特征及變化規(guī)律進行系統(tǒng)分析,掌握客流現(xiàn)狀與變化趨勢,對鐵路開行方案、營銷策略、客票銷售等都具有重要意義。鐵路運輸?shù)?章Python數(shù)據(jù)分析簡介10-8月-231Python使用入門目錄搭建Python開發(fā)平臺2Python數(shù)據(jù)分析工具3小結4Python是一門簡單易學且功能強大的編程語言。它擁有高效的高級數(shù)據(jù)結構,并且能夠用簡單而又高效的方式進行面向對象編程。Python優(yōu)雅的語法和動態(tài)類型,再結合它的解釋性,使其在大多數(shù)平臺的許多領域成為編寫腳本或開發(fā)應用程序的理想語言。要認識Python,首先得明確一點,Python是一門編程語言!這就意味著,至少原則上來說,它能夠完成Matlab能夠做的所有事情(因為大不了從頭開始編寫),而且大多數(shù)情況下,同樣功能的Python代碼會比Matlab代碼更加簡潔、易懂;而另一方面,因為它是一門編程語言,所以它能夠完成很多Matlab不能做的事情,比如開發(fā)網(wǎng)頁、開發(fā)游戲、編寫爬蟲來采集數(shù)據(jù)等。Python簡介Python的簡介Python以開發(fā)效率著稱,也就是說它致力于以最短的代碼完成同一個任務。Python通常為人詬病的是它的運行效率,而Python還被稱為“膠水語言”,它允許我們把耗時的核心部分用C/C++等更高效率的語言編寫,然后由它來“黏合”,這很大程度上已經(jīng)解決了Python的運行效率問題。事實上,在大多數(shù)數(shù)據(jù)任務上,Python的運行效率已經(jīng)可以媲美C/C++語言。Python簡介Python的簡介Python簡介TIOBE編程語言排行榜Python簡介編程語言的趨勢圖Python的官網(wǎng):/本書使用Python3.6版本,本書的代碼盡可能地同時兼容2.x和3.x,包括在各種第三方庫也使用兩個版本都兼容的擴展庫。Python是跨平臺的語言,因此腳本可以跨平臺運行,然而不同的平臺運行效率不一樣,一般來說Linux下的速度會比Windows快,而且是對于數(shù)據(jù)分析和挖掘任務。此外,在Linux下搭建Python環(huán)境相對來說容易一些,很多Linux發(fā)行版自帶了Python程序,并且在Linux下更容易解決第三方庫的依賴問題。當然,Linux的操作門檻較高,入門的讀者可以先在Windows熟悉,然后再考慮遷移到Linux下。搭建Python開發(fā)平臺Python版本及操作系統(tǒng)選擇在Windows下安裝Python比較容易,直接到官方網(wǎng)站下載相應的msi安裝包安裝即可,和一般軟件的安裝無異,在此不贅述。安裝包還分32位和64位版本,請讀者自行選擇適合的版本。大多數(shù)Linux發(fā)行版,如CentOs、Debian、Ubuntu等,都已經(jīng)自帶了Python2.x的主程序,但Python3.x版本的主程序需要自行另外安裝。安裝Python核心程序只是第一步,為了實現(xiàn)更豐富的科學計算功能,還需要安裝一些第三方的擴展庫,這對于一般的讀者來說可能顯得比較麻煩,尤其是在Windows下還可能出現(xiàn)各種錯誤。幸好,已經(jīng)有人專門將科學計算所需要的模塊都編譯好,然后打包以發(fā)行版的形式供用戶使用,Anaconda就是其中一個常用的科學計算發(fā)行版。搭建Python開發(fā)平臺Python的安裝Anaconda的特點:1、包含了眾多流行的科學、數(shù)學、工程、數(shù)據(jù)分析的Python包2、完全開源和免費3、額外的加速、優(yōu)化是收費的,但對于學術用途可以申請免費的License4、全平臺支持:Linux、Windows、Mac;支持Python2.6、2.7、3.3、3.4,可自由切換因此,推薦初級讀者(尤其是Windows下的讀者)安裝此Python發(fā)行版。讀者只需要到官方網(wǎng)站下載安裝包安裝:http://continuum.io/downloads搭建Python開發(fā)平臺Python的安裝搭建Python開發(fā)平臺Python啟動界面1Python使用入門目錄搭建Python開發(fā)平臺2Python數(shù)據(jù)分析工具3小結4運行方式運行Python代碼有兩種方式,一種方式是啟動Python,然后在命令窗口下直接輸入相應的命令;另外就是將完整的代碼寫成.py腳本,如hello.py,然后通過pythonhello.py執(zhí)行?;久罨具\算認識Python的第一步,是可以把它當作一個方便的計算器來看待。a=2a*2a**2以上是Python幾個基本的運算,第一個是賦值運算,第二是乘法,最后是一個是冪(即a2),這些基本上是所有編程語言通用的。不過Python支持多重賦值:a,b,c=2,3,4基本命令基本運算不過Python支持多重賦值:a,b,c=2,3,4這句命令相當于:a=2b=3c=4基本命令基本運算

Python支持對字符串的靈活操作:基本命令判斷與循環(huán)判斷和循環(huán)是所有編程語言的基本命令,Python的判斷語句如下:需要特別指出的是,Python一般不用花括號{},也沒有end語句,它是用縮進對齊作為語句的層次標記。同一層次的縮進量要一一對應,否則報錯。if條件1:

語句2elif條件3:

語句4else:

語句5基本命令判斷與循環(huán)

Python的循環(huán)也相應地有for循環(huán)和while循環(huán),如while循環(huán):

以及for循環(huán):s,k=0whilek<101:#該循環(huán)過程就是求1+2+3+...+100k=k+1s=s+kprintss=0forkinrange(101):#該循環(huán)過程也是求1+2+3+...+100s=s+kprints基本命令判斷與循環(huán)

in是一個非常方便、而且非常直觀的語法,用來判斷一個元素是否在列表/元組中,range用來生成連續(xù)的序列,一般語法為range(a,b,c),表示以a為首項、c為公差且不超過b-1的等差數(shù)列,如:s=0ifsinrange(4):printu's在0,1,2,3中'ifsnotinrange(1,4,1):printu's不在1,2,3中'基本命令函數(shù)

Python用def來自定義函數(shù):Python的函數(shù)返回值可以是各種形式,比如返回列表,甚至返回多個值:defadd2(x):returnx+2printadd2(1)#輸出結果為3defadd2(x=0,y=0):#定義函數(shù),同時定義參數(shù)的默認值return[x+2,y+2]#返回值是一個列表defadd3(x,y):returnx+3,y+3#雙重返回a,b=add3(1,2)#此時a=4,b=5基本命令函數(shù)

Python支持用lambda對簡單的功能定義“行內函數(shù)”,這有點像Matlab中的“匿名函數(shù)”:f=lambdax:x+2#定義函數(shù)f(x)=x+2g=lambdax,y:x+y#定義函數(shù)g(x,y)=x+y數(shù)據(jù)結構Python有四個內建的數(shù)據(jù)結構——List(列表)、Tuple(元組)、Dictionary(字典)以及Set(集合),它們可以統(tǒng)稱為容器(container),因為它們實際上是一些“東西”的組合而成的結構,而這些“東西”,可以是數(shù)字、字符甚至是列表,或者是它們之間幾種的組合。通俗地講,容器里邊是什么都行,而且容器里邊的元素類型不要求相同。數(shù)據(jù)結構列表/元組從外形上看,列表與元組的區(qū)別是,列表是用方括號標記的,如a=[1,2,3],而元組是用圓括號標記的,如b=(4,5,6),訪問列表和元組中的元素的方式都是一樣的,如a[0]等于1,b[2]等于6,等等。c=[1,'abc',[1,2]]'''c是一個列表,列表的第一個元素是整型1,第二個是字符串'abc',第三個是列表[1,2]'''數(shù)據(jù)結構列表/元組從功能上看,列表與元組不同的區(qū)別是,列表可以被修改,而元組不可以。比如,對于a=[1,2,3],那么語句a[0]=0,就會將列表a修改為[0,2,3],而對于元組b=(4,5,6),語句b[0]=1就會報錯。要注意的是,如果已經(jīng)有了一個列表a,同時想復制a,命名為變量b,那么b=a是無效的,這時候b僅僅是a的別名(或者說引用),修改b也會修改a的。正確的復制方法應該是b=a[:]。跟列表有關的函數(shù)是list,跟元組有關的函數(shù)是tuple,它們的用法和功能幾乎一樣,都是將某個對象轉換為列表/元組,如list('ab')的結果是['a','b'],tuple([1,2])的結果是(1,2)。數(shù)據(jù)結構列表/元組一些常見的與列表/元組相關的函數(shù):數(shù)據(jù)結構列表/元組作為對象來說,列表本身自帶了很多實用的方法:數(shù)據(jù)結構字典特別地,Python引入了“字典”這一方便的概念。從數(shù)學上來講,它實際上是一個映射。通俗來講,它也相當于一個列表,然而它的“下標”不再是以0開頭的數(shù)字,而是自己定義的“鍵”(Key)。創(chuàng)建一個字典的基本方法為:這里的'today'、'tomorrow'就是字典的鍵,它在整個字典中必須是唯一的,而20、30就是鍵對應的值。d={'today':20,'tomorrow':30}數(shù)據(jù)結構字典還有其他一些比較方便的方法來創(chuàng)建一個字典,如通過dict()函數(shù)轉換,或者通過dict.fromkeys來創(chuàng)建:dict([['today',20],['tomorrow',30]])#也相當于{'today':20,'tomorrow':30}dict.fromkeys(['today','tomorrow'],20)#相當于{'today':20,'tomorrow':20}數(shù)據(jù)結構集合Python內置了集合這一數(shù)據(jù)結構,跟數(shù)學上的集合概念基本上是一致的,它跟列表的區(qū)別在于:1、它的元素的不重復的,而且是無序的;2、它不支持索引。一般我們通過花括號{}或者set()函數(shù)來創(chuàng)建一個集合:s={1,2,2,3}#注意2會自動去重,得到{1,2,3}s=set([1,2,2,3])#同樣地,它將列表轉換為集合,得到{1,2,3}數(shù)據(jù)結構集合由于集合的特殊性(特別是無序性),因此集合有一些特別的運算:a=t|s#t和s的并集

b=t&s#t和s的交集

c=t–s#求差集(項在t中,但不在s中)

d=t^s#對稱差集(項在t或s中,但不會同時出現(xiàn)在二者中)數(shù)據(jù)結構函數(shù)式編程函數(shù)式編程(Functionalprogramming)或者函數(shù)程序設計,又稱泛函編程,是一種編程范型,它將計算機運算視為數(shù)學上的函數(shù)計算,并且避免使用程序狀態(tài)以及易變對象。簡單來講,函數(shù)式編程是一種“廣播式”的編程,一般來說結合前面提到過的lambda定義函數(shù),用于科學計算中,會顯得特別簡潔方便。在Python中,函數(shù)是編程主要有幾個函數(shù)的使用構成:lambda、map、reduce、filter,其中l(wèi)ambda前面已經(jīng)介紹過,主要用來自定義“行內函數(shù)”,所以現(xiàn)在我們逐一介紹后三個。數(shù)據(jù)結構函數(shù)式編程首先map函數(shù)。假設我們有一個列表a=[1,2,3],我要給列表中的每個元素都加2得到一個新列表,利用前面已經(jīng)談及過的“列表解析”,我們可以這樣寫:而利用map函數(shù)我們可以這樣寫:我們首先定義一個函數(shù),然后再用map命令將函數(shù)逐一應用到(map)列表中的每個元素,最后返回一個數(shù)組。b=[i+2foriina]b=map(lambdax:x+2,a)b=list(b)#結果是[3,4,5]數(shù)據(jù)結構函數(shù)式編程接著是reduce,它有點像map,但map用于逐一遍歷,而是reduce用于遞歸計算。先給出一個例子,這個例子可以算出n的階乘:其中range(1,n+1)相當于給出了一個列表,元素是1~n這n個整數(shù)。lambdax,y:x*y構造了一個二元函數(shù),返回兩個參數(shù)的乘積。reduce命令首先將列表的頭兩個元素作為函數(shù)的參數(shù)進行運算,然后將運算結果與第三個數(shù)字作為函數(shù)的參數(shù),然后再將運算結果與第四個數(shù)字作為函數(shù)的參數(shù)…依此遞推,直到列表結束,返回最終結果。reduce(lambdax,y:x*y,range(1,n+1))數(shù)據(jù)結構函數(shù)式編程最后是filter,顧名思義,它是一個過濾器,用來篩選出列表中符合條件的元素,如:使用filter首先需要一個返回值為bool型的函數(shù),如上述的lambdax:x>5andx<8定義了一個函數(shù),判斷x是否大于5且小于8,然后將這個函數(shù)作用到range(10)的每個元素中,如果為True,則“挑出”那個元素,最后將滿足條件的所有元素組成一個列表返回。b=filter(lambdax:x>5andx<8,range(10))b=list(b)#結果是[6,7]庫的導入與添加庫的導入Python本身內置了很多強大的庫,如數(shù)學相關的math庫,可以為我們提供更加豐富復雜的數(shù)學運算:導入庫的方法,除了直接“import庫名”之外,還可以為庫起一個別名:importmathmath.sin(1)#計算正弦math.exp(1)#計算指數(shù)math.pi#內置的圓周率常數(shù)importmathasmm.sin(1)#計算正弦?guī)斓膶肱c添加庫的導入此外,如果并不需要導入庫中的所有函數(shù),可以特別指定導入函數(shù)的名字:直接地導入庫中的所有函數(shù):frommathimportexpase#只導入math庫中的exp函數(shù),并起別名ee(1)#計算指數(shù)sin(1)#此時sin(1)和math.sin(1)都會出錯,因為沒被導入frommathimport*#直接的導入,也就是去掉math.,但如果大量地這樣引入第三庫,就容易引起命名沖突。exp(1)sin(1)庫的導入與添加導入future特征(For2.x)Python2.x與3.x之間的差別不僅僅在內核上,也部分地表現(xiàn)在代碼的實現(xiàn)中。比如,在2.x中,print是作為一個語句出現(xiàn)的,用法為printa;但是在3.x中,它是作為函數(shù)出現(xiàn)的,用法為print(a)。為了保證兼容性,本書的基本代數(shù)是使用3.x的語法編寫的,而使用2.x的讀者,可以通過引入future特征的方式兼容代碼,如:#將print變成函數(shù)形式,即用print(a)格式輸出from__future__importprint_function

#3.x的3/2=1.5,3//2才等于1;2.x中3/2=1from__future__importdivision庫的導入與添加添加第三方庫Python自帶了很多庫,但不一定可以滿足我們的需求。就數(shù)據(jù)分析和數(shù)據(jù)挖掘而言,還需要添加一些第三方的庫來拓展它的功能。安裝第三方庫一般有以下幾種思路:1Python使用入門目錄搭建Python開發(fā)平臺2Python數(shù)據(jù)分析工具3小結4Python數(shù)據(jù)分析工具Python本身的數(shù)據(jù)分析功能不強,需要安裝一些第三方擴展庫來增強它的能力。本書用到的庫有Numpy、Scipy、Matplotlib、Pandas、Scikit-Learn、Keras、Gensim等,下面將對這些庫的安裝和使用進行簡單的介紹。Python數(shù)據(jù)分析工具Numpy。Python并沒有提供數(shù)組功能。雖然列表可以完成基本的數(shù)組功能,但它不是真正的數(shù)組,而且在數(shù)據(jù)量較大時,使用列表的速度就會慢得難以接受。為此,Numpy提供了真正的數(shù)組功能,以及對數(shù)據(jù)進行快速處理的函數(shù)。Numpy還是很多更高級的擴展庫的依賴庫,我們后面介紹的Scipy、Matplotlib、Pandas等庫都依賴于它。值得強調的是,Numpy內置函數(shù)處理數(shù)據(jù)的速度是C語言級別的,因此在編寫程序的時候,應當盡量使用它們內置的函數(shù),避免效率瓶頸的現(xiàn)象(尤其是涉及到循環(huán)的問題)。Python數(shù)據(jù)分析工具Numpy。在Windows中,Numpy安裝跟普通的第三方庫安裝一樣,可以通過pip安裝:pipinstallnumpy也可以自行下載源代碼,然后使用以下方式安裝:pythonsetup.pyinstall在Linux下上述方面也是可行的,此外,很多Linux發(fā)行版的軟件源中都有Python常見的庫,因此還可以通過Linux自帶的軟件管理器安裝,如在Ubuntu下可以用如下方式安裝:sudoapt-getinstallpython-numpyPython數(shù)據(jù)分析工具ScipyNumpy提供了多維數(shù)組功能,但它只是一般的數(shù)組,并不是矩陣,比如當兩個數(shù)組相乘時,只是對應元素相乘,而不是矩陣乘法。Scipy提供了真正的矩陣,以及大量基于矩陣運算的對象與函數(shù)。SciPy包含的功能有最優(yōu)化、線性代數(shù)、積分、插值、擬合、特殊函數(shù)、快速傅里葉變換、信號處理和圖像處理、常微分方程求解和其他科學與工程中常用的計算,顯然,這些功能都是挖掘與建模必備的。Python數(shù)據(jù)分析工具ScipyScipy依賴于Numpy,因此安裝它之前得先安裝好Numpy。安裝Scipy的方式與安裝Numpy的方法大同小異,需要提及的是,在Ubuntu下也可以用類似的安裝Scipy。sudoapt-getinstallpython-scipyPython數(shù)據(jù)分析工具MatplotlibMatplotlib是最著名的繪圖庫,它主要用于二維繪圖,當然它也可以進行簡單的三維繪圖。它不僅提供了一整套和Matlab相似但更為豐富的命令,讓我們可以非常快捷地用Python可視化數(shù)據(jù),而且允許輸出達到出版質量的多種圖像格式。Matplotlib的安裝并沒有什么特別之處,可以通過pipinstallmatplotlib安裝或者自行下載源代碼安裝,在Ubuntu下也可以用類似的安裝。sudoapt-getinstallpython-matplotlib注意Matplotlib的上級依賴庫相對較多,手動安裝的時候,需要逐一把這些依賴庫都安裝好。Python數(shù)據(jù)分析工具Matplotlib如果讀者使用的是中文標簽,就會發(fā)現(xiàn)中文標簽無法正常顯示。這是因為Matplotlib的默認字體是英文字體所致,解決它的辦法是在作圖之前手動指定默認字體為中文字體,如黑體(SimHei):plt.rcParams['font.sans-serif']=['SimHei']#這兩句用來正常顯示中文標簽其次,保存作圖圖像時,負號有可能顯示不正常,可以通過以下代碼解決:plt.rcParams['axes.unicode_minus']=False#解決保存圖像是負號'-'顯示為方塊的問題Python數(shù)據(jù)分析工具PandasPandas是Python下最強大的數(shù)據(jù)分析和探索工具(貌似沒有之一)。它包含高級的數(shù)據(jù)結構和精巧的工具,使得在Python中處理數(shù)據(jù)非常快速和簡單。Pandas建造在NumPy之上,它使得以NumPy為中心的應用很容易使用。Pandas的名稱來自于面板數(shù)據(jù)(paneldata)和python數(shù)據(jù)分析(dataanalysis),它最初被作為金融數(shù)據(jù)分析工具而開發(fā)出來,由AQRCapitalManagement于2008年4月開發(fā),并于2009年底開源出來。Pandas的功能非常強大,支持類似SQL的數(shù)據(jù)增、刪、查、改,并且?guī)в胸S富的數(shù)據(jù)處理函數(shù);支持時間序列分析功能;支持靈活處理缺失數(shù)據(jù);等等。Python數(shù)據(jù)分析工具安裝:Pandas的安裝相對來說比較容易一些,只要安裝好Numpy之后,就可以直接安裝了,通過pipinstallpandas或下載源碼后pythonsetup.pyinstall安裝均可。由于我們頻繁用到讀取和寫入Excel,但默認的Pandas還不能讀寫Excel文件,需要安裝xlrd(讀)和xlwt(寫)庫才能支持Excel的讀寫:pipinstallxlrd#為Python添加讀取Excel的功能pipinstallxlwt#為Python添加寫入Excel的功能Python數(shù)據(jù)分析工具使用:首先,Pandas基本的數(shù)據(jù)結構是Series和DataFrame,Series顧名思義就是序列,類似一維數(shù)組,DataFrame則是相當于一張二維的表格,類似二維數(shù)組,它的每一列都是一個Series。為了定位Series中的元素,Pandas提供了Index這一對象,每個Series都會帶有一個對應的Index,用來標記不同的元素,Index的內容不一定是數(shù)字,也可以是字母、中文等,它類似于SQL中的主鍵。類似地,DataFrame相當于多個帶有同樣Index的Series的組合(本質是Series的容器),每個Seiries都帶有一個唯一的表頭,用來標識不同的Series。#-*-coding:utf-8-*-importpandasaspd#通常用pd作為pandas的別名。

s=pd.Series([1,2,3],index=['a','b','c'])#創(chuàng)建一個序列sd=pd.DataFrame([[1,2,3],[4,5,6]],columns=['a','b','c'])#創(chuàng)建一個表d2=pd.DataFrame(s)#也可以用已有的序列來創(chuàng)建表格

d.head()#預覽前5行數(shù)據(jù)d.describe()#數(shù)據(jù)基本統(tǒng)計量

#讀取文件,注意文件的存儲路徑不能帶有中文,否則讀取可能出錯。pd.read_excel('data.xls')#讀取Excel文件,創(chuàng)建DataFrame。pd.read_csv('data.csv',encoding='utf-8')#讀取文本格式的數(shù)據(jù),一般用encoding指定編碼。Python數(shù)據(jù)分析工具StatsModelsPandas著眼于數(shù)據(jù)的讀取、處理和探索,而StatsModels則更加注重數(shù)據(jù)的統(tǒng)計建模分析,它使得Python有了R語言的味道。StatsModels支持與Pandas進行數(shù)據(jù)交互,因此,它與Pandas結合,成為了Python下強大的數(shù)據(jù)挖掘組合。安裝StatsModels相當簡單,既可以通過pip安裝,又可以通過源碼安裝,對于Windows用戶來說,官網(wǎng)上甚至已經(jīng)有編譯好的exe文件供下載。如果手動安裝的話,需要自行解決好依賴問題,StatModel依賴于Pandas(當然也依賴于Pandas所依賴的),同時還依賴于pasty(一個描述統(tǒng)計的庫)。Python數(shù)據(jù)分析工具Scikit-LearnScikit-Learn是Python下強大的機器學習工具包,它提供了完善的機器學習工具箱,包括數(shù)據(jù)預處理、分類、回歸、聚類、預測、模型分析等。Scikit-Learn依賴于NumPy、SciPy和Matplotlib,因此,只需要提前安裝好這幾個庫,然后安裝Scikit-Learn就基本上沒有什么問題了,安裝方法跟前幾節(jié)一樣,要不就是pipinstallscikit-learn安裝,要不就是下載源碼自己安裝。Python數(shù)據(jù)分析工具使用:所有模型提供的接口有:

model.fit():訓練模型,對于監(jiān)督模型來說是fit(X,y),對于非監(jiān)督模型是fit(X)監(jiān)督模型提供:

model.predict(X_new):預測新樣本

model.predict_proba(X_new):預測概率,僅對某些模型有用(比如LR)

model.score():得分越高,fit越好非監(jiān)督模型提供:

model.transform():從數(shù)據(jù)中學到新的“基空間”。

model.fit_transform():從數(shù)據(jù)中學到新的基并將這個數(shù)據(jù)按照這組“基”進行轉換。Python數(shù)據(jù)分析工具KerasScikit-Learn已經(jīng)足夠強大了,然而它并沒有包含一種強大的模型——人工神經(jīng)網(wǎng)絡。人工神經(jīng)網(wǎng)絡是功能相當強大的、但是原理又相當簡單的模型,在語言處理、圖像識別等領域都有重要的作用。近年來逐漸火起來的“深度學習”算法,本質上也就是一種神經(jīng)網(wǎng)絡,可見在Python中實現(xiàn)神經(jīng)網(wǎng)絡是非常必要的。本書用Keras庫來搭建神經(jīng)網(wǎng)絡。事實上,Keras并非簡單的神經(jīng)網(wǎng)絡庫,而是一個基于Theano的強大的深度學習庫,利用它不僅僅可以搭建普通的神經(jīng)網(wǎng)絡,還可以搭建各種深度學習模型,如自編碼器、循環(huán)神經(jīng)網(wǎng)絡、遞歸神經(jīng)網(wǎng)絡、卷積神經(jīng)網(wǎng)絡等等。由于它是基于Theano的,因此速度也相當快。Python數(shù)據(jù)分析工具安裝:安裝Keras之前首先需要安裝Numpy、Scipy、Theano。安裝Theano首先需要準備一個C++編譯器,這在Linux下是自帶的。因此,在Linux下安裝Theano和Keras都非常簡單,只需要下載源代碼,然后用pythonsetup.pyinstall安裝就行了,具體可以參考官方文檔。Python數(shù)據(jù)分析工具安裝:可是在Windows下就沒有那么簡單了,因為它沒有現(xiàn)成的編譯環(huán)境,一般而言是先安裝MinGW(Windows下的GCC和G++),然后再安裝Theano(提前裝好Numpy等依賴庫),最后安裝Keras,如果要實現(xiàn)GPU加速,還需要安裝和配置CUDA(天下沒有免費的午餐,想要速度、易用兩不誤,那么就得花點心思)。值得一提的是,在Windows下的Keras速度會大打折扣,因此,想要在神經(jīng)網(wǎng)絡、深度學習做更深入研究的讀者,請在Linux下搭建相應的環(huán)境。Python數(shù)據(jù)分析工具使用:用Keras搭建神經(jīng)網(wǎng)絡模型的過程相當簡潔,也相當直觀,它純粹地就像搭積木一般。我們可以通過短短幾十行代碼,就可以搭建起一個非常強大的神經(jīng)網(wǎng)絡模型,甚至是深度學習模型。如簡單搭建一個MLP(多層感知器):要注意的是,Keras的預測函數(shù)跟Scikit-Learn有所差別,Keras用model.predict()方法給出概率,model.predict_classes()給出分類結果。#-*-coding:utf-8-*-fromkeras.modelsimportSequentialfromkeras.layers.coreimportDense,Dropout,Activationfromkeras.optimizersimportSGD

model=Sequential()#模型初始化model.add(Dense(20,64))#添加輸入層(20節(jié)點)、第一隱藏層(64節(jié)點)的連接model.add(Activation('tanh'))#第一隱藏層用tanh作為激活函數(shù)model.add(Dropout(0.5))#使用Dropout防止過擬合model.add(Dense(64,64))#添加第一隱藏層(64節(jié)點)、第二隱藏層(64節(jié)點)的連接model.add(Activation('tanh'))#第二隱藏層用tanh作為激活函數(shù)model.add(Dropout(0.5))#使用Dropout防止過擬合model.add(Dense(64,1))#添加第二隱藏層(64節(jié)點)、輸出層(1節(jié)點)的連接model.add(Activation('sigmoid'))#輸出層用sigmoid作為激活函數(shù)

sgd=SGD(lr=0.1,decay=1e-6,momentum=0.9,nesterov=True)#定義求解算法pile(loss='mean_squared_error',optimizer=sgd)#編譯生成模型,損失函數(shù)為平均誤差平方和

model.fit(X_train,y_train,nb_epoch=20,batch_size=16)#訓練模型score=model.evaluate(X_test,y_test,batch_size=16)#測試模型Python數(shù)據(jù)分析工具GensimGensim是用來處理語言方面的任務,如文本相似度計算、LDA、Word2Vec等,這些領域的任務往往需要比較多的背景知識。需要一提的是,Gensim把Google在2013年開源的著名的詞向量構造工具Word2Vec編譯好了,作為它的子庫,因此需要用到Word2Vec的讀者也可以直接用Gensim而無需自行編譯了。據(jù)說Gensim的作者對Word2Vec的代碼進行了優(yōu)化,所以它在Gensim下的表現(xiàn)據(jù)說比原生的Word2Vec還要快。(為了實現(xiàn)加速,需要準備C++編譯器環(huán)境,因此,建議用到Gensim的Word2Vec的讀者在Linux下環(huán)境運行。)1Python使用入門目錄搭建Python開發(fā)平臺2Python數(shù)據(jù)分析工具3小結4本章主要對Python進行簡單介紹,包括軟件安裝、使用入門及相關注意事項和Python數(shù)據(jù)分析及挖掘相關工具箱。由于Python包含有多個領域的擴展庫,而且擴展庫的功能也相當豐富,本章只介紹了與數(shù)據(jù)分析及數(shù)據(jù)挖掘相關的一小部分,包括高維數(shù)組、數(shù)值計算、可視化、機器學習、神經(jīng)網(wǎng)絡和語言模型等。這些擴展庫里面包含的函數(shù)在后續(xù)章節(jié)中會進行實例分析,通過在Python平臺上完成實際案例來掌握數(shù)據(jù)分析和數(shù)據(jù)挖掘的原理,培養(yǎng)讀者應用數(shù)據(jù)分析和挖掘技術解決實際問題的能力。小結了解常見的數(shù)據(jù)來源1間接來源目錄直接來源2巧婦難為無米之炊。如果沒有數(shù)據(jù),那么在進行數(shù)據(jù)分析時將寸步難行。不同來源、不同類型的數(shù)據(jù)可能會導致分析結果千差萬別,了解數(shù)據(jù)的采集也顯得至關重要。本章著重介紹了常見數(shù)據(jù)來源、交通信息的分類、特點和相關采集技術、常見的數(shù)據(jù)類型以及數(shù)據(jù)的讀取方式。數(shù)據(jù)獲取數(shù)據(jù)可以從業(yè)務系統(tǒng)、網(wǎng)絡爬蟲、公共數(shù)據(jù)集等多種數(shù)據(jù)來源中獲取。從數(shù)據(jù)的獲取方式上可大致分為直接來源和間接來源兩種。了解常見的數(shù)據(jù)來源直接來源是來源于本人或本公司直接記錄、調查或實驗的結果,又稱為第一手數(shù)據(jù)。最為常見的直接來源為存儲在公司業(yè)務系統(tǒng)數(shù)據(jù)庫中的數(shù)據(jù),這些數(shù)據(jù)通常由公司的日常運營以及活動產(chǎn)生,是最直接也是最容易獲取的數(shù)據(jù)來源。另一種常見的數(shù)據(jù)直接來源為問卷調查,主要采用將結構式的調查問卷與抽查法相結合的形式,問卷調查越來越多地被用于定量研究,并成為社會科學研究的主要方式之一。直接來源1間接來源目錄直接來源2間接來源是來源于別人調查或實驗的數(shù)據(jù),又稱為第二手數(shù)據(jù)。由于個人和商業(yè)公司的力量有限,因此一些宏觀數(shù)據(jù)需要由專門的大型調查公司或政府部門來提供,這些數(shù)據(jù)的來源渠道也比較多,如報紙、書籍、統(tǒng)計年鑒、相關網(wǎng)站及專業(yè)調查公司等。如果調查的領域專業(yè)性較強,那么需要查閱相關的專業(yè)性網(wǎng)站提供的數(shù)據(jù),或使用搜索引擎的高級搜索功能完成。間接來源數(shù)據(jù)獲取1常見的信息采集技術目錄了解交通信息的采集2對于智能交通系統(tǒng)而言,無論是靜態(tài)還是動態(tài)基礎交通信息都是其主要組成部分。而不同的交通信息采集技術可以采集到不同類型的交通信息。為加深對交通信息的了解,以下將簡要介紹不同類別的交通信息、交通信息的特點以及常見的交通信息采集技術。了解交通信息的采集智能交通系統(tǒng)(ITS)所需要的信息是多方面、多層次的,其中一些信息并不能直接獲得,需要通過對一些基礎交通信息進行處理才能得到。如對路網(wǎng)交通狀態(tài)的估計和對交通事件的估計等,這些交通信息就是通過對交通流數(shù)據(jù)、車輛速度、道路參數(shù)等數(shù)據(jù)進行綜合處理之后才能得到。那么這些狀態(tài)估計信息是否能夠得到、是否能夠滿足實際應用的要求,在很大程度上取決于那些實時采集上來的基礎交通信息是否可靠、準確和及時?!盎A”一般意義上講是建筑物的根基,也可以理解是一個系統(tǒng)的最根本或最起點的部分,是系統(tǒng)中其他部分的支撐。交通信息的分類與特點基礎是否堅固決定著一個系統(tǒng)是否穩(wěn)定和可靠?;A交通信息應該是智能交通系統(tǒng)里最基本、最直接的數(shù)據(jù),基礎交通信息的來源、質量和內容等在很大程度上決定了交通信息處理系統(tǒng)的效率和效果。基礎交通信息是交通管理者和交通參與者為了更好地管理交通、更好地利用交通資源而采集的交通信息。它是交通信息系統(tǒng)的基本數(shù)據(jù)來源,反映交通系統(tǒng)的基本屬性。確切地說,基礎交通信息是通過各種渠道采集到的未經(jīng)過加工的交通參數(shù)、路網(wǎng)參數(shù)等數(shù)據(jù)。交通信息管理系統(tǒng)可以根據(jù)不同用戶的不同要求對基礎交通信息進行加工處理,生成對用戶有決策價值的交通信息。交通信息的分類與特點基礎交通信息按照其變化的頻率不同可以大致分成靜態(tài)基礎交通信息和動態(tài)基礎交通信息兩大類。靜態(tài)基礎交通信息主要包括以下幾種。城市基礎地理信息(路網(wǎng)分布、功能小區(qū)的劃分、交叉口的布局、停車場分布、交通樞紐的布局、城市基礎交通設施信息等)。城市道路網(wǎng)基礎信息(道路技術等級、長度、寬度、車道數(shù)、收費、立交連接方式等)。各種車輛保有量信息(包括分區(qū)域、分時間、分車種車輛保有量信息等)。交通管理信息,如單向行使、禁止左轉、限制進入(分時間限制進入管制和空間限制進入管制)、道路施工信息等。交通信息的分類與特點動態(tài)基礎交通信息主要包括以下幾種。交通流狀態(tài)特征信息(如車流量、速度、密度等)。交通緊急事件信息(各種途徑得到的事件信息,包括路面檢測器信息、人工報告信息等)。在途車輛及駕駛員的實時信息(如各種車輛定位信息等)。環(huán)境狀況信息(大氣狀況、污染狀況信息,為出行計劃提供選擇條件)。交通動態(tài)控制管理信息等。不論是靜態(tài)還是動態(tài)基礎交通信息都是ITS不可缺少的信息來源。交通信息的分類與特點動態(tài)交通信息的采集和處理是智能交通研究的重點,也是信息技術在ITS應用的基礎。動態(tài)交通信息的采集方式、獲取手段、采集精度、采集成本等因素,對于實現(xiàn)ITS的各項功能非常重要。目前,國內外正在研究先進的交通信號控制系統(tǒng)、車路協(xié)同系統(tǒng)、無人駕駛系統(tǒng)等,都是利用交通信息的結果。按照信息論的觀點,信息的價值主要在于它的決策價值,也就是說,信息對于人們做決策是有意義的,尤其是對管理者做出正確的決策是有價值的。如果信息不能對決策人的決策產(chǎn)生任何影響,那么它就不能被叫做信息。交通信息也是如此,它應該對做出各方面、各層次的交通管理決策是有價值的。交通信息的分類與特點從這個角度來說,交通信息應該具備以下表格的基本特征。交通信息的分類與特點基本特征概述準確性對于交通信息而言,準確性是尤其重要的。準確的信息對正確的決策才有正面的影響,才有價值。而不準確或不正確的信息不但對決策沒有價值,還會對決策產(chǎn)生負面的影響及時性及時的信息對做出正確的決策才是有意義的,而過時的信息對決策是無用的。比如,自適應式交通信號控制周期的變化需要根據(jù)實時的交通流量等數(shù)據(jù)來進行計算共享性交通信息是智能交通系統(tǒng)(ITS)中各子系統(tǒng)所需要的共同信息,因此,交通信息應該可以為各子系統(tǒng)所利用,這就要求交通信息具有統(tǒng)一的數(shù)據(jù)標準,統(tǒng)一的采集格式和提供方式實時性和動態(tài)性必須是實時的、動態(tài)的采集交通信息的基本數(shù)據(jù),這樣的數(shù)據(jù)才能滿足交通管理與控制、車輛誘導、交通安全、交通監(jiān)控等功能的需要,才是有意義的信息海量性由于交通系統(tǒng)是一個復雜龐大的系統(tǒng),路網(wǎng)復雜,再加上實時、動態(tài)的采集、處理、傳輸、發(fā)布的要求,所以數(shù)據(jù)采集量、傳輸量、處理量、發(fā)布量都非常龐大1常見的信息采集技術目錄了解交通信息的采集2交通信息是交通數(shù)據(jù)分析的重要前提,不同的信息采集方式得到的數(shù)據(jù)也大相徑庭。常見的交通信息采集技術有地感線圈傳感器、圖像傳感器、微波雷達傳感器、地磁傳感器等。常見的交通信息采集技術地感線圈是一種基于電磁感應原理的車輛檢測方式,可以檢測交通流量、占有率、速度等交通數(shù)據(jù)。在路面挖出圓形或矩形的溝槽中埋入導線,構成環(huán)形地感線圈,并且通以一定的工作電流形成一個電磁場。車輛具有鐵磁性質,通過或停留在線圈上時切割磁通線,線圈的電感量改變,使得振蕩電路中的振蕩頻率和相位也發(fā)生相應大小的改變。通過變化量可以感知車輛的通過,通過信號產(chǎn)生和結束的時間間隔來測量汽車的速度。地磁線傳感器圖像檢測類傳感器普遍安裝于車輛速度較慢的進出路口,利用視頻、計算機和通信等技術手段。實現(xiàn)對指定地點的交通流量、車輛速度、占有率、車輛是否違章等交通信息的采集。視頻檢測是由攝像機、圖像處理器和可以將采集到的圖像信息轉化為交通流信息的軟件構成的系統(tǒng),通常架設在線桿或橋梁上、對連續(xù)視頻圖像進行分析處理。一臺攝像機可觀測多車道,一個視頻檢測系統(tǒng)可同時處理多個攝像機傳輸?shù)臄?shù)據(jù)。圖像傳感器微波雷達檢測技術基于多普勒效應,傳感器發(fā)出的微波在碰到障礙物反射回來時由于物體的運動狀態(tài)不同而接收到不同頻率的反射波,通過頻率發(fā)生的變化量可以計算出車輛的信息。微波雷達傳感器配合高速攝像機,一般安裝于車輛速度較快且方向單一的高速路上。也可以安裝在卡口處、橋梁上、隧道中和紅綠燈控制系統(tǒng)上對移動的車輛進行抓拍,采集車流量、車速、車型、占有率、是否超速等信息。微波雷達傳感器在一定區(qū)域內,地球的磁場強度基本是恒定的。當有車輛進入后,由于汽車是具備導磁能力的鐵磁性物質,所以該區(qū)域的磁場強度將會發(fā)生變化,這就是地磁傳感器的基本工作原理。不論汽車的運動狀態(tài)如何,汽車具有的鐵磁性物質必定會影響地磁場,再經(jīng)過信號分析,即可得到想要獲得的檢測目標的相關信息。利用地磁傳感器可以進行車輛有無、行駛方向、行駛速度、車輛型號、車流量等數(shù)據(jù)的采集。地磁傳感器了解數(shù)據(jù)的常見類型1半結構化數(shù)據(jù)目錄結構化數(shù)據(jù)2非結構化數(shù)據(jù)3數(shù)據(jù)的類型多種多樣,按照數(shù)據(jù)的結構可分為結構化數(shù)據(jù)、半結構化數(shù)據(jù)和非結構化數(shù)據(jù)。結構化數(shù)據(jù)的表現(xiàn)形式為二維的列表結構,嚴格地遵循數(shù)據(jù)格式與長度規(guī)范,主要通過關系型數(shù)據(jù)庫進行存儲和管理。結構化數(shù)據(jù)由行和列構成,通常每一行對應一條記錄,每一列對應一個屬性,同一個表中的數(shù)據(jù)具有相同的屬性集,即同一張表中所有記錄的列的個數(shù)是一致的。一個結構化數(shù)據(jù)的例子,如下表所示。結構化數(shù)字IDSexbodyTypecreatDate1男020160309表中展示了一條結構化的汽車交易記錄,ID列表示該交易的編號為1,通常為數(shù)值型或字符型。Sex列表示該客戶的性別為男性,通常為字符型;bodyType列的0表示該車的車型是豪華轎車,為數(shù)值型。creatDate列表示該客戶的消費時間為2016年3月9日,通常為字符型或時間型。結構化數(shù)據(jù)主要應用于各類業(yè)務系統(tǒng)的關系型數(shù)據(jù)庫中,其存儲需求包括高速存儲應用需求、數(shù)據(jù)備份需求、數(shù)據(jù)共享需求以及數(shù)據(jù)容災需求等。結構化數(shù)字1半結構化數(shù)據(jù)目錄結構化數(shù)字2非結構化數(shù)據(jù)3半結構化數(shù)據(jù)是結構化數(shù)據(jù)的一種特殊形式,是以樹或圖的數(shù)據(jù)結構存儲的數(shù)據(jù),其結構并不符合關系型數(shù)據(jù)庫或其他數(shù)據(jù)表的形式關聯(lián)起來的數(shù)據(jù)模型結構。半結構化數(shù)據(jù)包含相關標記,用來分隔語義元素以及對記錄和字段進行分層,這種結構也被稱為自描述的結構。半結構化數(shù)據(jù)的數(shù)據(jù)庫是節(jié)點的集合,每個節(jié)點都是一個葉子節(jié)點或一個內部節(jié)點。葉子節(jié)點與數(shù)據(jù)相關,數(shù)據(jù)的類型可以是任意原子類型,如數(shù)字和字符串。每個內部節(jié)點至少有一條外向的弧。每條弧都有一個標簽,該標簽指明弧開始處的節(jié)點與弧末端的節(jié)點之間的關系。半結構化數(shù)據(jù)一個名為根的內部節(jié)點沒有進入的弧,它代表整個數(shù)據(jù)庫。每個節(jié)點都從根可達整個圖的結構未必是一棵樹。常見的半結構化數(shù)據(jù)格式有XML和JSON。一個XML文件中的記錄,可以看到兩條記錄的屬性個數(shù)是不一樣的。第一條記錄有name、age和gender三個屬性,而第二條記錄只有name和gender兩個屬性。半結構化文件記錄的屬性個數(shù)是可以變動的,這點與結構化數(shù)據(jù)要求數(shù)據(jù)必須具有相同的屬性集不同,使得半結構化數(shù)據(jù)具有更好的靈活性。半結構化數(shù)據(jù)半結構化數(shù)據(jù)包括郵件、HTML、報表、資源庫等,常見的應用場景有郵件系統(tǒng)、WEB集群、教學資源庫和檔案系統(tǒng)等。這些應用的存儲要求主要有數(shù)據(jù)存儲、數(shù)據(jù)備份、數(shù)據(jù)共享以及數(shù)據(jù)歸檔等。半結構化數(shù)據(jù)1半結構化數(shù)據(jù)目錄結構化數(shù)字2非結構化數(shù)據(jù)3非結構化數(shù)據(jù)是數(shù)據(jù)結構不規(guī)則或不完整,沒有預定義的數(shù)據(jù)模型,不方便用數(shù)據(jù)庫二維邏輯表來表現(xiàn)的數(shù)據(jù)。常見的非結構化數(shù)據(jù)包括辦公文檔、文本、圖像、音頻、視頻等。非結構化數(shù)據(jù)的格式非常多樣,標準也具有多樣性,在技術上非結構化信息比結構化信息更難標準化和理解。其存儲、檢索、發(fā)布以及利用需要更加智能化的IT技術。常見具體應用有醫(yī)療影像系統(tǒng)、教育視頻點播、視頻監(jiān)控、地理信息系統(tǒng)、設計院、文件服務器(PDM/FTP)、媒體資源管理等。非結構化數(shù)據(jù)非結構化數(shù)據(jù)常見具體應用有。醫(yī)療影像系統(tǒng)。教育視頻點播。視頻監(jiān)控。地理信息系統(tǒng)。設計院。文件服務器(PDM/FTP)。媒體資源管理等。非結構化數(shù)據(jù)掌握數(shù)據(jù)的讀取方式1讀取文件數(shù)據(jù)目錄讀取數(shù)據(jù)庫數(shù)據(jù)2常見的數(shù)據(jù)儲存媒介有數(shù)據(jù)庫和文件,以下介紹如何讀取數(shù)據(jù)庫數(shù)據(jù)和文件數(shù)據(jù)。在生產(chǎn)環(huán)境中,絕大多數(shù)的數(shù)據(jù)都存儲在數(shù)據(jù)庫中。想要讀取數(shù)據(jù)庫中的數(shù)據(jù)需要先與數(shù)據(jù)庫建立連接。數(shù)據(jù)庫連接是分析工具與數(shù)據(jù)庫之間的通道,只有建立數(shù)據(jù)庫連接后,用戶才能對數(shù)據(jù)庫中的數(shù)據(jù)進行操作。Python也需要與數(shù)據(jù)庫建立連接后才能讀取數(shù)據(jù)庫中的數(shù)據(jù),一個常用建立連接的方法為通過SQLAlchemy庫并配合相應數(shù)據(jù)庫的Python連接工具。讀取數(shù)據(jù)庫數(shù)據(jù)不同的數(shù)據(jù)庫需要選擇對應的連接工具,如MySQL數(shù)據(jù)庫需要安裝mysqlclient或pymysql庫,Oracle數(shù)據(jù)庫需要安裝cx_oracle庫。SQLAlchemy庫支持與MySQL、postgresql、Oracle、SQLServer和SQLite等主流數(shù)據(jù)庫建立連接。建立連接時需要提供數(shù)據(jù)庫產(chǎn)品名、連接工具名、用戶名、密碼、數(shù)據(jù)庫IP地址、數(shù)據(jù)庫端口號、數(shù)據(jù)庫名稱。同時還需要注意數(shù)據(jù)庫中使用的數(shù)據(jù)編碼,使用錯誤的編碼會導致亂碼問題。使用SQLAlchemy連接MySQL數(shù)據(jù)庫,與數(shù)據(jù)庫進行連接后,可以與數(shù)據(jù)庫進行交互,對數(shù)據(jù)庫中的數(shù)據(jù)進行操作。讀取數(shù)據(jù)庫數(shù)據(jù)使用SQLAlchemy連接MySQL數(shù)據(jù)庫,與數(shù)據(jù)庫進行連接后,可以與數(shù)據(jù)庫進行交互,對數(shù)據(jù)庫中的數(shù)據(jù)進行操作。常見的操作包括讀取、存儲以及增、刪、改、查等,通過pandas庫對數(shù)據(jù)庫進行讀取和存儲操作,得到結果。讀取數(shù)據(jù)庫數(shù)據(jù)1讀取文件數(shù)據(jù)目錄讀取數(shù)據(jù)庫數(shù)據(jù)2另一種常見的數(shù)據(jù)載體是文本文件,文本文件是一種由若干行字符構成的計算機文件,它是一種典型的順序文件。常見的有TXT文件和CSV文件,這兩種文件的主要區(qū)別是TXT文件使用空格分隔,而CSV是一種逗號分隔的文件格式。因為CSV文件分隔符不一定是逗號,所以又被稱為字符分隔文件,文件以純文本形式存儲表格數(shù)據(jù)(數(shù)字和文本)。CSV是一種通用、相對簡單的文件格式,最廣泛的應用是在程序之間轉移表格數(shù)據(jù),而這些程序本身是在不兼容的格式上進行操作的(往往是私有的或無規(guī)范的格式)。讀取文件數(shù)據(jù)因為大量程序都支持CSV或其變體,所以可以作為大多數(shù)程序的輸入和輸出格式。CSV文件根據(jù)其定義也是一種文本文件,在數(shù)據(jù)讀取過程中可以使用文本文件的讀取函數(shù)對CSV文件進行讀取。使用read_table和read_csv函數(shù)讀取CSV文件,讀取文件時需要注意編碼問題,常用的編碼有utf-8、utf-16、gbk、gb2312、gb18030等。如果編碼指定錯誤,那么數(shù)據(jù)將無法讀取,IPython解釋器會報解析錯誤。使用不同的參數(shù)讀取二手車售價表,除了TXT文件和CSV文件外,Excel文件也是常見的需要讀取的數(shù)據(jù)文件種類。讀取文件數(shù)據(jù)Excel可以進行各種數(shù)據(jù)的處理、統(tǒng)計分析和輔助決策操作,被廣泛地應用于管理、統(tǒng)計財經(jīng)和金融等眾多領域。其文件格式依照程序版本的不同分為以下兩種。MicrosoftOfficeExcel2007之前的版本(不包括2007)默認保存的文件名后綴為.xls。MicrosoftOfficeExcel2007之后的版本默認保存的文件名后綴為.xlsx。通過pandas庫讀取xlsx格式的倫敦自行車租賃表,得到結果。讀取文件數(shù)據(jù)本章主要對常見的數(shù)據(jù)來源進行了簡要的介紹,常見的數(shù)據(jù)來源主要分為直接來源和間接來源兩種。大致描述了交通信息的采集,如交通信息的分類和特點以及交通信息的采集技術。還介紹了常見的數(shù)據(jù)類型,包括結構化、半結構化和非結構化數(shù)據(jù)。最后介紹了數(shù)據(jù)的讀取方式,主要包括讀取數(shù)據(jù)庫數(shù)據(jù)和讀取文件數(shù)據(jù)。小結第3章數(shù)據(jù)探索10-8月-231數(shù)據(jù)特征分析目錄數(shù)據(jù)質量分析2Python主要數(shù)據(jù)探索函數(shù)3統(tǒng)計作圖函數(shù)4數(shù)據(jù)質量分析數(shù)據(jù)質量分析是數(shù)據(jù)預處理的前提,是數(shù)據(jù)挖掘分析結論有效性和準確性的基礎,其主要任務是檢查原始數(shù)據(jù)中是否存在臟數(shù)據(jù),臟數(shù)據(jù)一般是指不符合要求,以及不能直接進行相應分析的數(shù)據(jù),在常見的數(shù)據(jù)挖掘工作中,臟數(shù)據(jù)包括:

缺失值

異常值

不一致的值

重復數(shù)據(jù)及含有特殊符號(如#、¥、*)的數(shù)據(jù)本小節(jié)將主要對數(shù)據(jù)中的缺失值、異常值和一致性進行分析。數(shù)據(jù)質量分析——缺失值產(chǎn)生的原因有些信息暫時無法獲取,或者獲取信息的代價太大。有些信息是被遺漏的??赡苁且驗檩斎霑r認為不重要、忘記填寫或對數(shù)據(jù)理解錯誤等一些人為因素而遺漏,也可能是由于數(shù)據(jù)采集設備的故障、存儲介質的故障、傳輸媒體的故障等機械原因而丟失。屬性值不存在。在某些情況下,缺失值并不意味著數(shù)據(jù)有錯誤,對一些對象來說屬性值是不存在的,如一個未婚者的配偶姓名、一個兒童的固定收入狀況等。數(shù)據(jù)質量分析——缺失值的影響數(shù)據(jù)挖掘建模將丟失大量的有用信息數(shù)據(jù)挖掘模型所表現(xiàn)出的不確定性更加顯著,模型中蘊涵的確定性成分更難把握包含空值的數(shù)據(jù)會使挖掘建模過程陷入混亂,導致不可靠的輸出數(shù)據(jù)質量分析——缺失值分析對缺失值做簡單統(tǒng)計分析統(tǒng)計缺失值的變量個數(shù)統(tǒng)計每個變量的未缺失數(shù)統(tǒng)計變量的缺失數(shù)及缺失率數(shù)據(jù)質量分析——異常值分析異常值分析是檢驗數(shù)據(jù)是否有錄入錯誤以及含有不合常理的數(shù)據(jù)。忽視異常值的存在是十分危險的,不加剔除地把異常值包括進數(shù)據(jù)的計算分析過程中,對結果會帶來不良影響;重視異常值的出現(xiàn),分析其產(chǎn)生的原因,常常成為發(fā)現(xiàn)問題進而改進決策的契機。異常值是指樣本中的個別值,其數(shù)值明顯偏離其余的觀測值。異常值也稱為離群點,異常值的分析也稱為離群點的分析。異常值分析方法主要有:簡單統(tǒng)計量分析、3原則、箱型圖分析。異常值分析——簡單統(tǒng)計分析可以先做一個描述性統(tǒng)計,進而查看哪些數(shù)據(jù)是不合理的。需要的統(tǒng)計量主要是最大值和最小值,判斷這個變量中的數(shù)據(jù)是不是超出了合理的范圍,如身高的最大值為5米,則該變量的數(shù)據(jù)存在異常。異常值分析——3原則如果數(shù)據(jù)服從正態(tài)分布,在3原則下,異常值被定義為一組測定值中與平均值的偏差超過三倍標準差的值。在正態(tài)分布的假設下,距離平均值3之外的值出現(xiàn)的概率為

,屬于極個別的小概率事件。異常值分析——箱型圖分析箱形圖依據(jù)實際數(shù)據(jù)繪制,不需要事先假定數(shù)據(jù)服從特定的分布形式,沒有對數(shù)據(jù)作任何限制性要求,它只是真實直觀地表現(xiàn)數(shù)據(jù)分布的本來面貌;另一方面,箱形圖判斷異常值的標準以四分位數(shù)和四分位距為基礎,四分位數(shù)具有一定的魯棒性:多達25%的數(shù)據(jù)可以變得任意遠而不會很大地擾動四分位數(shù),所以異常值不能對這個標準施加影響,箱形圖識別異常值的結果比較客觀。由此可見,箱形圖在識別異常值方面有一定的優(yōu)越性。一致性分析數(shù)據(jù)不一致性是指數(shù)據(jù)的矛盾性、不相容性。直接對不一致的數(shù)據(jù)進行挖掘,可能會產(chǎn)生與實際相違背的挖掘結果。在數(shù)據(jù)挖掘過程中,不一致數(shù)據(jù)的產(chǎn)生主要發(fā)生在數(shù)據(jù)集成的過程中,可能是由于被挖掘數(shù)據(jù)是來自于從不同的數(shù)據(jù)源、重復存放的數(shù)據(jù)未能進行

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論