版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
了解交通大數(shù)據(jù)第1章1.1了解交通大數(shù)據(jù).pptx第2章Python數(shù)據(jù)分析簡(jiǎn)介.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ù)預(yù)處理.pptx第6章6.1構(gòu)建分類與回歸模型(1).pptx第6章6.1構(gòu)建分類與回歸模型(2).pptx第6章6.2構(gòu)建聚類模型.pptx第6章6.3構(gòu)建時(shí)間序列模型.pptx第7章運(yùn)輸車輛駕駛行為分析.pptx第8章公交車站點(diǎn)設(shè)置優(yōu)化分析.pptx第9章鐵路站點(diǎn)客流量預(yù)測(cè).pptx第10章基于TipDM大數(shù)據(jù)挖掘建模平臺(tái)實(shí)現(xiàn)運(yùn)輸車輛駕駛行為分析.pptx全套可編輯PPT課件1交通大數(shù)據(jù)的應(yīng)用目錄交通大數(shù)據(jù)的背景2現(xiàn)如今,隨著大數(shù)據(jù)行業(yè)的蓬勃發(fā)展,大數(shù)據(jù)與人們的生活早已息息相關(guān)。日常生活中的衣食住行都會(huì)產(chǎn)生大量的數(shù)據(jù),這些數(shù)據(jù)看似雜亂無章卻在抽絲剝繭后可以發(fā)現(xiàn)其中的規(guī)律。如何在這些海量數(shù)據(jù)中挖掘到想要的結(jié)果,目前是一個(gè)非常熱門的研究方向。本章主要介紹交通大數(shù)據(jù)的背景與應(yīng)用、數(shù)據(jù)分析的基本任務(wù)和基本流程、常用的數(shù)據(jù)分析工具以及如何配置Python開發(fā)環(huán)境。緒論隨著云時(shí)代的來臨,大數(shù)據(jù)也吸引了越來越多的關(guān)注。而交通大數(shù)據(jù)作為其下的分支自然備受關(guān)注。接下來簡(jiǎn)單介紹交通大數(shù)據(jù)的背景以及應(yīng)用。了解交通大數(shù)據(jù)隨著交通運(yùn)輸服務(wù)行業(yè)的發(fā)展、城市規(guī)模的不斷擴(kuò)大以及城市智能化進(jìn)程的加快,大數(shù)據(jù)在交通運(yùn)輸領(lǐng)域中的應(yīng)用也成為了當(dāng)下的熱點(diǎn)。大數(shù)據(jù)的應(yīng)用使人們重新認(rèn)識(shí)了交通需求以及交通運(yùn)行的內(nèi)在規(guī)律,同時(shí)也改變了交通運(yùn)輸?shù)囊?guī)律。海量數(shù)據(jù)不僅能為企業(yè)帶來商業(yè)價(jià)值,也能為社會(huì)產(chǎn)生巨大的社會(huì)價(jià)值。科學(xué)合理使用這些數(shù)據(jù)將使未來的生活產(chǎn)生極大的改變。交通大數(shù)據(jù)就是將所有與交通有關(guān)的數(shù)據(jù)信息整合到一起的數(shù)據(jù)鏈,交通行業(yè)是天然的大數(shù)據(jù)行業(yè),隨著交通領(lǐng)域技術(shù)發(fā)展及應(yīng)用的推廣,每天產(chǎn)生的交通數(shù)據(jù)信息量能夠達(dá)到PB級(jí)別,并且呈幾何級(jí)別的增長(zhǎng)。交通大數(shù)據(jù)的來源主要有:公路、鐵路及城市交通管理系統(tǒng)中的信息服務(wù)平臺(tái)、道路流量檢測(cè)、道路監(jiān)控、車牌識(shí)別、電子監(jiān)控、路上稱重、公交運(yùn)營(yíng)、長(zhǎng)途客運(yùn)售票、地鐵售票、鐵路售票、出租車調(diào)度、停車管理、公共自行車運(yùn)營(yíng)、公交一卡通統(tǒng)計(jì)等。交通大數(shù)據(jù)的背景大數(shù)據(jù)已經(jīng)滲透到每個(gè)行業(yè)和業(yè)務(wù)職能領(lǐng)域,并成為重要的生產(chǎn)要素。目前普遍認(rèn)為大數(shù)據(jù)具有大量(Volume)、多樣(Variety)、高速(Velocity)、價(jià)值(Value)等特征,而交通大數(shù)據(jù)作為大數(shù)據(jù)的一種,自然也具備著同樣的特征。交通大數(shù)據(jù)的背景1.交通大數(shù)據(jù)具備的特點(diǎn)交通大數(shù)據(jù)的具體特征如表所示。交通大數(shù)據(jù)的背景特征概述大量(Volume)交通大數(shù)據(jù)所涉及的交通信息類型相當(dāng)廣,而每種類型的衍生也特別多。如行人(乘車記錄,路線記錄)、車輛(車輛狀況記錄、攝像頭記錄)、道路(基礎(chǔ)設(shè)施記錄、車流量記錄)多樣(Variety)涉及面的廣大,決定了交通大數(shù)據(jù)形式的多樣性。比如行人出行相關(guān)的數(shù)據(jù),包括出行方式(字符類型)、出行時(shí)間(時(shí)間類型)、目的地所在(地理信息)等等。如果擴(kuò)展到其他類型的交通信息,數(shù)據(jù)的多樣性會(huì)更強(qiáng),每個(gè)區(qū)域、每段時(shí)間,交通信息都會(huì)存在各種各樣的數(shù)據(jù)。有結(jié)構(gòu)化明顯的車輛基礎(chǔ)信息數(shù)據(jù),還有一些結(jié)構(gòu)化不明顯數(shù)據(jù),如圖片、音頻、視頻等高速(Velocity)交通大數(shù)據(jù)具有高速性。交通運(yùn)行狀態(tài)、交通服務(wù)對(duì)象、交通運(yùn)載工具,每時(shí)每刻都在產(chǎn)生大量的數(shù)據(jù),同時(shí)這些數(shù)據(jù)也需要進(jìn)行快速處理、分析和挖掘,并及時(shí)給出反饋信息價(jià)值(Value)交通大數(shù)據(jù)中隱藏著巨大價(jià)值,但是價(jià)值的密度較低,往往需要對(duì)龐大的數(shù)據(jù)進(jìn)行挖掘分析處理,才能獲得需要的信息機(jī)遇往往伴隨著挑戰(zhàn),隨著智能交通技術(shù)的發(fā)展及應(yīng)用的推廣和深入,智能交通大數(shù)據(jù)發(fā)展同樣面對(duì)著巨大挑戰(zhàn),如表所示。交通大數(shù)據(jù)的背景2.交通大數(shù)據(jù)面臨的挑戰(zhàn)挑戰(zhàn)概述數(shù)據(jù)采集的質(zhì)量由于資金缺乏、信息化建設(shè)速度慢、缺乏統(tǒng)一數(shù)據(jù)采集標(biāo)準(zhǔn)、缺乏各部門之間的協(xié)作機(jī)制等問題,導(dǎo)致數(shù)據(jù)采集的質(zhì)量受到很大的影響數(shù)據(jù)儲(chǔ)存壓力交通大數(shù)據(jù)最突出的特點(diǎn)是“龐大”,采集到的數(shù)據(jù)規(guī)模龐大、類型多,有結(jié)構(gòu)化、半結(jié)構(gòu)化和非結(jié)構(gòu)化(語音、視頻等)的數(shù)據(jù),但數(shù)據(jù)存儲(chǔ)技術(shù)的發(fā)展速度落后于交通大數(shù)據(jù)的更新速度和應(yīng)用需求數(shù)據(jù)共享利用由于交通大數(shù)據(jù)分散在不同單位和政府部門等,彼此孤立,所以很難實(shí)現(xiàn)數(shù)據(jù)共享,就連交通部門內(nèi)部的數(shù)據(jù)共享也是困難重重?cái)?shù)據(jù)的分析處理由于交通大數(shù)據(jù)數(shù)量規(guī)模龐大、價(jià)值密度很低、對(duì)時(shí)效性處理要求很高等,所以需要根據(jù)不同的應(yīng)用需求,建立不同的數(shù)據(jù)分析模型,實(shí)現(xiàn)對(duì)數(shù)據(jù)的有效深入分析數(shù)據(jù)應(yīng)用智能交通大數(shù)據(jù)應(yīng)用群體多,如普通出行者、交通規(guī)劃與管理部門、咨詢機(jī)構(gòu)等,如何開發(fā)個(gè)性化的智能交通大數(shù)據(jù)應(yīng)用系統(tǒng),以滿足不同用戶群體,也是未來交通大數(shù)據(jù)發(fā)展與應(yīng)用中面臨的挑戰(zhàn)交通使用者是交通系統(tǒng)的服務(wù)對(duì)象,主要包括行人、乘客、駕駛員以及企業(yè)等。對(duì)于交通使用者而言,其主要關(guān)心的是通往目的地的道路交通狀態(tài)信息,如路況信息、擁擠與事件信息、交通管制信息等,并據(jù)此做出合理的出行計(jì)劃。交通大數(shù)據(jù)的背景3.交通大數(shù)據(jù)服務(wù)的對(duì)象用戶對(duì)基礎(chǔ)交通信息的需求如表所示。交通大數(shù)據(jù)的背景用戶主體對(duì)交通信息的需求駕駛員車輛的誘導(dǎo)信息,如出行前需要了解路網(wǎng)與當(dāng)前交通狀況信息,選擇最佳出行路線;行駛過程中需要了解動(dòng)態(tài)交通信息,包括事故、施工、阻塞等,以便調(diào)整路線形式;遇到事故時(shí)能夠得到及時(shí)救援;提供停車信息等乘客了解到達(dá)目的地的各種交通手段、路線、時(shí)間、途中的各種服務(wù)特種車輛駕駛員提供優(yōu)先通行策略和行駛過程中的誘導(dǎo)信息、安全警告信息和調(diào)度信息車輛所有者車輛收費(fèi)、管理信息,應(yīng)通過車輛信息與自動(dòng)定位、收費(fèi)裝置完成采集;車輛被盜后應(yīng)當(dāng)能夠盡快通過先進(jìn)的通信手段報(bào)警;當(dāng)車輛在非運(yùn)行狀態(tài)下發(fā)生意外損壞時(shí),通過車輛自動(dòng)報(bào)警裝置發(fā)出警報(bào)行人、非機(jī)動(dòng)車騎行者、摩托車駕駛員通過先進(jìn)的信號(hào)系統(tǒng),在彎道、路口、狹窄街道等視野受限制區(qū)域,能感知行駛車輛的存在;在上述區(qū)域能感知行駛車輛的速度、轉(zhuǎn)向和變更路線等行駛狀態(tài)或意向;在用戶途中遭遇疾病、盜匪等意外危險(xiǎn)事件時(shí),能發(fā)送緊急求救信號(hào)并通告所在位置交通管理部門通過監(jiān)控系統(tǒng)實(shí)時(shí)地對(duì)路網(wǎng)進(jìn)行監(jiān)控;對(duì)施工、阻塞以及發(fā)生交通事故,應(yīng)自動(dòng)確定地點(diǎn)及路段和車輛,并自動(dòng)調(diào)度警力前往事故地點(diǎn)進(jìn)行事故處理;為了能夠保證緊急車輛快速、順利到達(dá)事發(fā)地點(diǎn),提供如路網(wǎng)、路況信息、緊急事件相關(guān)信息,并將道路狀況及時(shí)通過信息系統(tǒng)發(fā)布公安機(jī)關(guān)通過先進(jìn)的通信手段或監(jiān)控系統(tǒng)在第一時(shí)間獲得車輛被盜、駕駛員人身安全受到威脅等信息,運(yùn)用定位技術(shù)自動(dòng)確定出事地點(diǎn),自動(dòng)地調(diào)度警力進(jìn)行處理。對(duì)公共運(yùn)輸設(shè)施、停車場(chǎng)、警車內(nèi)安全(包括警車、公安人員和犯罪嫌疑人)進(jìn)行監(jiān)視、監(jiān)測(cè),利用通信與感測(cè)技術(shù),通過顯示和預(yù)警裝置向公安人員提供足夠的交通信息,幫助其做出最合適的決策用戶對(duì)基礎(chǔ)交通信息的需求如表所示。(接上表)交通大數(shù)據(jù)的背景用戶主體對(duì)交通信息的需求汽車運(yùn)輸公司通過監(jiān)控系統(tǒng)了解車輛的運(yùn)營(yíng)和客流狀況,及時(shí)根據(jù)客流變化調(diào)整調(diào)度;遇到車輛故障及其他緊急事件應(yīng)發(fā)出報(bào)警信號(hào)并迅速采取相應(yīng)措施;當(dāng)進(jìn)行危險(xiǎn)品運(yùn)輸時(shí),提供通告、監(jiān)控、路線引導(dǎo)等特殊的安全服務(wù)基礎(chǔ)設(shè)施(包括道路、換乘樞紐等)建設(shè)與管理部門提供基礎(chǔ)設(shè)施的位置信息,運(yùn)用先進(jìn)的通信和監(jiān)控手段,對(duì)可能造成基礎(chǔ)設(shè)施破壞的危險(xiǎn)品運(yùn)輸,提供自動(dòng)檢測(cè)、通告、路線引導(dǎo)等服務(wù),以保障基礎(chǔ)設(shè)施的安全;通過監(jiān)控系統(tǒng)實(shí)時(shí)監(jiān)控?fù)Q乘樞紐的運(yùn)轉(zhuǎn)狀況;對(duì)安全隱患發(fā)出警告信號(hào);一旦出現(xiàn)緊急情況,自動(dòng)報(bào)警并自動(dòng)引導(dǎo)乘客通過緊急通道進(jìn)行疏散換乘者提供最佳換乘路線,遇有緊急情況應(yīng)當(dāng)能夠發(fā)出緊急救援信號(hào);并提供路線引導(dǎo)服務(wù),通過緊急通道迅速撤離消防部門通過先進(jìn)的通信手段接收消防救援信號(hào),自動(dòng)定位,引導(dǎo)消防車在第一時(shí)間到達(dá)火災(zāi)地點(diǎn)急救中心通過先進(jìn)的通信手段接收醫(yī)療緊急救援信號(hào),通過緊急救援系統(tǒng)中的自動(dòng)定位,迅速派出救護(hù)車進(jìn)行緊急醫(yī)療救護(hù)交通控制指揮中心(緊急事件管理中心)通過監(jiān)控系統(tǒng)對(duì)路網(wǎng)進(jìn)行實(shí)時(shí)監(jiān)控;自動(dòng)檢測(cè)緊急事件;通過先進(jìn)的通信手段接收緊急救援信號(hào),自動(dòng)確定救援地點(diǎn),并發(fā)送救援指令迅速組織救援車輛維修公司通過先進(jìn)的通信手段接收車輛故障信息,自動(dòng)定位,并迅速提供維修服務(wù)1交通大數(shù)據(jù)的應(yīng)用目錄交通大數(shù)據(jù)的背景2人們?cè)谌粘3鲂袝r(shí)經(jīng)常會(huì)碰見各種交通相關(guān)的問題,如交通堵塞、找不到公交車站點(diǎn)的位置、不清楚列車的發(fā)車間隔,有效運(yùn)用交通大數(shù)據(jù)可以很好地解決上述問題。例如,各大地圖導(dǎo)航,將歷史數(shù)據(jù)、實(shí)時(shí)數(shù)據(jù)、道路情況進(jìn)行分析,預(yù)測(cè)從當(dāng)前地點(diǎn)到達(dá)目的地的時(shí)間,給用戶提供多種不同組合的選擇,并推薦時(shí)間最短的組合。通過對(duì)用戶的引導(dǎo),極大地緩解了交通壓力。常見的交通大數(shù)據(jù)的應(yīng)用場(chǎng)景如下。交通大數(shù)據(jù)的應(yīng)用交通大數(shù)據(jù)一個(gè)主要應(yīng)用就是將路面采集數(shù)據(jù)、城市交通參與車輛的GPS數(shù)據(jù)與電子地圖定位導(dǎo)航數(shù)據(jù)進(jìn)行多元融合和加工,生產(chǎn)出高準(zhǔn)確率和高覆蓋率的實(shí)時(shí)路況信息。對(duì)于時(shí)效性要求較高的生鮮農(nóng)產(chǎn)品冷鏈物流配送,可利用配送管理信息系統(tǒng),通過交通大數(shù)據(jù)平臺(tái)獲取道路、實(shí)時(shí)路況等信息來管理和指揮在途車輛進(jìn)行配送。同時(shí)客戶也可通過此平臺(tái)對(duì)車輛和貨物進(jìn)行查詢并反饋信息。車輛將路況、位置等信息反饋給配送管理信息系統(tǒng)。與此同時(shí),客戶、車輛甚至配送方的數(shù)據(jù)和信息也將通過冷鏈配送管理信息系統(tǒng)和交通大數(shù)據(jù)平臺(tái)被公共數(shù)據(jù)云收集。農(nóng)產(chǎn)品冷鏈物流互聯(lián)網(wǎng)租賃自行車可以深入城市角落,彌補(bǔ)其他出行方式的服務(wù)空白,其便捷的租還、支付方式和高分布密度等優(yōu)勢(shì),提高了使用者的出行體驗(yàn)和出行效率,受到廣大用戶的喜愛。然而自20世紀(jì)90年代以來,以機(jī)動(dòng)車為導(dǎo)向的城市發(fā)展,逐漸擠壓自行車騎行與停放空間?;ヂ?lián)網(wǎng)租賃自行車的發(fā)展影響著居民的出行行為,也推動(dòng)著城市規(guī)劃和管理者對(duì)城市空間和道路資源的重新認(rèn)識(shí)。同時(shí),互聯(lián)網(wǎng)租賃自行車出行產(chǎn)生的大量基于時(shí)間和位置的數(shù)據(jù)為描述和理解城市空間結(jié)構(gòu)提供了新的途徑。因此,有必要通過對(duì)騎行大數(shù)據(jù)的時(shí)間和空間分析,揭示騎行需求規(guī)律,為城市相關(guān)規(guī)劃建設(shè)、行業(yè)管理部門和運(yùn)營(yíng)企業(yè)合作建立科學(xué)的投放與管理機(jī)制等提供技術(shù)支撐。自行車租賃伴隨著我國(guó)經(jīng)濟(jì)的飛速發(fā)展,汽車保有率不斷提高,隨之也涌現(xiàn)出了大量的環(huán)境問題、空間問題以及至關(guān)重要的安全問題。數(shù)量龐大的汽車和復(fù)雜的駕駛環(huán)境為人工智能的應(yīng)用提供了海量數(shù)據(jù)。通過布置于車輛上的傳感器收集路面路況信息,利用算法挖掘出有效數(shù)據(jù),分析駕駛員的駕駛習(xí)慣,將其運(yùn)用到自動(dòng)駕駛之中可以實(shí)現(xiàn)安全高效的通行。汽車自動(dòng)駕駛隨著中國(guó)城鎮(zhèn)化的快速發(fā)展,城市人口數(shù)量急劇增加,城市公共交通面臨著前所未有的壓力。城市公共交通具有大容量、低碳環(huán)保等優(yōu)勢(shì),是緩解城市交通壓力,解決城市居民出行問題的最佳選擇。但傳統(tǒng)公交系統(tǒng)存在信息化、智能化水平較低,公交路線規(guī)劃不合理、服務(wù)水平較低等缺點(diǎn),導(dǎo)致城市公交可達(dá)性較差,已難以滿足日益發(fā)展的城市出行需求。利用交通大數(shù)據(jù)優(yōu)化公交車站點(diǎn)的設(shè)置,提高了百姓的出行效率和乘車體驗(yàn),也提高了城市居民的幸福指數(shù)。公交車站點(diǎn)設(shè)置航空交通具有時(shí)效快的優(yōu)勢(shì),對(duì)于長(zhǎng)距離旅途而言有非常重要的意義,尤其是在目前的社會(huì)環(huán)境中,人們生活水平有了進(jìn)一步的提升,這為航空公司規(guī)模的擴(kuò)大提供了基礎(chǔ)。為了滿足當(dāng)前的航空運(yùn)輸需要,需要對(duì)企業(yè)的發(fā)展做升級(jí)和優(yōu)化。但是隨著高鐵、動(dòng)車等鐵路運(yùn)輸?shù)呐d建,航空公司同樣也受到巨大沖擊。民航的競(jìng)爭(zhēng)除了中國(guó)3大航空公司之間的競(jìng)爭(zhēng)之外,還將加入新崛起的各類小型航空公司、民營(yíng)航空公司,甚至國(guó)外航空巨頭。航空產(chǎn)品生產(chǎn)過剩,產(chǎn)品同質(zhì)化特征愈加明顯,于是航空公司從價(jià)格、服務(wù)間的競(jìng)爭(zhēng)逐漸轉(zhuǎn)向?qū)蛻舻母?jìng)爭(zhēng)。通過對(duì)航空公司客戶數(shù)據(jù)進(jìn)行分析,可以挖掘出隱藏的高價(jià)值用戶。航空客戶近年來,高速鐵路以其快捷、準(zhǔn)時(shí)、安全、環(huán)保的特點(diǎn),在我國(guó)乃至世界范圍內(nèi)高速發(fā)展。隨著我國(guó)高速鐵路的路網(wǎng)規(guī)模逐步擴(kuò)大和運(yùn)營(yíng)里程的增加,鐵路旅客運(yùn)輸能力得到逐步釋放,鐵路旅客運(yùn)輸供不應(yīng)求的局面得到緩解,鐵路運(yùn)輸生產(chǎn)正逐步由粗放型向精細(xì)化轉(zhuǎn)換。客流作為鐵路運(yùn)輸組織的基礎(chǔ)和關(guān)鍵因素,其分析工作是一個(gè)復(fù)雜的過程,如何對(duì)客流的分布特征及變化規(guī)律進(jìn)行系統(tǒng)分析,掌握客流現(xiàn)狀與變化趨勢(shì),對(duì)鐵路開行方案、營(yíng)銷策略、客票銷售等都具有重要意義。鐵路運(yùn)輸?shù)?章Python數(shù)據(jù)分析簡(jiǎn)介10-8月-231Python使用入門目錄搭建Python開發(fā)平臺(tái)2Python數(shù)據(jù)分析工具3小結(jié)4Python是一門簡(jiǎn)單易學(xué)且功能強(qiáng)大的編程語言。它擁有高效的高級(jí)數(shù)據(jù)結(jié)構(gòu),并且能夠用簡(jiǎn)單而又高效的方式進(jìn)行面向?qū)ο缶幊?。Python優(yōu)雅的語法和動(dòng)態(tài)類型,再結(jié)合它的解釋性,使其在大多數(shù)平臺(tái)的許多領(lǐng)域成為編寫腳本或開發(fā)應(yīng)用程序的理想語言。要認(rèn)識(shí)Python,首先得明確一點(diǎn),Python是一門編程語言!這就意味著,至少原則上來說,它能夠完成Matlab能夠做的所有事情(因?yàn)榇蟛涣藦念^開始編寫),而且大多數(shù)情況下,同樣功能的Python代碼會(huì)比Matlab代碼更加簡(jiǎn)潔、易懂;而另一方面,因?yàn)樗且婚T編程語言,所以它能夠完成很多Matlab不能做的事情,比如開發(fā)網(wǎng)頁、開發(fā)游戲、編寫爬蟲來采集數(shù)據(jù)等。Python簡(jiǎn)介Python的簡(jiǎn)介Python以開發(fā)效率著稱,也就是說它致力于以最短的代碼完成同一個(gè)任務(wù)。Python通常為人詬病的是它的運(yùn)行效率,而Python還被稱為“膠水語言”,它允許我們把耗時(shí)的核心部分用C/C++等更高效率的語言編寫,然后由它來“黏合”,這很大程度上已經(jīng)解決了Python的運(yùn)行效率問題。事實(shí)上,在大多數(shù)數(shù)據(jù)任務(wù)上,Python的運(yùn)行效率已經(jīng)可以媲美C/C++語言。Python簡(jiǎn)介Python的簡(jiǎn)介Python簡(jiǎn)介TIOBE編程語言排行榜Python簡(jiǎn)介編程語言的趨勢(shì)圖Python的官網(wǎng):/本書使用Python3.6版本,本書的代碼盡可能地同時(shí)兼容2.x和3.x,包括在各種第三方庫也使用兩個(gè)版本都兼容的擴(kuò)展庫。Python是跨平臺(tái)的語言,因此腳本可以跨平臺(tái)運(yùn)行,然而不同的平臺(tái)運(yùn)行效率不一樣,一般來說Linux下的速度會(huì)比Windows快,而且是對(duì)于數(shù)據(jù)分析和挖掘任務(wù)。此外,在Linux下搭建Python環(huán)境相對(duì)來說容易一些,很多Linux發(fā)行版自帶了Python程序,并且在Linux下更容易解決第三方庫的依賴問題。當(dāng)然,Linux的操作門檻較高,入門的讀者可以先在Windows熟悉,然后再考慮遷移到Linux下。搭建Python開發(fā)平臺(tái)Python版本及操作系統(tǒng)選擇在Windows下安裝Python比較容易,直接到官方網(wǎng)站下載相應(yīng)的msi安裝包安裝即可,和一般軟件的安裝無異,在此不贅述。安裝包還分32位和64位版本,請(qǐng)讀者自行選擇適合的版本。大多數(shù)Linux發(fā)行版,如CentOs、Debian、Ubuntu等,都已經(jīng)自帶了Python2.x的主程序,但Python3.x版本的主程序需要自行另外安裝。安裝Python核心程序只是第一步,為了實(shí)現(xiàn)更豐富的科學(xué)計(jì)算功能,還需要安裝一些第三方的擴(kuò)展庫,這對(duì)于一般的讀者來說可能顯得比較麻煩,尤其是在Windows下還可能出現(xiàn)各種錯(cuò)誤。幸好,已經(jīng)有人專門將科學(xué)計(jì)算所需要的模塊都編譯好,然后打包以發(fā)行版的形式供用戶使用,Anaconda就是其中一個(gè)常用的科學(xué)計(jì)算發(fā)行版。搭建Python開發(fā)平臺(tái)Python的安裝Anaconda的特點(diǎn):1、包含了眾多流行的科學(xué)、數(shù)學(xué)、工程、數(shù)據(jù)分析的Python包2、完全開源和免費(fèi)3、額外的加速、優(yōu)化是收費(fèi)的,但對(duì)于學(xué)術(shù)用途可以申請(qǐng)免費(fèi)的License4、全平臺(tái)支持:Linux、Windows、Mac;支持Python2.6、2.7、3.3、3.4,可自由切換因此,推薦初級(jí)讀者(尤其是Windows下的讀者)安裝此Python發(fā)行版。讀者只需要到官方網(wǎng)站下載安裝包安裝:http://continuum.io/downloads搭建Python開發(fā)平臺(tái)Python的安裝搭建Python開發(fā)平臺(tái)Python啟動(dòng)界面1Python使用入門目錄搭建Python開發(fā)平臺(tái)2Python數(shù)據(jù)分析工具3小結(jié)4運(yùn)行方式運(yùn)行Python代碼有兩種方式,一種方式是啟動(dòng)Python,然后在命令窗口下直接輸入相應(yīng)的命令;另外就是將完整的代碼寫成.py腳本,如hello.py,然后通過pythonhello.py執(zhí)行?;久罨具\(yùn)算認(rèn)識(shí)Python的第一步,是可以把它當(dāng)作一個(gè)方便的計(jì)算器來看待。a=2a*2a**2以上是Python幾個(gè)基本的運(yùn)算,第一個(gè)是賦值運(yùn)算,第二是乘法,最后是一個(gè)是冪(即a2),這些基本上是所有編程語言通用的。不過Python支持多重賦值:a,b,c=2,3,4基本命令基本運(yùn)算不過Python支持多重賦值:a,b,c=2,3,4這句命令相當(dāng)于:a=2b=3c=4基本命令基本運(yùn)算
Python支持對(duì)字符串的靈活操作:基本命令判斷與循環(huán)判斷和循環(huán)是所有編程語言的基本命令,Python的判斷語句如下:需要特別指出的是,Python一般不用花括號(hào){},也沒有end語句,它是用縮進(jìn)對(duì)齊作為語句的層次標(biāo)記。同一層次的縮進(jìn)量要一一對(duì)應(yīng),否則報(bào)錯(cuò)。if條件1:
語句2elif條件3:
語句4else:
語句5基本命令判斷與循環(huán)
Python的循環(huán)也相應(yīng)地有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是一個(gè)非常方便、而且非常直觀的語法,用來判斷一個(gè)元素是否在列表/元組中,range用來生成連續(xù)的序列,一般語法為range(a,b,c),表示以a為首項(xiàng)、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ù)返回值可以是各種形式,比如返回列表,甚至返回多個(gè)值:defadd2(x):returnx+2printadd2(1)#輸出結(jié)果為3defadd2(x=0,y=0):#定義函數(shù),同時(shí)定義參數(shù)的默認(rèn)值return[x+2,y+2]#返回值是一個(gè)列表defadd3(x,y):returnx+3,y+3#雙重返回a,b=add3(1,2)#此時(shí)a=4,b=5基本命令函數(shù)
Python支持用lambda對(duì)簡(jiǎn)單的功能定義“行內(nèi)函數(shù)”,這有點(diǎn)像Matlab中的“匿名函數(shù)”:f=lambdax:x+2#定義函數(shù)f(x)=x+2g=lambdax,y:x+y#定義函數(shù)g(x,y)=x+y數(shù)據(jù)結(jié)構(gòu)Python有四個(gè)內(nèi)建的數(shù)據(jù)結(jié)構(gòu)——List(列表)、Tuple(元組)、Dictionary(字典)以及Set(集合),它們可以統(tǒng)稱為容器(container),因?yàn)樗鼈儗?shí)際上是一些“東西”的組合而成的結(jié)構(gòu),而這些“東西”,可以是數(shù)字、字符甚至是列表,或者是它們之間幾種的組合。通俗地講,容器里邊是什么都行,而且容器里邊的元素類型不要求相同。數(shù)據(jù)結(jié)構(gòu)列表/元組從外形上看,列表與元組的區(qū)別是,列表是用方括號(hào)標(biāo)記的,如a=[1,2,3],而元組是用圓括號(hào)標(biāo)記的,如b=(4,5,6),訪問列表和元組中的元素的方式都是一樣的,如a[0]等于1,b[2]等于6,等等。c=[1,'abc',[1,2]]'''c是一個(gè)列表,列表的第一個(gè)元素是整型1,第二個(gè)是字符串'abc',第三個(gè)是列表[1,2]'''數(shù)據(jù)結(jié)構(gòu)列表/元組從功能上看,列表與元組不同的區(qū)別是,列表可以被修改,而元組不可以。比如,對(duì)于a=[1,2,3],那么語句a[0]=0,就會(huì)將列表a修改為[0,2,3],而對(duì)于元組b=(4,5,6),語句b[0]=1就會(huì)報(bào)錯(cuò)。要注意的是,如果已經(jīng)有了一個(gè)列表a,同時(shí)想復(fù)制a,命名為變量b,那么b=a是無效的,這時(shí)候b僅僅是a的別名(或者說引用),修改b也會(huì)修改a的。正確的復(fù)制方法應(yīng)該是b=a[:]。跟列表有關(guān)的函數(shù)是list,跟元組有關(guān)的函數(shù)是tuple,它們的用法和功能幾乎一樣,都是將某個(gè)對(duì)象轉(zhuǎn)換為列表/元組,如list('ab')的結(jié)果是['a','b'],tuple([1,2])的結(jié)果是(1,2)。數(shù)據(jù)結(jié)構(gòu)列表/元組一些常見的與列表/元組相關(guān)的函數(shù):數(shù)據(jù)結(jié)構(gòu)列表/元組作為對(duì)象來說,列表本身自帶了很多實(shí)用的方法:數(shù)據(jù)結(jié)構(gòu)字典特別地,Python引入了“字典”這一方便的概念。從數(shù)學(xué)上來講,它實(shí)際上是一個(gè)映射。通俗來講,它也相當(dāng)于一個(gè)列表,然而它的“下標(biāo)”不再是以0開頭的數(shù)字,而是自己定義的“鍵”(Key)。創(chuàng)建一個(gè)字典的基本方法為:這里的'today'、'tomorrow'就是字典的鍵,它在整個(gè)字典中必須是唯一的,而20、30就是鍵對(duì)應(yīng)的值。d={'today':20,'tomorrow':30}數(shù)據(jù)結(jié)構(gòu)字典還有其他一些比較方便的方法來創(chuàng)建一個(gè)字典,如通過dict()函數(shù)轉(zhuǎn)換,或者通過dict.fromkeys來創(chuàng)建:dict([['today',20],['tomorrow',30]])#也相當(dāng)于{'today':20,'tomorrow':30}dict.fromkeys(['today','tomorrow'],20)#相當(dāng)于{'today':20,'tomorrow':20}數(shù)據(jù)結(jié)構(gòu)集合Python內(nèi)置了集合這一數(shù)據(jù)結(jié)構(gòu),跟數(shù)學(xué)上的集合概念基本上是一致的,它跟列表的區(qū)別在于:1、它的元素的不重復(fù)的,而且是無序的;2、它不支持索引。一般我們通過花括號(hào){}或者set()函數(shù)來創(chuàng)建一個(gè)集合:s={1,2,2,3}#注意2會(huì)自動(dòng)去重,得到{1,2,3}s=set([1,2,2,3])#同樣地,它將列表轉(zhuǎn)換為集合,得到{1,2,3}數(shù)據(jù)結(jié)構(gòu)集合由于集合的特殊性(特別是無序性),因此集合有一些特別的運(yùn)算:a=t|s#t和s的并集
b=t&s#t和s的交集
c=t–s#求差集(項(xiàng)在t中,但不在s中)
d=t^s#對(duì)稱差集(項(xiàng)在t或s中,但不會(huì)同時(shí)出現(xiàn)在二者中)數(shù)據(jù)結(jié)構(gòu)函數(shù)式編程函數(shù)式編程(Functionalprogramming)或者函數(shù)程序設(shè)計(jì),又稱泛函編程,是一種編程范型,它將計(jì)算機(jī)運(yùn)算視為數(shù)學(xué)上的函數(shù)計(jì)算,并且避免使用程序狀態(tài)以及易變對(duì)象。簡(jiǎn)單來講,函數(shù)式編程是一種“廣播式”的編程,一般來說結(jié)合前面提到過的lambda定義函數(shù),用于科學(xué)計(jì)算中,會(huì)顯得特別簡(jiǎn)潔方便。在Python中,函數(shù)是編程主要有幾個(gè)函數(shù)的使用構(gòu)成:lambda、map、reduce、filter,其中l(wèi)ambda前面已經(jīng)介紹過,主要用來自定義“行內(nèi)函數(shù)”,所以現(xiàn)在我們逐一介紹后三個(gè)。數(shù)據(jù)結(jié)構(gòu)函數(shù)式編程首先map函數(shù)。假設(shè)我們有一個(gè)列表a=[1,2,3],我要給列表中的每個(gè)元素都加2得到一個(gè)新列表,利用前面已經(jīng)談及過的“列表解析”,我們可以這樣寫:而利用map函數(shù)我們可以這樣寫:我們首先定義一個(gè)函數(shù),然后再用map命令將函數(shù)逐一應(yīng)用到(map)列表中的每個(gè)元素,最后返回一個(gè)數(shù)組。b=[i+2foriina]b=map(lambdax:x+2,a)b=list(b)#結(jié)果是[3,4,5]數(shù)據(jù)結(jié)構(gòu)函數(shù)式編程接著是reduce,它有點(diǎn)像map,但map用于逐一遍歷,而是reduce用于遞歸計(jì)算。先給出一個(gè)例子,這個(gè)例子可以算出n的階乘:其中range(1,n+1)相當(dāng)于給出了一個(gè)列表,元素是1~n這n個(gè)整數(shù)。lambdax,y:x*y構(gòu)造了一個(gè)二元函數(shù),返回兩個(gè)參數(shù)的乘積。reduce命令首先將列表的頭兩個(gè)元素作為函數(shù)的參數(shù)進(jìn)行運(yùn)算,然后將運(yùn)算結(jié)果與第三個(gè)數(shù)字作為函數(shù)的參數(shù),然后再將運(yùn)算結(jié)果與第四個(gè)數(shù)字作為函數(shù)的參數(shù)…依此遞推,直到列表結(jié)束,返回最終結(jié)果。reduce(lambdax,y:x*y,range(1,n+1))數(shù)據(jù)結(jié)構(gòu)函數(shù)式編程最后是filter,顧名思義,它是一個(gè)過濾器,用來篩選出列表中符合條件的元素,如:使用filter首先需要一個(gè)返回值為bool型的函數(shù),如上述的lambdax:x>5andx<8定義了一個(gè)函數(shù),判斷x是否大于5且小于8,然后將這個(gè)函數(shù)作用到range(10)的每個(gè)元素中,如果為True,則“挑出”那個(gè)元素,最后將滿足條件的所有元素組成一個(gè)列表返回。b=filter(lambdax:x>5andx<8,range(10))b=list(b)#結(jié)果是[6,7]庫的導(dǎo)入與添加庫的導(dǎo)入Python本身內(nèi)置了很多強(qiáng)大的庫,如數(shù)學(xué)相關(guān)的math庫,可以為我們提供更加豐富復(fù)雜的數(shù)學(xué)運(yùn)算:導(dǎo)入庫的方法,除了直接“import庫名”之外,還可以為庫起一個(gè)別名:importmathmath.sin(1)#計(jì)算正弦math.exp(1)#計(jì)算指數(shù)math.pi#內(nèi)置的圓周率常數(shù)importmathasmm.sin(1)#計(jì)算正弦?guī)斓膶?dǎo)入與添加庫的導(dǎo)入此外,如果并不需要導(dǎo)入庫中的所有函數(shù),可以特別指定導(dǎo)入函數(shù)的名字:直接地導(dǎo)入庫中的所有函數(shù):frommathimportexpase#只導(dǎo)入math庫中的exp函數(shù),并起別名ee(1)#計(jì)算指數(shù)sin(1)#此時(shí)sin(1)和math.sin(1)都會(huì)出錯(cuò),因?yàn)闆]被導(dǎo)入frommathimport*#直接的導(dǎo)入,也就是去掉math.,但如果大量地這樣引入第三庫,就容易引起命名沖突。exp(1)sin(1)庫的導(dǎo)入與添加導(dǎo)入future特征(For2.x)Python2.x與3.x之間的差別不僅僅在內(nèi)核上,也部分地表現(xiàn)在代碼的實(shí)現(xiàn)中。比如,在2.x中,print是作為一個(gè)語句出現(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庫的導(dǎo)入與添加添加第三方庫Python自帶了很多庫,但不一定可以滿足我們的需求。就數(shù)據(jù)分析和數(shù)據(jù)挖掘而言,還需要添加一些第三方的庫來拓展它的功能。安裝第三方庫一般有以下幾種思路:1Python使用入門目錄搭建Python開發(fā)平臺(tái)2Python數(shù)據(jù)分析工具3小結(jié)4Python數(shù)據(jù)分析工具Python本身的數(shù)據(jù)分析功能不強(qiáng),需要安裝一些第三方擴(kuò)展庫來增強(qiáng)它的能力。本書用到的庫有Numpy、Scipy、Matplotlib、Pandas、Scikit-Learn、Keras、Gensim等,下面將對(duì)這些庫的安裝和使用進(jìn)行簡(jiǎn)單的介紹。Python數(shù)據(jù)分析工具Numpy。Python并沒有提供數(shù)組功能。雖然列表可以完成基本的數(shù)組功能,但它不是真正的數(shù)組,而且在數(shù)據(jù)量較大時(shí),使用列表的速度就會(huì)慢得難以接受。為此,Numpy提供了真正的數(shù)組功能,以及對(duì)數(shù)據(jù)進(jìn)行快速處理的函數(shù)。Numpy還是很多更高級(jí)的擴(kuò)展庫的依賴庫,我們后面介紹的Scipy、Matplotlib、Pandas等庫都依賴于它。值得強(qiáng)調(diào)的是,Numpy內(nèi)置函數(shù)處理數(shù)據(jù)的速度是C語言級(jí)別的,因此在編寫程序的時(shí)候,應(yīng)當(dāng)盡量使用它們內(nèi)置的函數(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ù)組,并不是矩陣,比如當(dāng)兩個(gè)數(shù)組相乘時(shí),只是對(duì)應(yīng)元素相乘,而不是矩陣乘法。Scipy提供了真正的矩陣,以及大量基于矩陣運(yùn)算的對(duì)象與函數(shù)。SciPy包含的功能有最優(yōu)化、線性代數(shù)、積分、插值、擬合、特殊函數(shù)、快速傅里葉變換、信號(hào)處理和圖像處理、常微分方程求解和其他科學(xué)與工程中常用的計(jì)算,顯然,這些功能都是挖掘與建模必備的。Python數(shù)據(jù)分析工具ScipyScipy依賴于Numpy,因此安裝它之前得先安裝好Numpy。安裝Scipy的方式與安裝Numpy的方法大同小異,需要提及的是,在Ubuntu下也可以用類似的安裝Scipy。sudoapt-getinstallpython-scipyPython數(shù)據(jù)分析工具M(jìn)atplotlibMatplotlib是最著名的繪圖庫,它主要用于二維繪圖,當(dāng)然它也可以進(jìn)行簡(jiǎn)單的三維繪圖。它不僅提供了一整套和Matlab相似但更為豐富的命令,讓我們可以非??旖莸赜肞ython可視化數(shù)據(jù),而且允許輸出達(dá)到出版質(zhì)量的多種圖像格式。Matplotlib的安裝并沒有什么特別之處,可以通過pipinstallmatplotlib安裝或者自行下載源代碼安裝,在Ubuntu下也可以用類似的安裝。sudoapt-getinstallpython-matplotlib注意Matplotlib的上級(jí)依賴庫相對(duì)較多,手動(dòng)安裝的時(shí)候,需要逐一把這些依賴庫都安裝好。Python數(shù)據(jù)分析工具M(jìn)atplotlib如果讀者使用的是中文標(biāo)簽,就會(huì)發(fā)現(xiàn)中文標(biāo)簽無法正常顯示。這是因?yàn)镸atplotlib的默認(rèn)字體是英文字體所致,解決它的辦法是在作圖之前手動(dòng)指定默認(rèn)字體為中文字體,如黑體(SimHei):plt.rcParams['font.sans-serif']=['SimHei']#這兩句用來正常顯示中文標(biāo)簽其次,保存作圖圖像時(shí),負(fù)號(hào)有可能顯示不正常,可以通過以下代碼解決:plt.rcParams['axes.unicode_minus']=False#解決保存圖像是負(fù)號(hào)'-'顯示為方塊的問題Python數(shù)據(jù)分析工具PandasPandas是Python下最強(qiáng)大的數(shù)據(jù)分析和探索工具(貌似沒有之一)。它包含高級(jí)的數(shù)據(jù)結(jié)構(gòu)和精巧的工具,使得在Python中處理數(shù)據(jù)非??焖俸秃?jiǎn)單。Pandas建造在NumPy之上,它使得以NumPy為中心的應(yīng)用很容易使用。Pandas的名稱來自于面板數(shù)據(jù)(paneldata)和python數(shù)據(jù)分析(dataanalysis),它最初被作為金融數(shù)據(jù)分析工具而開發(fā)出來,由AQRCapitalManagement于2008年4月開發(fā),并于2009年底開源出來。Pandas的功能非常強(qiáng)大,支持類似SQL的數(shù)據(jù)增、刪、查、改,并且?guī)в胸S富的數(shù)據(jù)處理函數(shù);支持時(shí)間序列分析功能;支持靈活處理缺失數(shù)據(jù);等等。Python數(shù)據(jù)分析工具安裝:Pandas的安裝相對(duì)來說比較容易一些,只要安裝好Numpy之后,就可以直接安裝了,通過pipinstallpandas或下載源碼后pythonsetup.pyinstall安裝均可。由于我們頻繁用到讀取和寫入Excel,但默認(rèn)的Pandas還不能讀寫Excel文件,需要安裝xlrd(讀)和xlwt(寫)庫才能支持Excel的讀寫:pipinstallxlrd#為Python添加讀取Excel的功能pipinstallxlwt#為Python添加寫入Excel的功能Python數(shù)據(jù)分析工具使用:首先,Pandas基本的數(shù)據(jù)結(jié)構(gòu)是Series和DataFrame,Series顧名思義就是序列,類似一維數(shù)組,DataFrame則是相當(dāng)于一張二維的表格,類似二維數(shù)組,它的每一列都是一個(gè)Series。為了定位Series中的元素,Pandas提供了Index這一對(duì)象,每個(gè)Series都會(huì)帶有一個(gè)對(duì)應(yīng)的Index,用來標(biāo)記不同的元素,Index的內(nèi)容不一定是數(shù)字,也可以是字母、中文等,它類似于SQL中的主鍵。類似地,DataFrame相當(dāng)于多個(gè)帶有同樣Index的Series的組合(本質(zhì)是Series的容器),每個(gè)Seiries都帶有一個(gè)唯一的表頭,用來標(biāo)識(shí)不同的Series。#-*-coding:utf-8-*-importpandasaspd#通常用pd作為pandas的別名。
s=pd.Series([1,2,3],index=['a','b','c'])#創(chuàng)建一個(gè)序列sd=pd.DataFrame([[1,2,3],[4,5,6]],columns=['a','b','c'])#創(chuàng)建一個(gè)表d2=pd.DataFrame(s)#也可以用已有的序列來創(chuàng)建表格
d.head()#預(yù)覽前5行數(shù)據(jù)d.describe()#數(shù)據(jù)基本統(tǒng)計(jì)量
#讀取文件,注意文件的存儲(chǔ)路徑不能帶有中文,否則讀取可能出錯(cuò)。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則更加注重?cái)?shù)據(jù)的統(tǒng)計(jì)建模分析,它使得Python有了R語言的味道。StatsModels支持與Pandas進(jìn)行數(shù)據(jù)交互,因此,它與Pandas結(jié)合,成為了Python下強(qiáng)大的數(shù)據(jù)挖掘組合。安裝StatsModels相當(dāng)簡(jiǎn)單,既可以通過pip安裝,又可以通過源碼安裝,對(duì)于Windows用戶來說,官網(wǎng)上甚至已經(jīng)有編譯好的exe文件供下載。如果手動(dòng)安裝的話,需要自行解決好依賴問題,StatModel依賴于Pandas(當(dāng)然也依賴于Pandas所依賴的),同時(shí)還依賴于pasty(一個(gè)描述統(tǒng)計(jì)的庫)。Python數(shù)據(jù)分析工具Scikit-LearnScikit-Learn是Python下強(qiáng)大的機(jī)器學(xué)習(xí)工具包,它提供了完善的機(jī)器學(xué)習(xí)工具箱,包括數(shù)據(jù)預(yù)處理、分類、回歸、聚類、預(yù)測(cè)、模型分析等。Scikit-Learn依賴于NumPy、SciPy和Matplotlib,因此,只需要提前安裝好這幾個(gè)庫,然后安裝Scikit-Learn就基本上沒有什么問題了,安裝方法跟前幾節(jié)一樣,要不就是pipinstallscikit-learn安裝,要不就是下載源碼自己安裝。Python數(shù)據(jù)分析工具使用:所有模型提供的接口有:
model.fit():訓(xùn)練模型,對(duì)于監(jiān)督模型來說是fit(X,y),對(duì)于非監(jiān)督模型是fit(X)監(jiān)督模型提供:
model.predict(X_new):預(yù)測(cè)新樣本
model.predict_proba(X_new):預(yù)測(cè)概率,僅對(duì)某些模型有用(比如LR)
model.score():得分越高,fit越好非監(jiān)督模型提供:
model.transform():從數(shù)據(jù)中學(xué)到新的“基空間”。
model.fit_transform():從數(shù)據(jù)中學(xué)到新的基并將這個(gè)數(shù)據(jù)按照這組“基”進(jìn)行轉(zhuǎn)換。Python數(shù)據(jù)分析工具KerasScikit-Learn已經(jīng)足夠強(qiáng)大了,然而它并沒有包含一種強(qiáng)大的模型——人工神經(jīng)網(wǎng)絡(luò)。人工神經(jīng)網(wǎng)絡(luò)是功能相當(dāng)強(qiáng)大的、但是原理又相當(dāng)簡(jiǎn)單的模型,在語言處理、圖像識(shí)別等領(lǐng)域都有重要的作用。近年來逐漸火起來的“深度學(xué)習(xí)”算法,本質(zhì)上也就是一種神經(jīng)網(wǎng)絡(luò),可見在Python中實(shí)現(xiàn)神經(jīng)網(wǎng)絡(luò)是非常必要的。本書用Keras庫來搭建神經(jīng)網(wǎng)絡(luò)。事實(shí)上,Keras并非簡(jiǎn)單的神經(jīng)網(wǎng)絡(luò)庫,而是一個(gè)基于Theano的強(qiáng)大的深度學(xué)習(xí)庫,利用它不僅僅可以搭建普通的神經(jīng)網(wǎng)絡(luò),還可以搭建各種深度學(xué)習(xí)模型,如自編碼器、循環(huán)神經(jīng)網(wǎng)絡(luò)、遞歸神經(jīng)網(wǎng)絡(luò)、卷積神經(jīng)網(wǎng)絡(luò)等等。由于它是基于Theano的,因此速度也相當(dāng)快。Python數(shù)據(jù)分析工具安裝:安裝Keras之前首先需要安裝Numpy、Scipy、Theano。安裝Theano首先需要準(zhǔn)備一個(gè)C++編譯器,這在Linux下是自帶的。因此,在Linux下安裝Theano和Keras都非常簡(jiǎn)單,只需要下載源代碼,然后用pythonsetup.pyinstall安裝就行了,具體可以參考官方文檔。Python數(shù)據(jù)分析工具安裝:可是在Windows下就沒有那么簡(jiǎn)單了,因?yàn)樗鼪]有現(xiàn)成的編譯環(huán)境,一般而言是先安裝MinGW(Windows下的GCC和G++),然后再安裝Theano(提前裝好Numpy等依賴庫),最后安裝Keras,如果要實(shí)現(xiàn)GPU加速,還需要安裝和配置CUDA(天下沒有免費(fèi)的午餐,想要速度、易用兩不誤,那么就得花點(diǎn)心思)。值得一提的是,在Windows下的Keras速度會(huì)大打折扣,因此,想要在神經(jīng)網(wǎng)絡(luò)、深度學(xué)習(xí)做更深入研究的讀者,請(qǐng)?jiān)贚inux下搭建相應(yīng)的環(huán)境。Python數(shù)據(jù)分析工具使用:用Keras搭建神經(jīng)網(wǎng)絡(luò)模型的過程相當(dāng)簡(jiǎn)潔,也相當(dāng)直觀,它純粹地就像搭積木一般。我們可以通過短短幾十行代碼,就可以搭建起一個(gè)非常強(qiáng)大的神經(jīng)網(wǎng)絡(luò)模型,甚至是深度學(xué)習(xí)模型。如簡(jiǎn)單搭建一個(gè)MLP(多層感知器):要注意的是,Keras的預(yù)測(cè)函數(shù)跟Scikit-Learn有所差別,Keras用model.predict()方法給出概率,model.predict_classes()給出分類結(jié)果。#-*-coding:utf-8-*-fromkeras.modelsimportSequentialfromkeras.layers.coreimportDense,Dropout,Activationfromkeras.optimizersimportSGD
model=Sequential()#模型初始化model.add(Dense(20,64))#添加輸入層(20節(jié)點(diǎn))、第一隱藏層(64節(jié)點(diǎn))的連接model.add(Activation('tanh'))#第一隱藏層用tanh作為激活函數(shù)model.add(Dropout(0.5))#使用Dropout防止過擬合model.add(Dense(64,64))#添加第一隱藏層(64節(jié)點(diǎn))、第二隱藏層(64節(jié)點(diǎn))的連接model.add(Activation('tanh'))#第二隱藏層用tanh作為激活函數(shù)model.add(Dropout(0.5))#使用Dropout防止過擬合model.add(Dense(64,1))#添加第二隱藏層(64節(jié)點(diǎn))、輸出層(1節(jié)點(diǎn))的連接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)#訓(xùn)練模型score=model.evaluate(X_test,y_test,batch_size=16)#測(cè)試模型Python數(shù)據(jù)分析工具GensimGensim是用來處理語言方面的任務(wù),如文本相似度計(jì)算、LDA、Word2Vec等,這些領(lǐng)域的任務(wù)往往需要比較多的背景知識(shí)。需要一提的是,Gensim把Google在2013年開源的著名的詞向量構(gòu)造工具Word2Vec編譯好了,作為它的子庫,因此需要用到Word2Vec的讀者也可以直接用Gensim而無需自行編譯了。據(jù)說Gensim的作者對(duì)Word2Vec的代碼進(jìn)行了優(yōu)化,所以它在Gensim下的表現(xiàn)據(jù)說比原生的Word2Vec還要快。(為了實(shí)現(xiàn)加速,需要準(zhǔn)備C++編譯器環(huán)境,因此,建議用到Gensim的Word2Vec的讀者在Linux下環(huán)境運(yùn)行。)1Python使用入門目錄搭建Python開發(fā)平臺(tái)2Python數(shù)據(jù)分析工具3小結(jié)4本章主要對(duì)Python進(jìn)行簡(jiǎn)單介紹,包括軟件安裝、使用入門及相關(guān)注意事項(xiàng)和Python數(shù)據(jù)分析及挖掘相關(guān)工具箱。由于Python包含有多個(gè)領(lǐng)域的擴(kuò)展庫,而且擴(kuò)展庫的功能也相當(dāng)豐富,本章只介紹了與數(shù)據(jù)分析及數(shù)據(jù)挖掘相關(guān)的一小部分,包括高維數(shù)組、數(shù)值計(jì)算、可視化、機(jī)器學(xué)習(xí)、神經(jīng)網(wǎng)絡(luò)和語言模型等。這些擴(kuò)展庫里面包含的函數(shù)在后續(xù)章節(jié)中會(huì)進(jìn)行實(shí)例分析,通過在Python平臺(tái)上完成實(shí)際案例來掌握數(shù)據(jù)分析和數(shù)據(jù)挖掘的原理,培養(yǎng)讀者應(yīng)用數(shù)據(jù)分析和挖掘技術(shù)解決實(shí)際問題的能力。小結(jié)了解常見的數(shù)據(jù)來源1間接來源目錄直接來源2巧婦難為無米之炊。如果沒有數(shù)據(jù),那么在進(jìn)行數(shù)據(jù)分析時(shí)將寸步難行。不同來源、不同類型的數(shù)據(jù)可能會(huì)導(dǎo)致分析結(jié)果千差萬別,了解數(shù)據(jù)的采集也顯得至關(guān)重要。本章著重介紹了常見數(shù)據(jù)來源、交通信息的分類、特點(diǎn)和相關(guān)采集技術(shù)、常見的數(shù)據(jù)類型以及數(shù)據(jù)的讀取方式。數(shù)據(jù)獲取數(shù)據(jù)可以從業(yè)務(wù)系統(tǒng)、網(wǎng)絡(luò)爬蟲、公共數(shù)據(jù)集等多種數(shù)據(jù)來源中獲取。從數(shù)據(jù)的獲取方式上可大致分為直接來源和間接來源兩種。了解常見的數(shù)據(jù)來源直接來源是來源于本人或本公司直接記錄、調(diào)查或?qū)嶒?yàn)的結(jié)果,又稱為第一手?jǐn)?shù)據(jù)。最為常見的直接來源為存儲(chǔ)在公司業(yè)務(wù)系統(tǒng)數(shù)據(jù)庫中的數(shù)據(jù),這些數(shù)據(jù)通常由公司的日常運(yùn)營(yíng)以及活動(dòng)產(chǎn)生,是最直接也是最容易獲取的數(shù)據(jù)來源。另一種常見的數(shù)據(jù)直接來源為問卷調(diào)查,主要采用將結(jié)構(gòu)式的調(diào)查問卷與抽查法相結(jié)合的形式,問卷調(diào)查越來越多地被用于定量研究,并成為社會(huì)科學(xué)研究的主要方式之一。直接來源1間接來源目錄直接來源2間接來源是來源于別人調(diào)查或?qū)嶒?yàn)的數(shù)據(jù),又稱為第二手?jǐn)?shù)據(jù)。由于個(gè)人和商業(yè)公司的力量有限,因此一些宏觀數(shù)據(jù)需要由專門的大型調(diào)查公司或政府部門來提供,這些數(shù)據(jù)的來源渠道也比較多,如報(bào)紙、書籍、統(tǒng)計(jì)年鑒、相關(guān)網(wǎng)站及專業(yè)調(diào)查公司等。如果調(diào)查的領(lǐng)域?qū)I(yè)性較強(qiáng),那么需要查閱相關(guān)的專業(yè)性網(wǎng)站提供的數(shù)據(jù),或使用搜索引擎的高級(jí)搜索功能完成。間接來源數(shù)據(jù)獲取1常見的信息采集技術(shù)目錄了解交通信息的采集2對(duì)于智能交通系統(tǒng)而言,無論是靜態(tài)還是動(dòng)態(tài)基礎(chǔ)交通信息都是其主要組成部分。而不同的交通信息采集技術(shù)可以采集到不同類型的交通信息。為加深對(duì)交通信息的了解,以下將簡(jiǎn)要介紹不同類別的交通信息、交通信息的特點(diǎn)以及常見的交通信息采集技術(shù)。了解交通信息的采集智能交通系統(tǒng)(ITS)所需要的信息是多方面、多層次的,其中一些信息并不能直接獲得,需要通過對(duì)一些基礎(chǔ)交通信息進(jìn)行處理才能得到。如對(duì)路網(wǎng)交通狀態(tài)的估計(jì)和對(duì)交通事件的估計(jì)等,這些交通信息就是通過對(duì)交通流數(shù)據(jù)、車輛速度、道路參數(shù)等數(shù)據(jù)進(jìn)行綜合處理之后才能得到。那么這些狀態(tài)估計(jì)信息是否能夠得到、是否能夠滿足實(shí)際應(yīng)用的要求,在很大程度上取決于那些實(shí)時(shí)采集上來的基礎(chǔ)交通信息是否可靠、準(zhǔn)確和及時(shí)。“基礎(chǔ)”一般意義上講是建筑物的根基,也可以理解是一個(gè)系統(tǒng)的最根本或最起點(diǎn)的部分,是系統(tǒng)中其他部分的支撐。交通信息的分類與特點(diǎn)基礎(chǔ)是否堅(jiān)固決定著一個(gè)系統(tǒng)是否穩(wěn)定和可靠?;A(chǔ)交通信息應(yīng)該是智能交通系統(tǒng)里最基本、最直接的數(shù)據(jù),基礎(chǔ)交通信息的來源、質(zhì)量和內(nèi)容等在很大程度上決定了交通信息處理系統(tǒng)的效率和效果。基礎(chǔ)交通信息是交通管理者和交通參與者為了更好地管理交通、更好地利用交通資源而采集的交通信息。它是交通信息系統(tǒng)的基本數(shù)據(jù)來源,反映交通系統(tǒng)的基本屬性。確切地說,基礎(chǔ)交通信息是通過各種渠道采集到的未經(jīng)過加工的交通參數(shù)、路網(wǎng)參數(shù)等數(shù)據(jù)。交通信息管理系統(tǒng)可以根據(jù)不同用戶的不同要求對(duì)基礎(chǔ)交通信息進(jìn)行加工處理,生成對(duì)用戶有決策價(jià)值的交通信息。交通信息的分類與特點(diǎn)基礎(chǔ)交通信息按照其變化的頻率不同可以大致分成靜態(tài)基礎(chǔ)交通信息和動(dòng)態(tài)基礎(chǔ)交通信息兩大類。靜態(tài)基礎(chǔ)交通信息主要包括以下幾種。城市基礎(chǔ)地理信息(路網(wǎng)分布、功能小區(qū)的劃分、交叉口的布局、停車場(chǎng)分布、交通樞紐的布局、城市基礎(chǔ)交通設(shè)施信息等)。城市道路網(wǎng)基礎(chǔ)信息(道路技術(shù)等級(jí)、長(zhǎng)度、寬度、車道數(shù)、收費(fèi)、立交連接方式等)。各種車輛保有量信息(包括分區(qū)域、分時(shí)間、分車種車輛保有量信息等)。交通管理信息,如單向行使、禁止左轉(zhuǎn)、限制進(jìn)入(分時(shí)間限制進(jìn)入管制和空間限制進(jìn)入管制)、道路施工信息等。交通信息的分類與特點(diǎn)動(dòng)態(tài)基礎(chǔ)交通信息主要包括以下幾種。交通流狀態(tài)特征信息(如車流量、速度、密度等)。交通緊急事件信息(各種途徑得到的事件信息,包括路面檢測(cè)器信息、人工報(bào)告信息等)。在途車輛及駕駛員的實(shí)時(shí)信息(如各種車輛定位信息等)。環(huán)境狀況信息(大氣狀況、污染狀況信息,為出行計(jì)劃提供選擇條件)。交通動(dòng)態(tài)控制管理信息等。不論是靜態(tài)還是動(dòng)態(tài)基礎(chǔ)交通信息都是ITS不可缺少的信息來源。交通信息的分類與特點(diǎn)動(dòng)態(tài)交通信息的采集和處理是智能交通研究的重點(diǎn),也是信息技術(shù)在ITS應(yīng)用的基礎(chǔ)。動(dòng)態(tài)交通信息的采集方式、獲取手段、采集精度、采集成本等因素,對(duì)于實(shí)現(xiàn)ITS的各項(xiàng)功能非常重要。目前,國(guó)內(nèi)外正在研究先進(jìn)的交通信號(hào)控制系統(tǒng)、車路協(xié)同系統(tǒng)、無人駕駛系統(tǒng)等,都是利用交通信息的結(jié)果。按照信息論的觀點(diǎn),信息的價(jià)值主要在于它的決策價(jià)值,也就是說,信息對(duì)于人們做決策是有意義的,尤其是對(duì)管理者做出正確的決策是有價(jià)值的。如果信息不能對(duì)決策人的決策產(chǎn)生任何影響,那么它就不能被叫做信息。交通信息也是如此,它應(yīng)該對(duì)做出各方面、各層次的交通管理決策是有價(jià)值的。交通信息的分類與特點(diǎn)從這個(gè)角度來說,交通信息應(yīng)該具備以下表格的基本特征。交通信息的分類與特點(diǎn)基本特征概述準(zhǔn)確性對(duì)于交通信息而言,準(zhǔn)確性是尤其重要的。準(zhǔn)確的信息對(duì)正確的決策才有正面的影響,才有價(jià)值。而不準(zhǔn)確或不正確的信息不但對(duì)決策沒有價(jià)值,還會(huì)對(duì)決策產(chǎn)生負(fù)面的影響及時(shí)性及時(shí)的信息對(duì)做出正確的決策才是有意義的,而過時(shí)的信息對(duì)決策是無用的。比如,自適應(yīng)式交通信號(hào)控制周期的變化需要根據(jù)實(shí)時(shí)的交通流量等數(shù)據(jù)來進(jìn)行計(jì)算共享性交通信息是智能交通系統(tǒng)(ITS)中各子系統(tǒng)所需要的共同信息,因此,交通信息應(yīng)該可以為各子系統(tǒng)所利用,這就要求交通信息具有統(tǒng)一的數(shù)據(jù)標(biāo)準(zhǔn),統(tǒng)一的采集格式和提供方式實(shí)時(shí)性和動(dòng)態(tài)性必須是實(shí)時(shí)的、動(dòng)態(tài)的采集交通信息的基本數(shù)據(jù),這樣的數(shù)據(jù)才能滿足交通管理與控制、車輛誘導(dǎo)、交通安全、交通監(jiān)控等功能的需要,才是有意義的信息海量性由于交通系統(tǒng)是一個(gè)復(fù)雜龐大的系統(tǒng),路網(wǎng)復(fù)雜,再加上實(shí)時(shí)、動(dòng)態(tài)的采集、處理、傳輸、發(fā)布的要求,所以數(shù)據(jù)采集量、傳輸量、處理量、發(fā)布量都非常龐大1常見的信息采集技術(shù)目錄了解交通信息的采集2交通信息是交通數(shù)據(jù)分析的重要前提,不同的信息采集方式得到的數(shù)據(jù)也大相徑庭。常見的交通信息采集技術(shù)有地感線圈傳感器、圖像傳感器、微波雷達(dá)傳感器、地磁傳感器等。常見的交通信息采集技術(shù)地感線圈是一種基于電磁感應(yīng)原理的車輛檢測(cè)方式,可以檢測(cè)交通流量、占有率、速度等交通數(shù)據(jù)。在路面挖出圓形或矩形的溝槽中埋入導(dǎo)線,構(gòu)成環(huán)形地感線圈,并且通以一定的工作電流形成一個(gè)電磁場(chǎng)。車輛具有鐵磁性質(zhì),通過或停留在線圈上時(shí)切割磁通線,線圈的電感量改變,使得振蕩電路中的振蕩頻率和相位也發(fā)生相應(yīng)大小的改變。通過變化量可以感知車輛的通過,通過信號(hào)產(chǎn)生和結(jié)束的時(shí)間間隔來測(cè)量汽車的速度。地磁線傳感器圖像檢測(cè)類傳感器普遍安裝于車輛速度較慢的進(jìn)出路口,利用視頻、計(jì)算機(jī)和通信等技術(shù)手段。實(shí)現(xiàn)對(duì)指定地點(diǎn)的交通流量、車輛速度、占有率、車輛是否違章等交通信息的采集。視頻檢測(cè)是由攝像機(jī)、圖像處理器和可以將采集到的圖像信息轉(zhuǎn)化為交通流信息的軟件構(gòu)成的系統(tǒng),通常架設(shè)在線桿或橋梁上、對(duì)連續(xù)視頻圖像進(jìn)行分析處理。一臺(tái)攝像機(jī)可觀測(cè)多車道,一個(gè)視頻檢測(cè)系統(tǒng)可同時(shí)處理多個(gè)攝像機(jī)傳輸?shù)臄?shù)據(jù)。圖像傳感器微波雷達(dá)檢測(cè)技術(shù)基于多普勒效應(yīng),傳感器發(fā)出的微波在碰到障礙物反射回來時(shí)由于物體的運(yùn)動(dòng)狀態(tài)不同而接收到不同頻率的反射波,通過頻率發(fā)生的變化量可以計(jì)算出車輛的信息。微波雷達(dá)傳感器配合高速攝像機(jī),一般安裝于車輛速度較快且方向單一的高速路上。也可以安裝在卡口處、橋梁上、隧道中和紅綠燈控制系統(tǒng)上對(duì)移動(dòng)的車輛進(jìn)行抓拍,采集車流量、車速、車型、占有率、是否超速等信息。微波雷達(dá)傳感器在一定區(qū)域內(nèi),地球的磁場(chǎng)強(qiáng)度基本是恒定的。當(dāng)有車輛進(jìn)入后,由于汽車是具備導(dǎo)磁能力的鐵磁性物質(zhì),所以該區(qū)域的磁場(chǎng)強(qiáng)度將會(huì)發(fā)生變化,這就是地磁傳感器的基本工作原理。不論汽車的運(yùn)動(dòng)狀態(tài)如何,汽車具有的鐵磁性物質(zhì)必定會(huì)影響地磁場(chǎng),再經(jīng)過信號(hào)分析,即可得到想要獲得的檢測(cè)目標(biāo)的相關(guān)信息。利用地磁傳感器可以進(jìn)行車輛有無、行駛方向、行駛速度、車輛型號(hào)、車流量等數(shù)據(jù)的采集。地磁傳感器了解數(shù)據(jù)的常見類型1半結(jié)構(gòu)化數(shù)據(jù)目錄結(jié)構(gòu)化數(shù)據(jù)2非結(jié)構(gòu)化數(shù)據(jù)3數(shù)據(jù)的類型多種多樣,按照數(shù)據(jù)的結(jié)構(gòu)可分為結(jié)構(gòu)化數(shù)據(jù)、半結(jié)構(gòu)化數(shù)據(jù)和非結(jié)構(gòu)化數(shù)據(jù)。結(jié)構(gòu)化數(shù)據(jù)的表現(xiàn)形式為二維的列表結(jié)構(gòu),嚴(yán)格地遵循數(shù)據(jù)格式與長(zhǎng)度規(guī)范,主要通過關(guān)系型數(shù)據(jù)庫進(jìn)行存儲(chǔ)和管理。結(jié)構(gòu)化數(shù)據(jù)由行和列構(gòu)成,通常每一行對(duì)應(yīng)一條記錄,每一列對(duì)應(yīng)一個(gè)屬性,同一個(gè)表中的數(shù)據(jù)具有相同的屬性集,即同一張表中所有記錄的列的個(gè)數(shù)是一致的。一個(gè)結(jié)構(gòu)化數(shù)據(jù)的例子,如下表所示。結(jié)構(gòu)化數(shù)字IDSexbodyTypecreatDate1男020160309表中展示了一條結(jié)構(gòu)化的汽車交易記錄,ID列表示該交易的編號(hào)為1,通常為數(shù)值型或字符型。Sex列表示該客戶的性別為男性,通常為字符型;bodyType列的0表示該車的車型是豪華轎車,為數(shù)值型。creatDate列表示該客戶的消費(fèi)時(shí)間為2016年3月9日,通常為字符型或時(shí)間型。結(jié)構(gòu)化數(shù)據(jù)主要應(yīng)用于各類業(yè)務(wù)系統(tǒng)的關(guān)系型數(shù)據(jù)庫中,其存儲(chǔ)需求包括高速存儲(chǔ)應(yīng)用需求、數(shù)據(jù)備份需求、數(shù)據(jù)共享需求以及數(shù)據(jù)容災(zāi)需求等。結(jié)構(gòu)化數(shù)字1半結(jié)構(gòu)化數(shù)據(jù)目錄結(jié)構(gòu)化數(shù)字2非結(jié)構(gòu)化數(shù)據(jù)3半結(jié)構(gòu)化數(shù)據(jù)是結(jié)構(gòu)化數(shù)據(jù)的一種特殊形式,是以樹或圖的數(shù)據(jù)結(jié)構(gòu)存儲(chǔ)的數(shù)據(jù),其結(jié)構(gòu)并不符合關(guān)系型數(shù)據(jù)庫或其他數(shù)據(jù)表的形式關(guān)聯(lián)起來的數(shù)據(jù)模型結(jié)構(gòu)。半結(jié)構(gòu)化數(shù)據(jù)包含相關(guān)標(biāo)記,用來分隔語義元素以及對(duì)記錄和字段進(jìn)行分層,這種結(jié)構(gòu)也被稱為自描述的結(jié)構(gòu)。半結(jié)構(gòu)化數(shù)據(jù)的數(shù)據(jù)庫是節(jié)點(diǎn)的集合,每個(gè)節(jié)點(diǎn)都是一個(gè)葉子節(jié)點(diǎn)或一個(gè)內(nèi)部節(jié)點(diǎn)。葉子節(jié)點(diǎn)與數(shù)據(jù)相關(guān),數(shù)據(jù)的類型可以是任意原子類型,如數(shù)字和字符串。每個(gè)內(nèi)部節(jié)點(diǎn)至少有一條外向的弧。每條弧都有一個(gè)標(biāo)簽,該標(biāo)簽指明弧開始處的節(jié)點(diǎn)與弧末端的節(jié)點(diǎn)之間的關(guān)系。半結(jié)構(gòu)化數(shù)據(jù)一個(gè)名為根的內(nèi)部節(jié)點(diǎn)沒有進(jìn)入的弧,它代表整個(gè)數(shù)據(jù)庫。每個(gè)節(jié)點(diǎn)都從根可達(dá)整個(gè)圖的結(jié)構(gòu)未必是一棵樹。常見的半結(jié)構(gòu)化數(shù)據(jù)格式有XML和JSON。一個(gè)XML文件中的記錄,可以看到兩條記錄的屬性個(gè)數(shù)是不一樣的。第一條記錄有name、age和gender三個(gè)屬性,而第二條記錄只有name和gender兩個(gè)屬性。半結(jié)構(gòu)化文件記錄的屬性個(gè)數(shù)是可以變動(dòng)的,這點(diǎn)與結(jié)構(gòu)化數(shù)據(jù)要求數(shù)據(jù)必須具有相同的屬性集不同,使得半結(jié)構(gòu)化數(shù)據(jù)具有更好的靈活性。半結(jié)構(gòu)化數(shù)據(jù)半結(jié)構(gòu)化數(shù)據(jù)包括郵件、HTML、報(bào)表、資源庫等,常見的應(yīng)用場(chǎng)景有郵件系統(tǒng)、WEB集群、教學(xué)資源庫和檔案系統(tǒng)等。這些應(yīng)用的存儲(chǔ)要求主要有數(shù)據(jù)存儲(chǔ)、數(shù)據(jù)備份、數(shù)據(jù)共享以及數(shù)據(jù)歸檔等。半結(jié)構(gòu)化數(shù)據(jù)1半結(jié)構(gòu)化數(shù)據(jù)目錄結(jié)構(gòu)化數(shù)字2非結(jié)構(gòu)化數(shù)據(jù)3非結(jié)構(gòu)化數(shù)據(jù)是數(shù)據(jù)結(jié)構(gòu)不規(guī)則或不完整,沒有預(yù)定義的數(shù)據(jù)模型,不方便用數(shù)據(jù)庫二維邏輯表來表現(xiàn)的數(shù)據(jù)。常見的非結(jié)構(gòu)化數(shù)據(jù)包括辦公文檔、文本、圖像、音頻、視頻等。非結(jié)構(gòu)化數(shù)據(jù)的格式非常多樣,標(biāo)準(zhǔn)也具有多樣性,在技術(shù)上非結(jié)構(gòu)化信息比結(jié)構(gòu)化信息更難標(biāo)準(zhǔn)化和理解。其存儲(chǔ)、檢索、發(fā)布以及利用需要更加智能化的IT技術(shù)。常見具體應(yīng)用有醫(yī)療影像系統(tǒng)、教育視頻點(diǎn)播、視頻監(jiān)控、地理信息系統(tǒng)、設(shè)計(jì)院、文件服務(wù)器(PDM/FTP)、媒體資源管理等。非結(jié)構(gòu)化數(shù)據(jù)非結(jié)構(gòu)化數(shù)據(jù)常見具體應(yīng)用有。醫(yī)療影像系統(tǒng)。教育視頻點(diǎn)播。視頻監(jiān)控。地理信息系統(tǒng)。設(shè)計(jì)院。文件服務(wù)器(PDM/FTP)。媒體資源管理等。非結(jié)構(gòu)化數(shù)據(jù)掌握數(shù)據(jù)的讀取方式1讀取文件數(shù)據(jù)目錄讀取數(shù)據(jù)庫數(shù)據(jù)2常見的數(shù)據(jù)儲(chǔ)存媒介有數(shù)據(jù)庫和文件,以下介紹如何讀取數(shù)據(jù)庫數(shù)據(jù)和文件數(shù)據(jù)。在生產(chǎn)環(huán)境中,絕大多數(shù)的數(shù)據(jù)都存儲(chǔ)在數(shù)據(jù)庫中。想要讀取數(shù)據(jù)庫中的數(shù)據(jù)需要先與數(shù)據(jù)庫建立連接。數(shù)據(jù)庫連接是分析工具與數(shù)據(jù)庫之間的通道,只有建立數(shù)據(jù)庫連接后,用戶才能對(duì)數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行操作。Python也需要與數(shù)據(jù)庫建立連接后才能讀取數(shù)據(jù)庫中的數(shù)據(jù),一個(gè)常用建立連接的方法為通過SQLAlchemy庫并配合相應(yīng)數(shù)據(jù)庫的Python連接工具。讀取數(shù)據(jù)庫數(shù)據(jù)不同的數(shù)據(jù)庫需要選擇對(duì)應(yīng)的連接工具,如MySQL數(shù)據(jù)庫需要安裝mysqlclient或pymysql庫,Oracle數(shù)據(jù)庫需要安裝cx_oracle庫。SQLAlchemy庫支持與MySQL、postgresql、Oracle、SQLServer和SQLite等主流數(shù)據(jù)庫建立連接。建立連接時(shí)需要提供數(shù)據(jù)庫產(chǎn)品名、連接工具名、用戶名、密碼、數(shù)據(jù)庫IP地址、數(shù)據(jù)庫端口號(hào)、數(shù)據(jù)庫名稱。同時(shí)還需要注意數(shù)據(jù)庫中使用的數(shù)據(jù)編碼,使用錯(cuò)誤的編碼會(huì)導(dǎo)致亂碼問題。使用SQLAlchemy連接MySQL數(shù)據(jù)庫,與數(shù)據(jù)庫進(jìn)行連接后,可以與數(shù)據(jù)庫進(jìn)行交互,對(duì)數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行操作。讀取數(shù)據(jù)庫數(shù)據(jù)使用SQLAlchemy連接MySQL數(shù)據(jù)庫,與數(shù)據(jù)庫進(jìn)行連接后,可以與數(shù)據(jù)庫進(jìn)行交互,對(duì)數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行操作。常見的操作包括讀取、存儲(chǔ)以及增、刪、改、查等,通過pandas庫對(duì)數(shù)據(jù)庫進(jìn)行讀取和存儲(chǔ)操作,得到結(jié)果。讀取數(shù)據(jù)庫數(shù)據(jù)1讀取文件數(shù)據(jù)目錄讀取數(shù)據(jù)庫數(shù)據(jù)2另一種常見的數(shù)據(jù)載體是文本文件,文本文件是一種由若干行字符構(gòu)成的計(jì)算機(jī)文件,它是一種典型的順序文件。常見的有TXT文件和CSV文件,這兩種文件的主要區(qū)別是TXT文件使用空格分隔,而CSV是一種逗號(hào)分隔的文件格式。因?yàn)镃SV文件分隔符不一定是逗號(hào),所以又被稱為字符分隔文件,文件以純文本形式存儲(chǔ)表格數(shù)據(jù)(數(shù)字和文本)。CSV是一種通用、相對(duì)簡(jiǎn)單的文件格式,最廣泛的應(yīng)用是在程序之間轉(zhuǎn)移表格數(shù)據(jù),而這些程序本身是在不兼容的格式上進(jìn)行操作的(往往是私有的或無規(guī)范的格式)。讀取文件數(shù)據(jù)因?yàn)榇罅砍绦蚨贾С諧SV或其變體,所以可以作為大多數(shù)程序的輸入和輸出格式。CSV文件根據(jù)其定義也是一種文本文件,在數(shù)據(jù)讀取過程中可以使用文本文件的讀取函數(shù)對(duì)CSV文件進(jìn)行讀取。使用read_table和read_csv函數(shù)讀取CSV文件,讀取文件時(shí)需要注意編碼問題,常用的編碼有utf-8、utf-16、gbk、gb2312、gb18030等。如果編碼指定錯(cuò)誤,那么數(shù)據(jù)將無法讀取,IPython解釋器會(huì)報(bào)解析錯(cuò)誤。使用不同的參數(shù)讀取二手車售價(jià)表,除了TXT文件和CSV文件外,Excel文件也是常見的需要讀取的數(shù)據(jù)文件種類。讀取文件數(shù)據(jù)Excel可以進(jìn)行各種數(shù)據(jù)的處理、統(tǒng)計(jì)分析和輔助決策操作,被廣泛地應(yīng)用于管理、統(tǒng)計(jì)財(cái)經(jīng)和金融等眾多領(lǐng)域。其文件格式依照程序版本的不同分為以下兩種。MicrosoftOfficeExcel2007之前的版本(不包括2007)默認(rèn)保存的文件名后綴為.xls。MicrosoftOfficeExcel2007之后的版本默認(rèn)保存的文件名后綴為.xlsx。通過pandas庫讀取xlsx格式的倫敦自行車租賃表,得到結(jié)果。讀取文件數(shù)據(jù)本章主要對(duì)常見的數(shù)據(jù)來源進(jìn)行了簡(jiǎn)要的介紹,常見的數(shù)據(jù)來源主要分為直接來源和間接來源兩種。大致描述了交通信息的采集,如交通信息的分類和特點(diǎn)以及交通信息的采集技術(shù)。還介紹了常見的數(shù)據(jù)類型,包括結(jié)構(gòu)化、半結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù)。最后介紹了數(shù)據(jù)的讀取方式,主要包括讀取數(shù)據(jù)庫數(shù)據(jù)和讀取文件數(shù)據(jù)。小結(jié)第3章數(shù)據(jù)探索10-8月-231數(shù)據(jù)特征分析目錄數(shù)據(jù)質(zhì)量分析2Python主要數(shù)據(jù)探索函數(shù)3統(tǒng)計(jì)作圖函數(shù)4數(shù)據(jù)質(zhì)量分析數(shù)據(jù)質(zhì)量分析是數(shù)據(jù)預(yù)處理的前提,是數(shù)據(jù)挖掘分析結(jié)論有效性和準(zhǔn)確性的基礎(chǔ),其主要任務(wù)是檢查原始數(shù)據(jù)中是否存在臟數(shù)據(jù),臟數(shù)據(jù)一般是指不符合要求,以及不能直接進(jìn)行相應(yīng)分析的數(shù)據(jù),在常見的數(shù)據(jù)挖掘工作中,臟數(shù)據(jù)包括:
缺失值
異常值
不一致的值
重復(fù)數(shù)據(jù)及含有特殊符號(hào)(如#、¥、*)的數(shù)據(jù)本小節(jié)將主要對(duì)數(shù)據(jù)中的缺失值、異常值和一致性進(jìn)行分析。數(shù)據(jù)質(zhì)量分析——缺失值產(chǎn)生的原因有些信息暫時(shí)無法獲取,或者獲取信息的代價(jià)太大。有些信息是被遺漏的??赡苁且?yàn)檩斎霑r(shí)認(rèn)為不重要、忘記填寫或?qū)?shù)據(jù)理解錯(cuò)誤等一些人為因素而遺漏,也可能是由于數(shù)據(jù)采集設(shè)備的故障、存儲(chǔ)介質(zhì)的故障、傳輸媒體的故障等機(jī)械原因而丟失。屬性值不存在。在某些情況下,缺失值并不意味著數(shù)據(jù)有錯(cuò)誤,對(duì)一些對(duì)象來說屬性值是不存在的,如一個(gè)未婚者的配偶姓名、一個(gè)兒童的固定收入狀況等。數(shù)據(jù)質(zhì)量分析——缺失值的影響數(shù)據(jù)挖掘建模將丟失大量的有用信息數(shù)據(jù)挖掘模型所表現(xiàn)出的不確定性更加顯著,模型中蘊(yùn)涵的確定性成分更難把握包含空值的數(shù)據(jù)會(huì)使挖掘建模過程陷入混亂,導(dǎo)致不可靠的輸出數(shù)據(jù)質(zhì)量分析——缺失值分析對(duì)缺失值做簡(jiǎn)單統(tǒng)計(jì)分析統(tǒng)計(jì)缺失值的變量個(gè)數(shù)統(tǒng)計(jì)每個(gè)變量的未缺失數(shù)統(tǒng)計(jì)變量的缺失數(shù)及缺失率數(shù)據(jù)質(zhì)量分析——異常值分析異常值分析是檢驗(yàn)數(shù)據(jù)是否有錄入錯(cuò)誤以及含有不合常理的數(shù)據(jù)。忽視異常值的存在是十分危險(xiǎn)的,不加剔除地把異常值包括進(jìn)數(shù)據(jù)的計(jì)算分析過程中,對(duì)結(jié)果會(huì)帶來不良影響;重視異常值的出現(xiàn),分析其產(chǎn)生的原因,常常成為發(fā)現(xiàn)問題進(jìn)而改進(jìn)決策的契機(jī)。異常值是指樣本中的個(gè)別值,其數(shù)值明顯偏離其余的觀測(cè)值。異常值也稱為離群點(diǎn),異常值的分析也稱為離群點(diǎn)的分析。異常值分析方法主要有:簡(jiǎn)單統(tǒng)計(jì)量分析、3原則、箱型圖分析。異常值分析——簡(jiǎn)單統(tǒng)計(jì)分析可以先做一個(gè)描述性統(tǒng)計(jì),進(jìn)而查看哪些數(shù)據(jù)是不合理的。需要的統(tǒng)計(jì)量主要是最大值和最小值,判斷這個(gè)變量中的數(shù)據(jù)是不是超出了合理的范圍,如身高的最大值為5米,則該變量的數(shù)據(jù)存在異常。異常值分析——3原則如果數(shù)據(jù)服從正態(tài)分布,在3原則下,異常值被定義為一組測(cè)定值中與平均值的偏差超過三倍標(biāo)準(zhǔn)差的值。在正態(tài)分布的假設(shè)下,距離平均值3之外的值出現(xiàn)的概率為
,屬于極個(gè)別的小概率事件。異常值分析——箱型圖分析箱形圖依據(jù)實(shí)際數(shù)據(jù)繪制,不需要事先假定數(shù)據(jù)服從特定的分布形式,沒有對(duì)數(shù)據(jù)作任何限制性要求,它只是真實(shí)直觀地表現(xiàn)數(shù)據(jù)分布的本來面貌;另一方面,箱形圖判斷異常值的標(biāo)準(zhǔn)以四分位數(shù)和四分位距為基礎(chǔ),四分位數(shù)具有一定的魯棒性:多達(dá)25%的數(shù)據(jù)可以變得任意遠(yuǎn)而不會(huì)很大地?cái)_動(dòng)四分位數(shù),所以異常值不能對(duì)這個(gè)標(biāo)準(zhǔn)施加影響,箱形圖識(shí)別異常值的結(jié)果比較客觀。由此可見,箱形圖在識(shí)別異常值方面有一定的優(yōu)越性。一致性分析數(shù)據(jù)不一致性是指數(shù)據(jù)的矛盾性、不相容性。直接對(duì)不一致的數(shù)據(jù)進(jìn)行挖掘,可能會(huì)產(chǎn)生與實(shí)際相違背的挖掘結(jié)果。在數(shù)據(jù)挖掘過程中,不一致數(shù)據(jù)的產(chǎn)生主要發(fā)生在數(shù)據(jù)集成的過程中,可能是由于被挖掘數(shù)據(jù)是來自于從不同的數(shù)據(jù)源、重復(fù)存放的數(shù)據(jù)未能進(jìn)行
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度文化旅游區(qū)場(chǎng)地承包經(jīng)營(yíng)與開發(fā)合同模板3篇
- 2025年度現(xiàn)代化廠房施工建設(shè)合同(新版)4篇
- 2024年貨物買賣合同跨境電商條款
- 2025年度叉車租賃與租賃物租賃期限續(xù)簽合同4篇
- 2024贊助合同書范本:展覽贊助合作協(xié)議3篇
- 2024順德汽車客運(yùn)站租賃合同的應(yīng)急處理程序
- 2025年廠房環(huán)境治理與物業(yè)管理合同3篇
- 專業(yè)化小麥種子采購(gòu)及營(yíng)銷合作合同書版B版
- 2025年度跨境電商產(chǎn)品銷售合同范本三4篇
- 專業(yè)發(fā)展培訓(xùn)協(xié)作合同樣本版B版
- 小學(xué)一年級(jí)20以內(nèi)加減法混合運(yùn)算3000題(已排版)
- 智慧工廠數(shù)字孿生解決方案
- 病機(jī)-基本病機(jī) 邪正盛衰講解
- 品管圈知識(shí) 課件
- 非誠(chéng)不找小品臺(tái)詞
- 2024年3月江蘇省考公務(wù)員面試題(B類)及參考答案
- 患者信息保密法律法規(guī)解讀
- 老年人護(hù)理風(fēng)險(xiǎn)防控PPT
- 充電樁采購(gòu)安裝投標(biāo)方案(技術(shù)方案)
- 醫(yī)院科室考勤表
- 鍍膜員工述職報(bào)告
評(píng)論
0/150
提交評(píng)論