機(jī)器學(xué)習(xí)原理與實(shí)戰(zhàn)PPT完整全套教學(xué)課件_第1頁
機(jī)器學(xué)習(xí)原理與實(shí)戰(zhàn)PPT完整全套教學(xué)課件_第2頁
機(jī)器學(xué)習(xí)原理與實(shí)戰(zhàn)PPT完整全套教學(xué)課件_第3頁
機(jī)器學(xué)習(xí)原理與實(shí)戰(zhàn)PPT完整全套教學(xué)課件_第4頁
機(jī)器學(xué)習(xí)原理與實(shí)戰(zhàn)PPT完整全套教學(xué)課件_第5頁
已閱讀5頁,還剩693頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

機(jī)器學(xué)習(xí)概述14-6月-23第1章機(jī)器學(xué)習(xí)概述第2章數(shù)據(jù)準(zhǔn)備第3章特征工程第4章有監(jiān)督學(xué)習(xí)(1)第4章有監(jiān)督學(xué)習(xí)(2)第5章無監(jiān)督學(xué)習(xí)第6章智能推薦第7章市財政收入分析第8章?基于非侵入式電力負(fù)荷監(jiān)測與分解的電力分析第9章航空公司客戶價值分析第10章廣電大數(shù)據(jù)營銷推薦(1)第10章廣電大數(shù)據(jù)營銷推薦(2)第11章基于TipDM數(shù)據(jù)挖掘建模平臺實(shí)現(xiàn)航空公司客戶價值分析全套PPT課件1機(jī)器學(xué)習(xí)通用流程目錄機(jī)器學(xué)習(xí)簡介2Python機(jī)器學(xué)習(xí)工具庫簡介3機(jī)器學(xué)習(xí)(MachineLearning)是一個研究計(jì)算機(jī)怎樣模擬或?qū)崿F(xiàn)人類的學(xué)習(xí)行為,它以獲取新的知識或技能,重新組織已有的知識結(jié)構(gòu)使之不斷改善自身性能的方向。機(jī)器學(xué)習(xí)簡介目前關(guān)于機(jī)器學(xué)習(xí)的主流定義有以下3種。機(jī)器學(xué)習(xí)是一門人工智能的科學(xué),該領(lǐng)域的主要研究對象是人工智能,特別是如何在經(jīng)驗(yàn)學(xué)習(xí)中改善具體算法的性能。機(jī)器學(xué)習(xí)是對能通過經(jīng)驗(yàn)自動改進(jìn)的計(jì)算機(jī)算法的研究。機(jī)器學(xué)習(xí)是用數(shù)據(jù)或以往的經(jīng)驗(yàn),以此優(yōu)化計(jì)算機(jī)程序的性能標(biāo)準(zhǔn)。機(jī)器學(xué)習(xí)的概念對于機(jī)器學(xué)習(xí)的概念更為具體的解釋為,計(jì)算機(jī)程序通過學(xué)習(xí),將無序的數(shù)據(jù)轉(zhuǎn)換為有用的信息,進(jìn)而達(dá)成程序能夠自行解決實(shí)際問題的目的。該學(xué)習(xí)過程通常不需要人類對計(jì)算機(jī)程序下達(dá)指示,由程序獨(dú)立完成學(xué)習(xí)過程。以一個能自動識別鳥類的計(jì)算機(jī)程序?yàn)槔?,程序通過學(xué)習(xí)輸入的已知種類的鳥類的體重、翼長、是否有腳蹼、喙的顏色和后背顏色等數(shù)據(jù),將這些信息轉(zhuǎn)換為模式進(jìn)行記憶,最終只需要輸入未知類型的鳥類的對應(yīng)的數(shù)據(jù),便可自動識別該鳥類的類型。整個學(xué)習(xí)過程需要人類進(jìn)行干涉的部分僅有學(xué)習(xí)時提供的鳥類樣本數(shù)據(jù),其余部分都由程序自行完成。機(jī)器學(xué)習(xí)的概念伴隨著人工智能技術(shù)的發(fā)展與普及,作為人工智能核心的機(jī)器學(xué)習(xí)也得到了廣泛的應(yīng)用。機(jī)器學(xué)習(xí)的應(yīng)用已經(jīng)涵蓋金融、交通、電力、教育、通信、電子商務(wù)、制造、醫(yī)療和農(nóng)業(yè)等多個領(lǐng)域。機(jī)器學(xué)習(xí)已在不知不覺中影響人們的生產(chǎn)與生活。常見的十個機(jī)器學(xué)習(xí)實(shí)際應(yīng)用如表所示。機(jī)器學(xué)習(xí)的應(yīng)用領(lǐng)域應(yīng)用領(lǐng)域應(yīng)用方向簡介金融智能投顧在投資個人或者機(jī)構(gòu)提供投資的偏好、收益目標(biāo)以及承擔(dān)的風(fēng)險水平等要求的基礎(chǔ)上,進(jìn)行智能核算和投資組合優(yōu)化,從而提供最符合用戶需求的投資參考風(fēng)險管控在收集和分析消費(fèi)者個人相關(guān)信息的基礎(chǔ)上,使用機(jī)器學(xué)習(xí)技術(shù)構(gòu)建風(fēng)險預(yù)測模型,進(jìn)而能夠確定風(fēng)險的程度。在貸款業(yè)務(wù)中,運(yùn)用機(jī)器學(xué)習(xí)技術(shù),能夠在短至幾秒的時間內(nèi)完成審批任務(wù),并得出審批結(jié)果交通智能調(diào)度能夠智能化集中協(xié)調(diào)統(tǒng)一管理線網(wǎng)。同時也能進(jìn)一步提高城市管理的自動化程度,可通過開放數(shù)據(jù)平臺訪問按需服務(wù),同時與共享汽車、單車、出租、公交等交通終端并網(wǎng),可查詢實(shí)時信息及重大事件智能控制能夠模擬人的行為來實(shí)施對列車和列車群的管理。通過車載電腦來控制列車輔助和自動駕駛,或者通過調(diào)度中心智能工作站對列車進(jìn)行控制完成行車計(jì)劃、運(yùn)營管理和信息服務(wù)等功能機(jī)器學(xué)習(xí)的應(yīng)用領(lǐng)域應(yīng)用領(lǐng)域應(yīng)用方向簡介電力電力設(shè)備狀態(tài)監(jiān)測使用機(jī)器學(xué)習(xí)技術(shù),在設(shè)備本身運(yùn)行狀態(tài)相關(guān)的溫度、濕度、壓力、聲音、振動、頻率等數(shù)據(jù)的基礎(chǔ)上,對歷史數(shù)據(jù)中的模式進(jìn)行篩選,構(gòu)建系統(tǒng)正常運(yùn)行的數(shù)據(jù)模型,可以實(shí)現(xiàn)設(shè)備狀態(tài)的自動監(jiān)測電力設(shè)備缺陷檢測通過采集設(shè)備運(yùn)行過程中的圖像信息,然后使用深度學(xué)習(xí)、圖像分類、目標(biāo)檢測相關(guān)的算法實(shí)現(xiàn)設(shè)備缺陷類型識別、設(shè)備缺陷位置檢測教育智能教學(xué)管理通過智能化教學(xué)管理系統(tǒng),將教學(xué)管理要素中的人事、科研、后勤等有機(jī)結(jié)合,實(shí)現(xiàn)共享與動態(tài)更新教學(xué)管理信息,從而實(shí)現(xiàn)智能化管理,保證對突發(fā)事件的即時響應(yīng)個性化輔導(dǎo)通過分析學(xué)生的基礎(chǔ)信息數(shù)據(jù)、行為數(shù)據(jù)和學(xué)習(xí)數(shù)據(jù),智能生成個性化學(xué)習(xí)路徑、提供個性化學(xué)習(xí)支持服務(wù)、推送個性化學(xué)習(xí)資源以及進(jìn)行智能測評與及時反饋,幫助學(xué)生更好地進(jìn)行自主學(xué)習(xí)通信質(zhì)量監(jiān)測目前通信行業(yè)已經(jīng)逐漸將網(wǎng)絡(luò)運(yùn)營與維護(hù)的相關(guān)數(shù)據(jù)利用機(jī)器學(xué)習(xí)技術(shù)和大數(shù)據(jù)平臺進(jìn)行分析,從而便于更好地掌握網(wǎng)絡(luò)情況,開展管理工作安全防護(hù)將機(jī)器學(xué)習(xí)技術(shù)應(yīng)用于網(wǎng)絡(luò)防護(hù)當(dāng)中,建立起一個安心的智能防護(hù)體系,保護(hù)人們的信息安全,對于網(wǎng)絡(luò)攻擊的監(jiān)測程度會有很大程度的提高。應(yīng)用了機(jī)器學(xué)習(xí)技術(shù)的智能防護(hù)體系還能對信息數(shù)據(jù)進(jìn)行備份工作,讓網(wǎng)絡(luò)主動進(jìn)行安全防護(hù),為保護(hù)網(wǎng)絡(luò)信息安全提供一個安心的屏障電子商務(wù)商品智能推薦在算法框架基礎(chǔ)之上的一套完整的推薦系統(tǒng),可以實(shí)現(xiàn)海量數(shù)據(jù)集的深度學(xué)習(xí),分析消費(fèi)者的行為,并且預(yù)測哪些產(chǎn)品可能會吸引消費(fèi)者,從而為他們推薦商品,這有效降低了消費(fèi)者的選擇成本客戶分析根據(jù)歷史合作客戶維度、銷售數(shù)據(jù)等進(jìn)行分析、構(gòu)建預(yù)測模型,為企業(yè)自動推薦更精準(zhǔn)的客戶。隨著銷售數(shù)據(jù)庫中銷售數(shù)據(jù)的增加,算法的自我學(xué)習(xí)能力會提升推薦的有效度,幫助企業(yè)逐步完善更具競爭力及利潤空間的戰(zhàn)略地圖,更科學(xué)、合理地規(guī)劃來年需要重點(diǎn)攻克的行業(yè)及提前洞察客戶需求,告別過去傳統(tǒng)、簡單地根據(jù)業(yè)績選擇行業(yè)的落后銷售模式機(jī)器學(xué)習(xí)的應(yīng)用領(lǐng)域應(yīng)用領(lǐng)域應(yīng)用方向簡介制造智能測量一般的專用測量裝置和系統(tǒng)在處理輸入信號時,普遍采用建立確定的數(shù)學(xué)模型并使用規(guī)范的數(shù)學(xué)算法,但由于算法的復(fù)雜性和難度,導(dǎo)致在某些情況下無法對問題進(jìn)行規(guī)范化的說明和表達(dá),如測量結(jié)果的有效性驗(yàn)證、特定環(huán)境下最適宜量程的自動選擇和零點(diǎn)的自動校準(zhǔn)等。應(yīng)用機(jī)器學(xué)習(xí)技術(shù)可對當(dāng)前和歷史數(shù)據(jù)信息進(jìn)行智能分析與處理,從不同層次上對測量過程進(jìn)行抽象,提高現(xiàn)有測量系統(tǒng)的性能和效率,擴(kuò)展傳統(tǒng)測量的功能智能管理利用知識庫、專家系統(tǒng)和決策支持系統(tǒng)等手段,可以建立智能管理應(yīng)用平臺,綜合分析各類內(nèi)部和外部的動態(tài)數(shù)據(jù),參考已有的知識與規(guī)則,幫助企業(yè)管理層提供及時的決策支持,減少因決策失誤導(dǎo)致的各種風(fēng)險與浪費(fèi),提高企業(yè)綜合競爭力醫(yī)療影像識別通過計(jì)算機(jī)視覺技術(shù)對醫(yī)療影像進(jìn)行快速讀片和智能診斷,其應(yīng)用主要包括圖像識別和數(shù)據(jù)訓(xùn)練。首先對影像進(jìn)行預(yù)處理,定位病變位置;其次是圖像分割和特征提取,對病變影像進(jìn)一步量化,提取病變的大小、密度、形態(tài)特征等;最后是匹配和聚類,利用深度學(xué)習(xí),用特定的學(xué)習(xí)型算法,將特征向量映射為診斷決策,比如是良性病變還是惡性病變輔助診斷通過計(jì)算機(jī)學(xué)習(xí)醫(yī)療知識,模擬醫(yī)生的思維和診斷推理,給出可靠的診斷和治療方案。輔診能力基于大數(shù)據(jù)硬件和神經(jīng)網(wǎng)絡(luò)芯片等計(jì)算能力,對醫(yī)療領(lǐng)域大量數(shù)據(jù)進(jìn)行系統(tǒng)訓(xùn)練和優(yōu)化,運(yùn)用自然語言處理、認(rèn)知技術(shù)、自動推理、機(jī)器學(xué)習(xí)、信息檢索等技術(shù),實(shí)現(xiàn)自動問答、掛號、臨床決策、診療決策等全方位的智能診療農(nóng)業(yè)土壤成分檢測分析可對土壤傳感器收集到的可溶性鹽含量、地表水分蒸發(fā)量、土壤濕度等數(shù)據(jù)通過人工神經(jīng)網(wǎng)絡(luò)進(jìn)行預(yù)測分析,決策各類農(nóng)作物所適宜的最佳土壤,也可預(yù)測土壤表層的黏土含量,通過深度加權(quán)方法從土壤傳感器獲取的信號中提取土壤表層地質(zhì)信息,再使用人工神經(jīng)網(wǎng)絡(luò)預(yù)測土壤表層的黏土含量農(nóng)田灌溉用水分析對農(nóng)作物用水需求量進(jìn)行分析,可以科學(xué)地指導(dǎo)農(nóng)戶灌溉,保證作物有水可依,極大程度減輕洪澇或干旱災(zāi)害對作物造成的不良影響。此外,智能灌溉系統(tǒng)與傳感器、灌溉設(shè)備連接后,可對土壤含水量進(jìn)行實(shí)時監(jiān)控,據(jù)此選擇最合適的灌溉模式進(jìn)行作物灌溉1機(jī)器學(xué)習(xí)通用流程目錄機(jī)器學(xué)習(xí)簡介2Python機(jī)器學(xué)習(xí)工具庫簡介3一個完整的機(jī)器學(xué)習(xí)模型訓(xùn)練的過程可拆分為諸多個步驟,包括前期的目標(biāo)分析、數(shù)據(jù)準(zhǔn)備、特征工程,中期的模型訓(xùn)練與調(diào)優(yōu)以及后期的性能度量與模型選擇,機(jī)器學(xué)習(xí)的通用流程如下圖所示。機(jī)器學(xué)習(xí)通用流程在軟件工程中,需求分析是指在創(chuàng)建系統(tǒng)或產(chǎn)品前,確定新系統(tǒng)的目的、范圍、定義和功能的步驟。機(jī)器學(xué)習(xí)中的需求分析是指確定機(jī)器學(xué)習(xí)的使用場景,需要解決的業(yè)務(wù)和技術(shù)問題。機(jī)器學(xué)習(xí)中的需求分析與軟件工程的中的需求分析不同點(diǎn)在于,軟件工程的需求分析注重實(shí)現(xiàn)某一個功能,而機(jī)器學(xué)習(xí)的需求更注重于解決某一個具體問題。機(jī)器學(xué)習(xí)中的需求分析需要分析想要解決問題需要達(dá)成的具體目標(biāo),例如,要識別郵件是否是垃圾郵件,需要解決如何區(qū)分垃圾郵件與正常郵件的具體問題,需要達(dá)成的具體目標(biāo)就是從一堆未知的郵件中,準(zhǔn)確地尋找出其中的垃圾郵件,剩下的便是正常的郵件。同時還需要分析郵件系統(tǒng)可提供的信息,如每封郵件可以提供的信息包含:發(fā)件人、發(fā)件郵箱地址、郵件標(biāo)題等等,需要制定一個依據(jù)此類信息來解決垃圾郵件識別的初步構(gòu)想,從而確定需要收集與分析的數(shù)據(jù)。目標(biāo)分析1.需求分析目標(biāo)分析是機(jī)器學(xué)習(xí)前期準(zhǔn)備的一個重要步驟,目標(biāo)分析包含需求分析與類型分析兩種類型分析是選定機(jī)器學(xué)習(xí)使用的算法種類的重要步驟,為之后的算法選取與模型訓(xùn)練起到鋪墊作用。機(jī)器學(xué)習(xí)的類型按訓(xùn)練方式可分為有監(jiān)督學(xué)習(xí)、無監(jiān)督學(xué)習(xí)和半監(jiān)督學(xué)習(xí)。有監(jiān)督學(xué)習(xí)有監(jiān)督學(xué)習(xí)的算法能夠從帶有標(biāo)記的訓(xùn)練資料中學(xué)習(xí)或建立一種知識,依據(jù)此知識對新的實(shí)例進(jìn)行推測。垃圾郵件識別是一個典型的有監(jiān)督學(xué)習(xí)問題,人們會對以往已經(jīng)確認(rèn)是垃圾郵件的郵件打上標(biāo)記,而機(jī)器學(xué)習(xí)算法將會依賴這些標(biāo)記進(jìn)行學(xué)習(xí)。有監(jiān)督學(xué)習(xí)可細(xì)分為分類與回歸,分類的目標(biāo)是預(yù)測一批未知類型的對象的類別,典型的分類問題有垃圾郵件識別、惡意軟件檢測等,這類問題需要識別具體的對象的具體類別。回歸則是預(yù)測某一事物未來的發(fā)展變化狀況,典型的回歸問題有股票價格預(yù)測、未來幾天的氣溫變化預(yù)測等,這類問題需要預(yù)測對象的未來某一具體數(shù)值屬性的變化。目標(biāo)分析2.類型分析無監(jiān)督學(xué)習(xí)無監(jiān)督學(xué)習(xí)與有監(jiān)督學(xué)習(xí)相反,訓(xùn)練資料中沒有預(yù)設(shè)的標(biāo)記,需要算法自行從訓(xùn)練資料中建立一種知識??蛻舴秩菏且粋€典型的無監(jiān)督學(xué)習(xí)問題,需要分群的客戶不具備具體的類別等參考信息,僅可通過相似的特征進(jìn)行分群,如年齡、性別、消費(fèi)行為等,按具體的屬性的相似度進(jìn)行分群,并且結(jié)果具有不確定性和非唯一性。目標(biāo)分析半監(jiān)督學(xué)習(xí)半監(jiān)督學(xué)習(xí)介于非監(jiān)督學(xué)習(xí)和監(jiān)督學(xué)習(xí)之間,半監(jiān)督學(xué)習(xí)使用部分標(biāo)記的訓(xùn)練資料進(jìn)行訓(xùn)練,這些訓(xùn)練資料由少量帶有標(biāo)記的數(shù)據(jù)和大量不帶標(biāo)記的數(shù)據(jù)構(gòu)成。標(biāo)記數(shù)據(jù)的成本使得標(biāo)記全部數(shù)據(jù)不太現(xiàn)實(shí),而獲取未標(biāo)記的數(shù)據(jù)相對便宜。在這種情況下,半監(jiān)督學(xué)習(xí)可能具有很大的實(shí)用價值。許多機(jī)器學(xué)習(xí)研究人員發(fā)現(xiàn),將未標(biāo)記數(shù)據(jù)與少量標(biāo)記數(shù)據(jù)結(jié)合使用可以顯著提高學(xué)習(xí)準(zhǔn)確性。目標(biāo)分析數(shù)據(jù)收集是數(shù)據(jù)準(zhǔn)備最初始的步驟,收集的數(shù)據(jù)的種類將直接影響模型訓(xùn)練的結(jié)果,其中需要特別注意樣本數(shù)據(jù)的偏差狀況,實(shí)際生產(chǎn)生活中的數(shù)據(jù)往往并不是均勻分布的,如果無視樣本數(shù)據(jù)分布的偏差而直接使用隨機(jī)抽樣采集數(shù)據(jù),那么模型的訓(xùn)練結(jié)果將會明顯地偏向數(shù)量較多的種類。而數(shù)據(jù)量將影響模型的精確度與訓(xùn)練時間,若數(shù)據(jù)量越豐富、覆蓋越廣,則模型的精確度將越高,但同時訓(xùn)練時間也可能會增加。根據(jù)數(shù)據(jù)來源的不同,數(shù)據(jù)收集也需要采取不同的方式,與業(yè)務(wù)系統(tǒng)對接的數(shù)據(jù)可直接從數(shù)據(jù)庫采集,而網(wǎng)絡(luò)數(shù)據(jù)則往往需要爬蟲進(jìn)行爬取。不同類型的數(shù)據(jù)所需要用到的存儲模式也不一樣,結(jié)構(gòu)化數(shù)據(jù)需要存儲在結(jié)構(gòu)化的關(guān)系型數(shù)據(jù)庫中,如郵件系統(tǒng)中的郵件數(shù)據(jù)。非結(jié)構(gòu)化數(shù)據(jù)則需要另行存儲,如圖片、音頻片段等。數(shù)據(jù)準(zhǔn)備1.數(shù)據(jù)收集數(shù)據(jù)準(zhǔn)備是機(jī)器學(xué)習(xí)中最重要的一個步驟,沒有數(shù)據(jù),機(jī)器學(xué)習(xí)便無從談起。數(shù)據(jù)準(zhǔn)備可細(xì)分為數(shù)據(jù)收集、數(shù)據(jù)探索和數(shù)據(jù)清洗。數(shù)據(jù)質(zhì)量校驗(yàn)在實(shí)際生產(chǎn)環(huán)境中的業(yè)務(wù)數(shù)據(jù)或網(wǎng)絡(luò)爬蟲爬取的數(shù)據(jù),往往摻雜了大量的噪聲數(shù)據(jù)。噪聲數(shù)據(jù)指的是數(shù)據(jù)中無意義的空值或明顯偏離正常水平的異常值,這些噪聲數(shù)據(jù)如果不經(jīng)處理直接進(jìn)入模型,那么將會嚴(yán)重影響模型的結(jié)果。數(shù)據(jù)質(zhì)量檢驗(yàn)包括一致性檢驗(yàn)、缺失值檢驗(yàn)、異常值檢驗(yàn)。一致性檢驗(yàn)用于檢驗(yàn)數(shù)據(jù)之間的一致性,包括時間校驗(yàn)、字段校驗(yàn)、粒度校驗(yàn)等;缺失值檢驗(yàn)用于檢測數(shù)據(jù)中是否存在空值;異常值檢驗(yàn)用于檢測數(shù)據(jù)中是否存在明顯偏離正常分布區(qū)間或不符合業(yè)務(wù)邏輯的數(shù)據(jù)。數(shù)據(jù)準(zhǔn)備2.數(shù)據(jù)探索在數(shù)據(jù)收集完畢后,為了掌握數(shù)據(jù)中的基本狀況,需要進(jìn)行數(shù)據(jù)探索。數(shù)據(jù)探索分為數(shù)據(jù)質(zhì)量校驗(yàn)、數(shù)據(jù)分布與趨勢探查。數(shù)據(jù)分布與趨勢探查數(shù)據(jù)探索的另一個重要目的是探索數(shù)據(jù)的分布與數(shù)據(jù)的變化趨勢,以圖形或統(tǒng)計(jì)指標(biāo)的方式發(fā)現(xiàn)數(shù)據(jù)中的模式和關(guān)系。如通過最大最小值、分位數(shù)等指標(biāo)或通過箱型圖,探索數(shù)據(jù)的分布區(qū)間和密度。數(shù)據(jù)分布與趨勢探查常用于將數(shù)據(jù)分組,識別潛在的模式,發(fā)現(xiàn)數(shù)據(jù)的趨勢,或探索不同屬性之間的關(guān)系。分布與趨勢分析通常包括分布分析、對比分析、描述性統(tǒng)計(jì)、周期性分析、貢獻(xiàn)度分析和相關(guān)性分析等,使用可視化圖表如條形圖、箱線圖、時間軸等可以更直觀地展示數(shù)據(jù)的狀況。數(shù)據(jù)準(zhǔn)備數(shù)據(jù)清洗是數(shù)據(jù)準(zhǔn)備中的最后一道工序,數(shù)據(jù)清洗的結(jié)果質(zhì)量將直接影響到模型結(jié)果與最終結(jié)論。數(shù)據(jù)清洗如同它的字面意思一樣,將數(shù)據(jù)中的“臟數(shù)據(jù)”清洗掉,處理數(shù)據(jù)中存在的缺失值、異常值與不一致值。數(shù)據(jù)清洗需要處理的方面包括:缺失的數(shù)據(jù),不規(guī)范的數(shù)據(jù)格式與內(nèi)容,重復(fù)的數(shù)據(jù),不合理的異常值,相矛盾的數(shù)據(jù)等。同時還需要注意具體情況需具體分析,如缺失嚴(yán)重的數(shù)據(jù)字段可能需要刪除,而一些相關(guān)性不強(qiáng)的缺失字段可能并不需要插補(bǔ)。數(shù)據(jù)準(zhǔn)備3.數(shù)據(jù)清洗特征工程是機(jī)器學(xué)習(xí)中的一個重要的前置步驟,會直接影響機(jī)器學(xué)習(xí)的效果,通常需要大量的時間。特征工程是一個將原始數(shù)據(jù)中的特征進(jìn)行縮放、篩選和構(gòu)造的過程,特征需要能夠更好描述原始數(shù)據(jù)的狀況,從而提升模型的訓(xùn)練速度與擬合效果。特征工程包含特征縮放、特征選擇和特征構(gòu)造等過程。特征工程特征縮放包含數(shù)據(jù)標(biāo)準(zhǔn)化、獨(dú)熱編碼和數(shù)據(jù)離散化。數(shù)據(jù)標(biāo)準(zhǔn)化將數(shù)據(jù)中量綱差異盡可能縮小,最終使得特征的取值范圍落入一個更小的區(qū)間內(nèi)。數(shù)據(jù)中不同特征的取值范圍不一樣,直接進(jìn)行分析會對結(jié)果的準(zhǔn)確性造成影響,因此需要對數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)化處理。獨(dú)熱編碼(One-Hot)將離散型的特征使用N位狀態(tài)寄存器對特征的N個狀態(tài)進(jìn)行編碼,每個狀態(tài)都對應(yīng)擁有獨(dú)立的寄存器位,并且在任意時候只有一個編碼位有效。將離散型特征進(jìn)行獨(dú)熱編碼后,特征的每個狀態(tài)變得更為獨(dú)立,更方便進(jìn)行距離計(jì)算。離散化將連續(xù)型特征按照分割點(diǎn)進(jìn)行劃分,最終轉(zhuǎn)化為離散型的特征。部分分類算法要求輸入的數(shù)據(jù)是離散型的,因此需要將連續(xù)型特征離散化之后才能進(jìn)行模型訓(xùn)練。特征工程1.特征縮放特征選擇按照特征重要性對特征進(jìn)行排序或依據(jù)具體的業(yè)務(wù)需求,從特征集合中挑選一組最具統(tǒng)計(jì)意義的特征子集,從而達(dá)到降維的效果。原始數(shù)據(jù)集中的特征對于目標(biāo)類別的作用并不相等,特征選擇能夠剔除一些與目標(biāo)無關(guān)的或相關(guān)性不強(qiáng)的特征,減少進(jìn)入模型的數(shù)據(jù)量,提高訓(xùn)練速度。不過需要注意的是,在有時候有些看上去無關(guān)或相關(guān)性不強(qiáng)的數(shù)據(jù)中,往往也隱含著有用的信息,因此特征選擇需要慎重進(jìn)行。特征工程2.特征選擇特征構(gòu)造在原始數(shù)據(jù)中原有特征的基礎(chǔ)上,構(gòu)建新的更適合于機(jī)器學(xué)習(xí)算法的特征。特征構(gòu)造常用于文本分析、圖像分析和用戶行為分析等領(lǐng)域,文本和圖像的原始數(shù)據(jù)的特征往往難以直接用于機(jī)器學(xué)習(xí),而且用戶的行為特征也常常隱藏在原始數(shù)據(jù)的特征中,這時需要從原始數(shù)據(jù)的特征中進(jìn)行提取,構(gòu)造出新的滿足算法要求的更為顯著的特征。特征工程3.特征構(gòu)造數(shù)據(jù)集用于有監(jiān)督學(xué)習(xí)時,通常需要劃分為訓(xùn)練集、驗(yàn)證集與測試集。訓(xùn)練集用于模型訓(xùn)練;驗(yàn)證集可以在訓(xùn)練過程中檢驗(yàn)?zāi)P偷男阅芎褪諗壳闆r,通常用于調(diào)整模型參數(shù),根據(jù)幾組模型驗(yàn)證集上的表現(xiàn)決定哪組參數(shù)能使模型擁有最好的性能;測試集用于測試模型對于未知數(shù)據(jù)的擬合效果,防止模型過度擬合于訓(xùn)練集的數(shù)據(jù)特征,而沒有抽象得出更為通用的規(guī)則。劃分?jǐn)?shù)據(jù)集時需要注意數(shù)據(jù)集中樣本的分布,往往數(shù)據(jù)集中的樣本類別并不是均勻分布的,劃分時需要避免這種不均勻分布造成的偏差。模型訓(xùn)練1.數(shù)據(jù)集劃分在完成目標(biāo)分析、數(shù)據(jù)收集、數(shù)據(jù)探索、數(shù)據(jù)清洗和特征工程等一系列前期準(zhǔn)備后,將進(jìn)入模型訓(xùn)練的步驟。模型訓(xùn)練包含數(shù)據(jù)集劃分、算法選擇與模型訓(xùn)練。模型訓(xùn)練前需要針對問題的類型選擇合適的算法,同類算法也需要多準(zhǔn)備幾個備選用于效果對比。過于復(fù)雜的算法往往反而不是最優(yōu)的選擇,算法的復(fù)雜度與模型訓(xùn)練時間呈現(xiàn)正相關(guān),算法復(fù)雜度越高,模型訓(xùn)練時間往往也越長,而結(jié)果的精度可能與簡單的算法相差無幾。訓(xùn)練時可先使用小批量數(shù)據(jù)進(jìn)行試驗(yàn),避免直接使用大批量數(shù)據(jù)訓(xùn)練導(dǎo)致的訓(xùn)練時間過長等問題。模型訓(xùn)練2.算法選擇與模型訓(xùn)練在模型訓(xùn)練完畢后,需要對模型的性能進(jìn)行評價,選出評價最優(yōu)的模型。針對不同類型的機(jī)器學(xué)習(xí)任務(wù),如分類、回歸、聚類等,所用的評價指標(biāo)往往也不同。如分類模型常用的評價方法有準(zhǔn)確率(Accuracy)、對數(shù)損失函數(shù)(Logloss)、AUC等。同一種評價方法也往往適用于多種類的任務(wù)。對于實(shí)際的生產(chǎn)環(huán)境,模型性能評價的側(cè)重點(diǎn)也不一樣,不同的業(yè)務(wù)場景對模型的性能有不同的要求,如可能造成經(jīng)濟(jì)損失的預(yù)測結(jié)果會要求更高的模型精度。性能度量與模型調(diào)優(yōu)僅訓(xùn)練一次模型往往無法達(dá)到理想的精度與效果,需要進(jìn)行模型調(diào)優(yōu)迭代,提升模型的效果。模型調(diào)優(yōu)往往是一個復(fù)雜冗長且枯燥的過程,需要多次對模型的參數(shù)做出修正,調(diào)優(yōu)的同時需要權(quán)衡模型的精度與泛用性,在提高模型精度的同時還需要避免造成過擬合。在現(xiàn)實(shí)生產(chǎn)與生活中,數(shù)據(jù)的分布會隨著時間的推移而改變,有時甚至變化得很急劇,這種現(xiàn)象稱為分布漂移(DistributionDrift)。當(dāng)一個模型隨著時間的推移,在新的數(shù)據(jù)集中的評價不斷下降時,意味著這個模型無法適應(yīng)新的數(shù)據(jù)的變化,此時模型需要進(jìn)行重新訓(xùn)練。性能度量與模型調(diào)優(yōu)1機(jī)器學(xué)習(xí)通用流程目錄機(jī)器學(xué)習(xí)簡介2Python機(jī)器學(xué)習(xí)工具庫簡介3一種既支持原生SQL,又支持ORM的工具庫,ORM是Python對象與數(shù)據(jù)庫關(guān)系表的一種映射關(guān)系,可有效提高寫代碼的速度,同時兼容多種數(shù)據(jù)庫系統(tǒng),如SQLite、MySQL、PostgreSQL,代價為性能上的一些損失。SQLAlchemy提供了強(qiáng)大的對象模型間的轉(zhuǎn)換,可以滿足絕大多數(shù)數(shù)據(jù)庫操作的需求,可通過3種方式操作數(shù)據(jù)庫:使用SQLExpression,通過SQLAlchemy提供的方法編寫sql表達(dá)式,間接地操作數(shù)據(jù)庫;使用原生SQL,直接書寫SQL語句;使用ORM對象映射,將類映射到數(shù)據(jù)庫,通過對象操作數(shù)據(jù)庫。數(shù)據(jù)準(zhǔn)備相關(guān)工具庫SQLAlchemyPython第三方庫中的SQLAlchemy提供數(shù)據(jù)庫連接,而NumPy和pandas都是當(dāng)下非常重要的Python科學(xué)運(yùn)算模塊,為數(shù)據(jù)準(zhǔn)備提供良好的支持。支持多維數(shù)組與矩陣運(yùn)算,此外也針對數(shù)組運(yùn)算提供大量的數(shù)學(xué)函數(shù)庫。通常與SciPy和Matplotlib一起使用,支持比Python所支持的種類更多的數(shù)值類型。核心功能是被稱為ndarray(n-dimensionalarray,多維數(shù)組)的數(shù)據(jù)結(jié)構(gòu)。這是一個表示多維度、同質(zhì)并且固定大小的數(shù)組對象。由一個與此數(shù)組相關(guān)系的數(shù)據(jù)類型對象描述其數(shù)組元素的數(shù)據(jù)格式,例如其字符組順序、在存儲器中占用的字符組數(shù)量、整數(shù)或者浮點(diǎn)數(shù)等。NumPy的數(shù)組包含以下3個特征:通常是由相同種類的元素組成的,即數(shù)組中的數(shù)據(jù)項(xiàng)的類型一致,能快速確定存儲數(shù)據(jù)所需空間的大??;能夠運(yùn)用向量化運(yùn)算來處理整個數(shù)組,速度較快;使用優(yōu)化過的C語言的API,運(yùn)算速度較快。數(shù)據(jù)準(zhǔn)備相關(guān)工具庫NumPy基于NumPy的一種工具,為解決數(shù)據(jù)分析任務(wù)而生。納入大量庫和一些標(biāo)準(zhǔn)的數(shù)據(jù)模型,提供高效地操作大型數(shù)據(jù)集所需的工具及大量能快速便捷處理數(shù)據(jù)的函數(shù)和方法,為時間序列分析提供很好的支持,提供多種數(shù)據(jù)結(jié)構(gòu),如Series、Time-Series、DataFrame和Panel。其中,Series和DataFrame是最常用的數(shù)據(jù)結(jié)構(gòu):Series是一個類似一維數(shù)組的對象,包含一個數(shù)組的數(shù)據(jù),該數(shù)據(jù)可以是任何NumPy的數(shù)據(jù)類型,和一個被稱為索引的與數(shù)組關(guān)聯(lián)的數(shù)據(jù)標(biāo)簽;DataFrame類似日常使用的Excel表格,包含一個經(jīng)過排序的列表集,每一行數(shù)據(jù)都可以有不同的類型值(數(shù)字、字符串、布爾等),擁有行和列的索引,可以看作是一個每個Series共享一個索引的Series的字典。數(shù)據(jù)準(zhǔn)備相關(guān)工具庫pandasPython下著名的繪圖庫,為了方便快速繪圖,Matplotlib通過pyplot模塊提供了一套和MATLAB類似的繪圖API,將眾多繪圖對象所構(gòu)成的復(fù)雜結(jié)構(gòu)隱藏在這套API內(nèi)部,十分適合交互式繪圖。只需要調(diào)用pyplot模塊所提供的函數(shù)即可實(shí)現(xiàn)快速繪圖以及設(shè)置圖表的各種細(xì)節(jié)。能夠創(chuàng)建多數(shù)類型的圖表,包括線圖、散點(diǎn)圖、等高線圖、條形圖、柱狀圖、3D圖形、甚至是圖形動畫等??赏ㄟ^參數(shù)定制圖形,調(diào)整坐標(biāo)軸、標(biāo)題、圖例、線條大小顏色等圖形參數(shù)。數(shù)據(jù)可視化相關(guān)工具庫MatplotlibPython中的可視化庫可大致分為基于Matplotlib的可視化庫、基于JS的可視化庫和基于上述兩者或其他組合功能的庫。在Matplotlib的基礎(chǔ)上進(jìn)行了更高級的API封裝,從而使得作圖更加容易,跟Matplotlib最大的區(qū)別為默認(rèn)繪圖風(fēng)格和色彩搭配都具有現(xiàn)代美感,在大多數(shù)情況下使用Seaborn就能做出很具有吸引力的圖。提供5個預(yù)設(shè)好的主題(darkgrid、whitegrid、dark、white和ticks),默認(rèn)主題為darkgrid??梢岳L制多種圖形包括散點(diǎn)圖、直方圖、條形圖、熱點(diǎn)圖、聯(lián)合分布等。由于Seaborn是Matplotlib的高級接口,所以在使用Seaborn的時候仍然可以調(diào)用Matplotlib的函數(shù)。數(shù)據(jù)可視化相關(guān)工具庫seaborn一個Python交互式可視化庫,用于在Web瀏覽器上進(jìn)行展示。優(yōu)點(diǎn)是能用于制作可交互,可直接用于網(wǎng)絡(luò)的圖表。圖表可以輸出為JSON對象,HTML文檔或者可交互的網(wǎng)絡(luò)應(yīng)用。支持?jǐn)?shù)據(jù)流和實(shí)時數(shù)據(jù),采用了分層方法兼顧不同用戶的使用需求,并提供了適合不同使用級別的不同編程接口,即控制水平。Bokeh提供了3種控制水平:最高的控制水平用于快速制圖,主要用于制作常用圖像;中等控制水平與Matplotlib一樣允許開發(fā)人員控制圖像的基本元素(例如分布圖中的點(diǎn));最低的控制水平主要面向開發(fā)人員和軟件工程師,在最低的控制水平下沒有默認(rèn)值,需要定義圖表的每一個元素。數(shù)據(jù)可視化相關(guān)工具庫Bokeh基于NumPy構(gòu)建的一個集成了多種數(shù)學(xué)算法和函數(shù)的Python模塊,能夠?qū)崿F(xiàn)線性代數(shù)、常微分方程數(shù)值求解、信號處理、圖像處理、稀疏矩陣等。其中,stats模塊是一個強(qiáng)大的統(tǒng)計(jì)工具包,包含了多種概率分布的隨機(jī)變量,隨機(jī)變量分為連續(xù)型與離散型兩類。而cluster模塊提供層次聚類,矢量量化與K-Means聚類等功能。模型訓(xùn)練與評估相關(guān)工具庫SciPy目前Python已擁有許多成熟的第三方庫,其中整合了大量的算法用于模型訓(xùn)練與評估。一個基于NumPy和SciPy,專門為機(jī)器學(xué)習(xí)建造的Python模塊,提供了大量用于機(jī)器學(xué)習(xí)的工具?;竟δ苤饕环譃?個部分:分類、回歸、聚類、數(shù)據(jù)降維、模型選擇和數(shù)據(jù)預(yù)處理。其算法庫中集成大量算法,包括支持向量機(jī)、邏輯回歸、樸素貝葉斯分類器、隨機(jī)森林、GradientBoosting、K-Means聚類和DBSCAN等。模型訓(xùn)練與評估相關(guān)工具庫scikit-learn一個高度模塊化的神經(jīng)網(wǎng)絡(luò)庫,使用Python實(shí)現(xiàn),并可以同時運(yùn)行在TensorFlow和Theano上。Keras專精于深度學(xué)習(xí),提供了目前為止最方便的API,用戶僅需將高級的模塊拼在一起便可設(shè)計(jì)神經(jīng)網(wǎng)絡(luò),大大降低了構(gòu)建神經(jīng)網(wǎng)絡(luò)的編程成本(codeoverhead)與理解成本(cognitiveoverhead)。同時支持卷積網(wǎng)絡(luò)和循環(huán)網(wǎng)絡(luò),支持級聯(lián)的模型或任意的圖結(jié)構(gòu)的模型,從在CPU上計(jì)算的模式切換到使用GPU加速無須任何在代碼上的改動。簡化了編程的復(fù)雜度的同時,在性能上絲毫不遜色于TensorFlow和Theano。Keras的功能分為幾大模塊,包括優(yōu)化器(optimizers)、目標(biāo)函數(shù)(objectives)、激活函數(shù)(activations)、參數(shù)初始化(Initializations)、層(layer)等。模型訓(xùn)練與評估相關(guān)工具庫Keras一個相對高階的機(jī)器學(xué)習(xí)庫,也是目前最流行的深度學(xué)習(xí)庫,核心代碼使用C++編寫并支持自動求導(dǎo),用戶可以方便的設(shè)計(jì)神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),不需要親自編寫C++或CUDA代碼也無需通過反向傳播求解梯度。由于底層使用C++語言編寫,使得運(yùn)行效率得到了保證,并簡化了線上部署的復(fù)雜度。除了核心代碼的C++接口,TensorFlow還有官方的Python、Go和Java接口,用戶可以在一個硬件配置較好的機(jī)器中用Python進(jìn)行實(shí)驗(yàn),并在資源比較緊張的嵌入式環(huán)境或需要低延遲的環(huán)境中用C++部署模型。TensorFlow不只局限于神經(jīng)網(wǎng)絡(luò),它具有的特色的數(shù)據(jù)流圖支持非常自由的算法表達(dá),也可以輕松實(shí)現(xiàn)深度學(xué)習(xí)以外的機(jī)器學(xué)習(xí)算法。TensorFlow還支持包含算術(shù)操作、張量操作、數(shù)據(jù)類型轉(zhuǎn)換、矩陣的變形、切片、合并、規(guī)約、分割、序列比較與索引提取等常用的Math、Array、matrix相關(guān)的操作功能。模型訓(xùn)練與評估相關(guān)工具庫TensorFlow一個由Facebook的AI研究團(tuán)隊(duì)發(fā)布的Python工具包,專門針對GPU加速的深度神經(jīng)網(wǎng)絡(luò)(DNN)編程。PyTorch提供了兩個高級特性,可使用GPU加速的張量計(jì)算與自動求導(dǎo)機(jī)制。PyTorch利用GPU加速的張量計(jì)算加速科學(xué)計(jì)算,提升程序運(yùn)行效率,例如切片、索引、數(shù)學(xué)運(yùn)算、線性代數(shù)等。PyTorch使用基于自動求導(dǎo)的動態(tài)神經(jīng)網(wǎng)絡(luò),支持直接修改模型架構(gòu),使得PyTorch擁有debug方便,能快速在tensor和NumPy間相互轉(zhuǎn)換,具有程序包小、速度快,程序簡潔與易擴(kuò)展的優(yōu)點(diǎn)。模型訓(xùn)練與評估相關(guān)工具庫PyTorch本章主要介紹機(jī)器學(xué)習(xí)的相關(guān)概念與應(yīng)用領(lǐng)域、實(shí)現(xiàn)機(jī)器學(xué)習(xí)的通用流程和Python中的機(jī)器學(xué)習(xí)工具庫。機(jī)器學(xué)習(xí)主要研究能夠依據(jù)數(shù)據(jù)或以往的經(jīng)驗(yàn)自行改進(jìn)與優(yōu)化性能的計(jì)算機(jī)程序,目前已得到廣泛應(yīng)用。機(jī)器學(xué)習(xí)模型訓(xùn)練的通用過程包含目標(biāo)分析、數(shù)據(jù)準(zhǔn)備、特征工程、模型訓(xùn)練與調(diào)優(yōu)、性能度量與模型調(diào)優(yōu)多個步驟。Python提供多個強(qiáng)大第三方擴(kuò)展庫對機(jī)器學(xué)習(xí)的各個步驟提供支持,包含pandas、NumPy、Matplotlib、scikit-learn和TensorFlow等。小結(jié)數(shù)據(jù)準(zhǔn)備14-6月-231數(shù)據(jù)分布與趨勢探查目錄數(shù)據(jù)質(zhì)量校驗(yàn)2數(shù)據(jù)清洗3數(shù)據(jù)合并4如果機(jī)器學(xué)習(xí)中用于分析的基礎(chǔ)數(shù)據(jù)有問題,那么基于這些數(shù)據(jù)分析得到的結(jié)論也會變得不可靠。因?yàn)閷τ跈C(jī)器學(xué)習(xí)而言,只有使用一份高質(zhì)量的基礎(chǔ)數(shù)據(jù),才能得到正確、有用的結(jié)論,所以有必要進(jìn)行數(shù)據(jù)質(zhì)量校驗(yàn)。數(shù)據(jù)質(zhì)量校驗(yàn)的主要任務(wù)是檢查原始數(shù)據(jù)中是否存在噪聲數(shù)據(jù),常見的噪聲數(shù)據(jù)包括不一致的值、缺失值和異常值。數(shù)據(jù)不一致性,是指各類數(shù)據(jù)的矛盾性、不相容性。數(shù)據(jù)不一致是由于數(shù)據(jù)冗余、并發(fā)控制不當(dāng)或各種故障、錯誤造成的。對數(shù)據(jù)進(jìn)行分析時需要對數(shù)據(jù)進(jìn)行一致性校驗(yàn)來確認(rèn)數(shù)據(jù)中是否存在不一致的值。一致性校驗(yàn)時間不一致是指數(shù)據(jù)在合并或者聯(lián)立后時間字段出現(xiàn)時間范圍、時間粒度、時間格式和時區(qū)不一致等情況。時間范圍不一致通常是不同表的時間字段中所包含的時間的取值范圍不一致,如表所示,兩張表的時間字段的取值范圍分別為2016年1月1日—2016年2月29日和2016年1月15日—2016年2月18日,此時如果需要聯(lián)立這兩張表,就需要對時間字段進(jìn)行補(bǔ)全,否則會產(chǎn)生大量的空值或者會導(dǎo)致報錯。一致性校驗(yàn)1.時間校驗(yàn)create_time_Acreate_time_B2016-01-0210:35:002016-01-1509:31:002016-01-0311:30:002016-01-1612:03:002016-02-2812:10:002016-02-1717:13:002016-02-2918:23:002016-02-1819:17:00時間粒度不一致通常是由于數(shù)據(jù)采集時沒有設(shè)置統(tǒng)一的采集頻率,如系統(tǒng)升級后采集頻率發(fā)生了改變,或者不同系統(tǒng)間的采集頻率不一致,導(dǎo)致采集到的數(shù)據(jù)的時間粒度不一致。如表所示,某地部分設(shè)備的系統(tǒng)尚未升級,采集的數(shù)據(jù)為每分鐘采集一次。另一部分設(shè)備已經(jīng)升級,升級后采集頻率提高至每30秒采集一次。如果此時將這兩部分?jǐn)?shù)據(jù)合并,會導(dǎo)致數(shù)據(jù)時間粒度不一致的問題。一致性校驗(yàn)cresat_time_Acresat_time_B2016/12/2713:42:002017/1/714:12:302016/12/2713:43:002017/1/714:13:002016/12/2713:44:002017/1/714:13:302016/12/2713:45:002017/1/714:14:002016/12/2713:46:002017/1/714:14:30時間格式不一致通常是不同系統(tǒng)之間設(shè)置時間字段時的采用的格式不一致導(dǎo)致時間格式不一致的情況,尤其是當(dāng)系統(tǒng)中的時間字段使用字符串格式的時候。如表所示,訂單系統(tǒng)的時間字段order_time與結(jié)算系統(tǒng)的時間字段ord_time采用了不同的格式導(dǎo)致時間格式不一致。一致性校驗(yàn)order_timeord_time2016-10-0110:25:00201610011025002016-10-0110:30:00201610011030002016-10-0110:34:00201610011034002016-10-0110:41:00201610011041002016-10-0110:45:0020161001104500時區(qū)不一致通常是由于在數(shù)據(jù)傳輸時的設(shè)置不合理,導(dǎo)致時間字段出現(xiàn)不一致的情況,如由于設(shè)置在海外的服務(wù)器時沒有修改時區(qū),導(dǎo)致數(shù)據(jù)在傳輸回本地的服務(wù)器時由于時區(qū)差異造成時間不一致。這種情況下的時間數(shù)據(jù)往往會呈現(xiàn)較為規(guī)律的差異性,即時間可能會有一個固定的差異值。如表所示,海外服務(wù)器時間global_server_time與本地服務(wù)器時間local_serve_time由于時區(qū)差異造成固定相差2個小時。一致性校驗(yàn)local_sever_timeglobal_sever_time2016/11/713:42:302016/11/711:42:302016/11/713:43:002016/11/711:43:002016/11/713:43:302016/11/711:43:302016/11/713:44:002016/11/711:44:002016/11/713:44:302016/11/711:44:30合并不同數(shù)據(jù)來源的數(shù)據(jù)時,字段可能存在以下3種不一致的問題。(1)同名異義兩個名稱相同的字段所代表的實(shí)際意義不一致。如表所示,數(shù)據(jù)源A中的ID字段和數(shù)據(jù)源B中的ID字段分別描述的是菜品編號和訂單編號,即描述的是不同的實(shí)體。一致性校驗(yàn)2.字段信息校驗(yàn)ID_AID_B2175612327005021854933271325219176832714862207458327165422165473271848(2)異名同義兩個名稱不同的字段所代表的實(shí)際意義是一致的。如表所示,數(shù)據(jù)源A中的sales_dt字段和數(shù)據(jù)源B中的sales_date字段都是描述銷售日期的,即A.sales_dt=B.sales_date。一致性校驗(yàn)A.sales_dtB.sales_date2017/2/122017/2/122017/2/142017/2/142017/2/172017/2/172017/2/182017/2/182017/2/232017/2/23(3)單位不統(tǒng)一兩個名稱相同的字段所代表的實(shí)際意義一致,但是所使用的單位不一致。如表所示,數(shù)據(jù)源A中的sales_amount字段的單位使用是人民幣,而數(shù)據(jù)源B中sales_amount字段的單位使用是美元。一致性校驗(yàn)sales_amount_Asales_amount_B56.207.9859.908.5057.808.2163.008.9468.209.69缺失值是指數(shù)據(jù)中由于缺少信息而造成的數(shù)據(jù)的聚類、分組或截斷,它指的是現(xiàn)有數(shù)據(jù)集中某個或某些特征的值是不完全的。缺失值按缺失的分布模式可以分為完全隨機(jī)缺失、隨機(jī)缺失和完全非隨機(jī)缺失。完全隨機(jī)缺失(MissingCompletelyAtRandom,MCAR)指的是數(shù)據(jù)的缺失是隨機(jī)的,數(shù)據(jù)的缺失不依賴于任何不完全變量或完全變量。隨機(jī)缺失(MissingAtRandom,MAR)指的是數(shù)據(jù)的缺失不是完全隨機(jī)的,即該類數(shù)據(jù)的缺失依賴于其他完全變量。完全非隨機(jī)缺失(MissingNotAtRandom,MNAR)指的是數(shù)據(jù)的缺失依賴于不完全變量自身。缺失值校驗(yàn)在Python中,可以利用如表所示的缺失值校驗(yàn)函數(shù),檢測數(shù)據(jù)中是否存在缺失值。缺失值校驗(yàn)函數(shù)名函數(shù)功能所屬擴(kuò)展庫格式參數(shù)及返回值isnull判斷是否空值pandasD.isnull()或pandas.isnull(D)參數(shù)為DataFrame或pandas的Series對象,返回的是一個布爾類型的DataFrame或Seriesnotnull判斷是否非空值pandasD.notnull()或pandas.notnull(D)參數(shù)為DataFrame或pandas的Series對象,返回的是一個布爾類型的DataFrame或Seriescount非空元素計(jì)算

D.count()參數(shù)為DataFrame或pandas的Series對象,返回的是DataFrame中每一列非空值個數(shù)或Series對象的非空值個數(shù)異常值是指樣本中的個別值,其數(shù)值明顯偏離它(或它們)所屬樣本的其余觀測值。假設(shè)數(shù)據(jù)服從正態(tài)分布,一組數(shù)據(jù)中若與平均值的偏差超過兩倍標(biāo)準(zhǔn)差的數(shù)據(jù)成為異常值,稱為四分位距準(zhǔn)則(IQR);與平均值的偏差超過3倍標(biāo)準(zhǔn)差的數(shù)據(jù)成為高度異常的異常值,稱為3б原則。在實(shí)際測量中,異常值的產(chǎn)生一般是由疏忽、失誤或突然發(fā)生的不該發(fā)生的原因造成,如讀錯、記錯、儀器示值突然跳動、突然震動、操作失誤等。因?yàn)楫惓V档拇嬖跁崆鷾y量結(jié)果,所以有必要檢測數(shù)據(jù)中是否存在異常值。異常值分析在Python中可以利用如表所示的函數(shù)檢測異常值。異常值分析函數(shù)名函數(shù)功能所屬擴(kuò)展庫格式參數(shù)說明percentile計(jì)算百分位數(shù)NumPynumpy.percentile(a,q,axis=None)參數(shù)a接收array或類似arrary的對象,無默認(rèn)值參數(shù)q接收float或類似arrary的對象,必須介于0~100參數(shù)axis表示計(jì)算百分位數(shù)的軸,可選0或1mean計(jì)算平均值pandaspandas.DataFrame.mean()參數(shù)DataFrame接收DataFrame或pandas的Series對象std計(jì)算標(biāo)準(zhǔn)差pandaspandas.DataFrame.std()參數(shù)DataFrame接收DataFrame或pandas的Series對象1數(shù)據(jù)分布與趨勢探查目錄數(shù)據(jù)質(zhì)量校驗(yàn)2數(shù)據(jù)清洗3數(shù)據(jù)合并4數(shù)據(jù)質(zhì)量校驗(yàn)之后,可以通過計(jì)算特征量、繪制圖表等方式對數(shù)據(jù)進(jìn)行特征分析。對數(shù)據(jù)進(jìn)行分布分析,能夠揭示數(shù)據(jù)的分布特征和分布類型,顯示其分布情況。分布分析主要分為兩種:對定量數(shù)據(jù)和對定性數(shù)據(jù)的分布分析。對于定量數(shù)據(jù),可以通過繪制頻率分布表、頻率分布直方表、莖葉圖等進(jìn)行分布分析,這些圖可以直觀地分析數(shù)據(jù)是對稱分布或是非對稱分布,也可以發(fā)現(xiàn)某些特大或特小的可疑值;對于定性數(shù)據(jù),可以通過繪制餅圖或柱形圖對其分布情況進(jìn)行直觀地分析。分布分析定量數(shù)據(jù)的分布分析,一般按照以下步驟進(jìn)行。求極差決定組距與組數(shù)決定分點(diǎn)列出頻率分布表繪制頻率分布直方圖分布分析1.定量數(shù)據(jù)分布分析進(jìn)行定量數(shù)據(jù)分布分析時,分組需要遵循的主要原則如下。組與組之間必須互斥所有分組必須將所有數(shù)據(jù)包含在內(nèi)各組的組寬盡可能相等分布分析對于定性變量進(jìn)行分布分析,通常根據(jù)變量的分類來分組,然后統(tǒng)計(jì)分組的頻數(shù)或頻率,可以采用餅圖和柱形圖來描述定性變量的分布。餅圖的每一個扇形部分的面積代表一個類型在總體中所占的比例,根據(jù)定性變量的類型數(shù)目把餅圖分成幾個部分,每一部分的大小與每一類型的頻數(shù)成正比;柱形圖的高度表示每一類型的頻率或頻數(shù),與直方圖不同的是柱形圖的寬度沒有任何意義。分布分析2.定性數(shù)據(jù)分布分析對比分析法也稱為比較分析法,是把客觀的事物加以比較,以達(dá)到認(rèn)識事物的本質(zhì)和規(guī)律并做出正確的評價的目的。對比分析法通常是將兩個相互聯(lián)系的指標(biāo)數(shù)據(jù)進(jìn)行比較,從數(shù)量上展示和說明研究對象規(guī)模的大小、水平的高低、速度的快慢以及各種關(guān)系是否協(xié)調(diào)。在對比分析中,選擇合適的對比標(biāo)準(zhǔn)是十分關(guān)鍵的步驟,對比標(biāo)準(zhǔn)的選擇決定了是否能夠得到可靠的評價結(jié)果。對比分析(1)絕對數(shù)比較絕對數(shù)比較是利用絕對數(shù)進(jìn)行對比,從而尋找差異的一種方法。(2)相對數(shù)比較相對數(shù)比較是將兩個有聯(lián)系的指標(biāo)進(jìn)行對比計(jì)算的,用以反映客觀現(xiàn)象之間數(shù)量聯(lián)系程度的綜合指標(biāo),其數(shù)值表現(xiàn)為相對數(shù)。由于研究目的和對比基礎(chǔ)不同,相對數(shù)可以分為以下幾種。動態(tài)相對數(shù)。將同一現(xiàn)象在不同時期的指標(biāo)數(shù)值對比,用以說明發(fā)展方向和變化的速度。強(qiáng)度相對數(shù)。將兩個性質(zhì)不同但有一定聯(lián)系的總量指標(biāo)對比,用以說明現(xiàn)象的強(qiáng)度、密度和普遍程度。對比分析1.對比分析的形式比例相對數(shù)。將同一總體內(nèi)不同部分的數(shù)值對比,表明總體內(nèi)各部分的比例關(guān)系。比較相對數(shù)。將同一時期兩個性質(zhì)相同的指標(biāo)數(shù)值對比,說明同類現(xiàn)象在不同空間條件下的數(shù)量對比關(guān)系。計(jì)劃完成程度相對數(shù)。某一時期實(shí)際完成數(shù)與計(jì)劃數(shù)對比,用以說明計(jì)劃完成程度。結(jié)構(gòu)相對數(shù)。將同一總體內(nèi)的部分?jǐn)?shù)值與全部數(shù)值對比求得比重,用以說明事物的性質(zhì)、結(jié)構(gòu)或質(zhì)量對比分析相聯(lián)系的兩個指標(biāo)對比,表明現(xiàn)象的強(qiáng)度、密度和普遍程度。按說明對象的不同,對比分析可分為單指標(biāo)對比(簡單評價)和多指標(biāo)評價(綜合評價)。對比分析在實(shí)際操作過程中需要遵循如下原則。(1)指標(biāo)的內(nèi)涵和外延可比。(2)指標(biāo)的時間范圍可比。(3)指標(biāo)的計(jì)算方法可比。(4)總體性質(zhì)可比。若兩個完全不具有可比性的對象,擺在一起進(jìn)行對比分析,則會是徒勞無功。對比分析(1)計(jì)劃標(biāo)準(zhǔn)計(jì)劃標(biāo)準(zhǔn)即將指定的數(shù)據(jù)與對應(yīng)的計(jì)劃數(shù)、定額數(shù)和目標(biāo)數(shù)對比。(2)經(jīng)驗(yàn)或理論標(biāo)準(zhǔn)經(jīng)驗(yàn)標(biāo)準(zhǔn)是通過對大量歷史資料的歸納總結(jié)而得到的標(biāo)準(zhǔn),如衡量生活質(zhì)量的恩格爾系數(shù)。理論標(biāo)準(zhǔn)是將已知理論經(jīng)過推理后得出的一個標(biāo)準(zhǔn)和依據(jù)。對比分析2.對比分析的標(biāo)準(zhǔn)(3)時間標(biāo)準(zhǔn)時間標(biāo)準(zhǔn)即選擇不同時間的指標(biāo)數(shù)值作為對比標(biāo)準(zhǔn),最常用到的是與上年同期比較即“同比”,也可以與前一時期比較,此外還可以與達(dá)到歷史最好水平的時期或歷史上一些關(guān)鍵時期進(jìn)行比較。(4)空間標(biāo)準(zhǔn)空間標(biāo)準(zhǔn)即選擇不同空間指標(biāo)數(shù)據(jù)進(jìn)行比較,主要包括與相似的空間比較、與先進(jìn)空間比較和與擴(kuò)大的空間比較三種。對比分析描述性統(tǒng)計(jì)分析是對一組數(shù)據(jù)的各種特征進(jìn)行分析,以便于描述測量樣本的各種特征及其所代表的總體的特征。利用統(tǒng)計(jì)指標(biāo)對定量數(shù)據(jù)進(jìn)行統(tǒng)計(jì)描述,通常從數(shù)據(jù)的集中趨勢和離散程度兩個方面進(jìn)行分析。集中趨勢是指一組數(shù)據(jù)向著一個中心靠攏的程度,也體現(xiàn)了數(shù)據(jù)中心所在的位置,集中趨勢的度量使用比較廣泛的是均值、中位數(shù)。離散程度的度量常用的是極差、四分位差、方差、標(biāo)準(zhǔn)差和變異系數(shù)。描述性統(tǒng)計(jì)分析

描述性統(tǒng)計(jì)分析1.集中趨勢度量

描述性統(tǒng)計(jì)分析

描述性統(tǒng)計(jì)分析當(dāng)

為偶數(shù)時,中位數(shù)計(jì)算公式如下。

(3)眾數(shù)眾數(shù)是指數(shù)據(jù)集中出現(xiàn)最頻繁的值。眾數(shù)并不經(jīng)常用來度量定性變量的中心位置,更適用于定量變量。眾數(shù)不具有唯一性。當(dāng)然,眾數(shù)一般用于離散型變量而非連續(xù)型變量。描述性統(tǒng)計(jì)分析(1)極差利用極值計(jì)算極差,計(jì)算公式如下。極差對數(shù)據(jù)集的極端值非常敏感,并且忽略了位于最大值與最小值之間的數(shù)據(jù)是如何分布的。(2)四分位差四分位差是指上四分位數(shù)和下四分位數(shù)之差。四分位差反映了中間50%數(shù)據(jù)的離散程度,其數(shù)值越小,說明數(shù)據(jù)越集中,即數(shù)據(jù)的變異程度越?。环粗?,說明數(shù)據(jù)越離散,數(shù)據(jù)的變異程度越大。

描述性統(tǒng)計(jì)分析2.離散程度度量(3)方差(標(biāo)準(zhǔn)差)方差是各樣本相對均值的偏差平方和的平均值,如左式,而標(biāo)準(zhǔn)差是方差的開平方值,如右式。方差和標(biāo)準(zhǔn)差是描述數(shù)據(jù)離散程度最常用的指標(biāo),它們利用了樣本的全部信息去描述數(shù)據(jù)取值的分散性。描述性統(tǒng)計(jì)分析

描述性統(tǒng)計(jì)分析周期性分析(CyclicalAnalysis)對具有周期性變動的數(shù)據(jù)進(jìn)行的分析,可以探索某個變量是否隨著時間的變化而呈現(xiàn)出某種周期性變化趨勢。周期性趨勢按時間粒度的常用劃分方式分為年度周期性趨勢、季周期性趨勢、月度周期性趨勢、周度周期性趨勢和天、小時周期性趨勢。對數(shù)據(jù)進(jìn)行周期性數(shù)據(jù)分析,能達(dá)到掌握數(shù)據(jù)周期性變動規(guī)律的目的。周期性分析利用某車站2016年1月1日–2016年3月20日每天客流量部分?jǐn)?shù)據(jù),對該數(shù)據(jù)進(jìn)行周期性數(shù)據(jù)分析,觀察該車站客流量規(guī)律,如圖所示。由圖可看出,該車站客流量以假期日為周期呈現(xiàn)周期性??土髁吭诠ぷ魅掌陂g較為平穩(wěn),小長假期間明顯增多,出現(xiàn)這種情況的原因是假期為人們出游的高峰期。周期性分析貢獻(xiàn)度分析又稱帕累托分析,它的原理是帕累托法則又稱二八定律。同樣的投入放在不同的地方會產(chǎn)生不同的效益。對一個公司來說,80%的利潤常常來自于20%最暢銷的產(chǎn)品,而其他80%的產(chǎn)品只產(chǎn)生了20%的利潤。貢獻(xiàn)度分析需要繪制帕累托圖,帕累托圖又稱排列圖、主次圖,是按照發(fā)生頻率大小順序繪制的直方圖,表示有多少結(jié)果是由已確認(rèn)類型或范疇的原因造成,可以用來分析質(zhì)量問題,確定產(chǎn)生質(zhì)量問題的主要因素。帕累托圖用雙直角坐標(biāo)系表示,左邊縱坐標(biāo)表示頻數(shù),右邊縱坐標(biāo)表示頻率,分析線表示累積頻率,橫坐標(biāo)表示影響質(zhì)量的各項(xiàng)因素,按影響程度的大?。瘸霈F(xiàn)的頻數(shù)多少)從左到右排列,該圖可以判斷影響質(zhì)量的主要因素。貢獻(xiàn)度分析應(yīng)用貢獻(xiàn)度分析對某餐飲企業(yè)的10種菜品某月的盈利數(shù)據(jù)進(jìn)行分析,找出盈利排在前80%的菜品,如圖所示。由圖可看出,菜品A1~A7總盈利額達(dá)到了該月盈利額的85%,在這種情況下,應(yīng)該加大菜品A1~A7的成本投入,減少A8~A10的成本投入,這樣可以獲得更高的盈利額。貢獻(xiàn)度分析相關(guān)性分析是指對兩個或多個具備相關(guān)性的變量元素進(jìn)行分析,從而衡量兩個變量因素的相關(guān)密切程度。相關(guān)性分析是研究現(xiàn)象之間是否存在某種依存關(guān)系,并對具體有依存關(guān)系的現(xiàn)象探討其相關(guān)方向以及相關(guān)程度,是研究隨機(jī)變量之間的相關(guān)關(guān)系的一種統(tǒng)計(jì)方法。相關(guān)性不等于因果性,也不是簡單的個性化,相關(guān)性涵蓋的范圍和領(lǐng)域非常廣泛,而且相關(guān)性在不同的學(xué)科里面定義也有很大的差異。相關(guān)性分析的方法有很多,可以直接通過數(shù)據(jù)可視化進(jìn)行判斷,也可以通過計(jì)算變量之間的相關(guān)系數(shù)進(jìn)行判斷。相關(guān)性分析判斷兩個變量是否具有線性相關(guān)關(guān)系的最直觀的方法是繪制散點(diǎn)圖,如圖所示。相關(guān)性分析1.散點(diǎn)圖和相關(guān)性熱力圖有時需要考察多個變量之間的相關(guān)關(guān)系,如果利用散點(diǎn)圖進(jìn)行相關(guān)性分析,那么需要對變量兩兩繪制散點(diǎn)圖,這樣會讓工作變得很麻煩,相關(guān)性熱力圖是解決這個麻煩的好辦法,相關(guān)性熱力圖可以快速發(fā)現(xiàn)多個變量之間的兩兩間相關(guān)性,相關(guān)性熱力圖如圖所示。相關(guān)性分析

相關(guān)性分析2.相關(guān)系數(shù)Pearson相關(guān)系數(shù)

的取值范圍及變量相關(guān)強(qiáng)度判斷規(guī)則如表所示。相關(guān)性分析取值范圍相關(guān)強(qiáng)度正相關(guān)負(fù)相關(guān)完全線性相關(guān)極強(qiáng)相關(guān)強(qiáng)相關(guān)中等程度相關(guān)弱相關(guān)極弱相關(guān)或不相關(guān)

相關(guān)性分析

相關(guān)性分析0.5110.8221.0331.24(4+5)/2=4.51.25(4+5)/2=4.52.3662.877如果遇到相同的取值,那么計(jì)算秩次時需要取它們排序后所在位置的平均值。根據(jù)Spearman相關(guān)系數(shù)的計(jì)算公式可以看出,如果兩個變量具有嚴(yán)格單調(diào)的函數(shù)關(guān)系,那么這兩個變量的Spearman相關(guān)系數(shù)值就為1或–1,此時稱這兩個變量完全Spearman相關(guān)。研究表明,在正態(tài)分布假定下,Spearman相關(guān)系數(shù)與Pearson相關(guān)系數(shù)在效率上是等價的,而對于連續(xù)測量數(shù)據(jù),更適合用Pearson相關(guān)系數(shù)來進(jìn)行分析。相關(guān)性分析

相關(guān)性分析1數(shù)據(jù)分布與趨勢探查目錄數(shù)據(jù)質(zhì)量校驗(yàn)2數(shù)據(jù)清洗3數(shù)據(jù)合并4數(shù)據(jù)清洗是數(shù)據(jù)預(yù)處理中的過程,是發(fā)現(xiàn)并改正數(shù)據(jù)中可識別的錯誤的最后一道程序,目的是過濾或修改不符合要求的數(shù)據(jù),主要包括刪除原始數(shù)據(jù)中的無關(guān)數(shù)據(jù)、重復(fù)數(shù)據(jù),平滑噪聲數(shù)據(jù),處理缺失值、異常值等。缺失值處理的方法可以分為3種。刪除數(shù)據(jù)插補(bǔ)不處理缺失值處理刪除即刪除存在缺失值的個案、刪除存在缺失數(shù)據(jù)的樣本、刪除有過多缺失數(shù)據(jù)的變量,如果通過簡單的刪除一小部分?jǐn)?shù)據(jù)能夠達(dá)到既定目標(biāo),那么刪除是處理缺失值最有效的方法,如果缺失的數(shù)據(jù)屬于完全隨機(jī)缺失,使用刪除法處理的后果僅僅是減少了樣本量,盡管會導(dǎo)致信息量減少,但是利用刪除法處理這種缺失數(shù)據(jù)也是有效的。刪除法有較大的局限性,該方法通過減少歷史數(shù)據(jù)換取數(shù)據(jù)的完備,這樣會造成資源的大量浪費(fèi),丟棄了大量隱藏在這些數(shù)據(jù)中的信息,如果原始數(shù)據(jù)集包含的樣本比較少,那么刪除少量的樣本就可能會導(dǎo)致分析結(jié)果的客觀性和正確性受到影響。缺失值處理1.刪除數(shù)據(jù)插補(bǔ)即利用某種方法將缺失數(shù)據(jù)補(bǔ)齊,常用的數(shù)據(jù)插補(bǔ)方法如表所示。缺失值處理2.數(shù)據(jù)插補(bǔ)插補(bǔ)可方法方法描述均值/中位數(shù)/眾數(shù)插補(bǔ)根據(jù)特征值的類型,用該特征取值的平均數(shù)/中位數(shù)/眾數(shù)進(jìn)行插補(bǔ)使用固定值將缺失的特征值用一個常量替換。如廣州一個工廠普通外來務(wù)工人員的“基本工資”特征的空缺值可以用2015年廣州市普通外來務(wù)工人員工資標(biāo)準(zhǔn)1895元/月,該方法就是使用固定值數(shù)據(jù)插補(bǔ)即利用某種方法將缺失數(shù)據(jù)補(bǔ)齊,常用的數(shù)據(jù)插補(bǔ)方法如表所示。缺失值處理插補(bǔ)可方法方法描述最近鄰插補(bǔ)在記錄中找到與缺失樣本最接近的樣本的該特征值插補(bǔ)回歸方法對帶有缺失值的變量,根據(jù)已有數(shù)據(jù)和與其有關(guān)的其他變量(因變量)的數(shù)據(jù)建立擬合模型來預(yù)測缺失的特征值插值法插值法是利用已知點(diǎn)建立合適的插值函數(shù)

,未知值由對應(yīng)點(diǎn)

求出的函數(shù)值近似代替熱卡填充法在數(shù)據(jù)集中找到與存在缺失值的變量最相似的變量,缺失值利用該相似變量的值進(jìn)行填充。如變量X存在缺失值,變量Y與變量X的相關(guān)系數(shù)最大,將Y對應(yīng)的數(shù)據(jù)按照大小排序,那么X對應(yīng)的缺失值可以用Y中排在缺失值前面的數(shù)據(jù)填充

缺失值處理

缺失值處理

缺失值處理解出拉格朗日插值多項(xiàng)式如下。將缺失的函數(shù)值對應(yīng)的點(diǎn)代入插值多項(xiàng)式得到缺失值的近似值。拉格朗日插值公式結(jié)構(gòu)緊湊,在理論分析中很方便,但是當(dāng)插值節(jié)點(diǎn)增減時,插值多項(xiàng)式就會隨之變化,這在實(shí)際計(jì)算中是很不方便的,為了克服這一缺點(diǎn),提出了牛頓插值法。缺失值處理

缺失值處理具體可以按照如表所示的格式有規(guī)律地計(jì)算差商。缺失值處理一階差商二階差商三階差商四階差商……

……

……

……

……

……

……

缺失值處理若缺失的特征不重要,不會進(jìn)入后續(xù)的建模步驟,或者算法自身能夠處理數(shù)據(jù)缺失的情況。如隨機(jī)森林,在這種情況下不需要對缺失數(shù)據(jù)做任何的處理,這種做法的缺點(diǎn)是在算法的選擇上有局限。缺失值處理3.不處理在Python中,可以利用如表所示的缺失值插補(bǔ)函數(shù)和方法插補(bǔ)缺失值。缺失值處理名稱功能所屬擴(kuò)展庫格式參數(shù)fillna將所有空值使用指定值替換pandasD.fillna(value=None,inplace=False)value表示用于填補(bǔ)空值的scalar、dict、Series或者DataFrame對象,inplace表示是否用填補(bǔ)空值后的DataFrame替換原對象,默認(rèn)為Falseinterpolate使用指定方法插補(bǔ)空值pandasDataFerpolate(method='linear',inplace=False)method表示用于插補(bǔ)的方法,默認(rèn)為linear;inplace表示是否用填補(bǔ)空值后的DataFrame替換原對象,默認(rèn)為Falsedropna刪除對象中的空值pandasDataFrame.dropna(how='any',inplace=False)how參數(shù)為刪除空值的方式,默認(rèn)為any,表示刪除全部空值在數(shù)據(jù)預(yù)處理時,異常值是否剔除,需視具體情況而定,因?yàn)橛行┊惓V悼赡芴N(yùn)含著有用的信息。異常值處理常用方法如表所示。異常值處理異常值處理方法方法描述刪除含有異常值的記錄直接將含有異常值的記錄刪除視為缺失值將異常值視為缺失值,利用缺失值處理的方法進(jìn)行處理不處理直接在具有異常值的數(shù)據(jù)集上進(jìn)行模型訓(xùn)練將含有異常值的記錄直接刪除這種方法簡單易行,但缺點(diǎn)也很明顯,在觀測值很少的情況下,這種處理方式會造成樣本量不足,可能會改變變量的原有分布,從而造成分析結(jié)果的不準(zhǔn)確。視為缺失值處理的好處是可以利用現(xiàn)有變量的信息,對異常值(缺失值)進(jìn)行填補(bǔ)。很多情況下,要先分析異常值出現(xiàn)的可能原因,再判斷異常值是否應(yīng)該舍棄,如果是正確的數(shù)據(jù),可以直接在具有異常值的數(shù)據(jù)集上進(jìn)行建模。異常值處理1數(shù)據(jù)分布與趨勢探查目錄數(shù)據(jù)質(zhì)量校驗(yàn)2數(shù)據(jù)清洗3數(shù)據(jù)合并4數(shù)據(jù)合并即通過數(shù)據(jù)堆疊、主鍵合并等方式將不同的有關(guān)聯(lián)性的數(shù)據(jù)信息合并在同一張表中。數(shù)據(jù)堆疊就是簡單地把兩個表拼在一起,也可以稱為軸向連接、綁定或連接。根據(jù)連接軸不同的方向,數(shù)據(jù)堆疊可以分為橫向堆疊和縱向堆疊。橫向堆疊即將兩個表在X軸向連接到一起,縱向堆疊是將兩個數(shù)據(jù)表在Y軸向上拼接,可以利用Python中pandas庫的concat函數(shù)對兩個表進(jìn)行橫向或者縱向堆疊,其基本語法格式如下。數(shù)據(jù)堆疊pandas.concat(objs,axis=0,join='outer',join_axes=None,ignore_index=False,keys=None,levels=None,names=None,verify_integrity=False,copy=True)concat函數(shù)常用的參數(shù)及其說明如表所示。數(shù)據(jù)堆疊參數(shù)名稱說明objs接收多個Series,DataFrame,Panel的組合,無默認(rèn)axis接收0或1,表示連接的軸向,默認(rèn)為0join接收inner或outer,表示其他軸向上的索引是按交集(inner)還是并集(outer)進(jìn)行合并,默認(rèn)為outerjoin_axes接收Index對象,表示用于其他n-1條軸的索引,不執(zhí)行并∕交集運(yùn)算,默認(rèn)為Noneconcat函數(shù)常用的參數(shù)及其說明如表所示。數(shù)據(jù)堆疊參數(shù)名稱說明ignore_index接收bool,表示是否不保留連接軸上的索引,產(chǎn)生一組新索引range(total_length),默認(rèn)為Falsekeys接收sequence,表示與連接對象有關(guān)的值,用于形成連接軸向上的層次化索引,默認(rèn)為Nonelevels接收包含多個sequence的list,在指定keys參數(shù)后,指定用作層次化索引時各級別中的索引,默認(rèn)為Nonenames接收list,在設(shè)置了keys和levels參數(shù)后,用于創(chuàng)建分層級別的名稱,默認(rèn)為Noneverify_integrity接收bool,表示是否檢查結(jié)果對象新軸上的重復(fù)情況,如果發(fā)現(xiàn)重復(fù)則引發(fā)異常,默認(rèn)為False使用concat函數(shù)時,當(dāng)axis=1時將不同表中數(shù)據(jù)做行對齊,而在默認(rèn)情況下,即axis=0時將不同表中數(shù)據(jù)做列對齊,將不同行索引的兩張或多張表縱向合并。當(dāng)需要合并的表索引或列名不完全一樣時,可以使用join參數(shù)選擇是內(nèi)連接還是外連接,在內(nèi)連接的情況下,僅僅返回索引或列名的重疊部分;在外連接的情況下,則顯示索引或列名的并集部分?jǐn)?shù)據(jù),不足的地方則使用空值填補(bǔ)。當(dāng)需要合并的表含有的主鍵或列名完全一樣時,不論join參數(shù)取值是inner或者outer,結(jié)果都是將表格完全按照X軸或Y軸拼接起來。如果要實(shí)現(xiàn)縱向堆疊的兩張表列名稱完全一致,也可以利用append方法實(shí)現(xiàn)堆疊的目標(biāo),其基本語法格式如下。數(shù)據(jù)堆疊pandas.DataFrame.append(self,other,ignore_index=False,verify_integrity=False)append函數(shù)常用的參數(shù)及其說明如表所示。數(shù)據(jù)堆疊參數(shù)名稱說明other接收DataFrame或Series。表示要添加的新數(shù)據(jù)。無默認(rèn)ignore_index接收bool。如果輸入True,會對新生成的DataFrame使用新的索引(自動產(chǎn)生)而忽略原來數(shù)據(jù)的索引。默認(rèn)為Falseverify_integrity接收bool。如果輸入True,那么當(dāng)ignore_index為False時,會檢查添加的數(shù)據(jù)索引是否沖突,如果沖突,則會添加失敗。默認(rèn)為False主鍵合并即一個或多個鍵將兩個數(shù)據(jù)集的行連接起來,如果兩張包含不同字段的表含有同一個主鍵,那么可以根據(jù)相同的主鍵將兩張表拼接起來,結(jié)果集列數(shù)為兩張標(biāo)的列數(shù)和減去連接鍵的數(shù)量,如圖所示。主鍵合并Python中pandas庫的merge函數(shù)和join方法均可以實(shí)現(xiàn)主鍵合并,merge函數(shù)的基本語法格式如下。merge函數(shù)常用的參數(shù)及其說明如表所示。主鍵合并pandas.merge(left,right,how='inner',on=None,left_on=None,right_on=None,left_index=False,right_index=False,sort=False,suffixes=('_x','_y'),copy=True,indicator=False)參數(shù)名稱說明left接收DataFrame或Series。表示要添加的新數(shù)據(jù)。無默認(rèn)right接收DataFrame或Series。表示要添加的新數(shù)據(jù)。無默認(rèn)how接收inner,outer,left,right。表示數(shù)據(jù)的連接方式。默認(rèn)為inneron接收str或sequence。表示兩個數(shù)據(jù)合并的主鍵(必須一致)。默認(rèn)為Nonemerge函數(shù)常用的參數(shù)及其說明如表所示。主鍵合并參數(shù)名稱說明left_on接收str或sequence。表示left參數(shù)接收數(shù)據(jù)用于合并的主鍵。默認(rèn)為Noneright_on接收str或sequence。表示right參數(shù)接收數(shù)據(jù)用于合并的主鍵。默認(rèn)為Noneleft_index接收bool。表示是否將left參數(shù)接收數(shù)據(jù)的index作為連接主鍵。默認(rèn)為Falseright_index接收bool。表示是否將right參數(shù)接收數(shù)據(jù)的index作為連接主鍵。默認(rèn)為Falsesort接收bool。表示是否根據(jù)連接鍵對合并后的數(shù)據(jù)進(jìn)行排序。默認(rèn)為Falsesuffixes接收tuple。表示用于追加到left和right參數(shù)接收數(shù)據(jù)重疊列名的尾綴。默認(rèn)為('_x','_y')join方法實(shí)現(xiàn)主鍵合并的方式不同于merge函數(shù),join方法實(shí)現(xiàn)主鍵合并時要求不同表中的主鍵名稱必須相同,其基本語法格式如下。join方法常用的參數(shù)及其說明如表所示。主鍵合并pandas.DataFrame.join(self,other,on=None,how='left',lsuffix='',rsuffix='',sort=False)參數(shù)名稱說明other接收DataFrame、Series或者包含了多個DataFrame的list。表示參與連接的其他DataFrame。無默認(rèn)值on接收列名或者包含列名的list或tuple。表示用于連接的列名。默認(rèn)為Nonejoin方法常用的參數(shù)及其說明如表所示。主鍵合并參數(shù)名稱說明how接收特定str。inner代表內(nèi)連接,outer代表外連接,left和right分別代表左連接和右連接。默認(rèn)為innerlsuffix接收str。表示用于追加到左側(cè)重疊列名的末尾。無默認(rèn)值rsuffix接收str。表示用于追加到右側(cè)重疊列名的末尾。無默認(rèn)值sort根據(jù)連接鍵對合并后的數(shù)據(jù)進(jìn)行排序,默認(rèn)為True本章介紹了機(jī)器學(xué)習(xí)中數(shù)據(jù)質(zhì)量校驗(yàn)、數(shù)據(jù)分布與趨勢探索、數(shù)據(jù)清洗和數(shù)據(jù)合并四個內(nèi)容。數(shù)據(jù)質(zhì)量校驗(yàn)主要介紹了缺失值、異常值等數(shù)據(jù)的探索,異常值可以利用3б原則和箱線圖識別。數(shù)據(jù)分布與趨勢探索主要介紹了對定性數(shù)據(jù)和定量數(shù)據(jù)的分析方法,如餅圖、散點(diǎn)圖、均值等方式。數(shù)據(jù)預(yù)處理部分主要介紹了數(shù)據(jù)清洗和數(shù)據(jù)合并,在數(shù)據(jù)清洗中介紹了缺失值和異常值的處理辦法,如刪除、插補(bǔ)等。數(shù)據(jù)合并主要介紹了數(shù)據(jù)合并的幾種方法。小結(jié)特征工程14-6月-231特征選擇目錄特征變換2通常情況下,使用原始數(shù)據(jù)直接建模的效果往往不好,為了使建立的模型簡單精確,需要對原始數(shù)據(jù)進(jìn)行特征變換,把原始的特征轉(zhuǎn)化為更為有效的特征常用的特征變換方法有特征縮放、獨(dú)熱編碼和特征離散化等不同特征之間往往具有不同的量綱,由此所造成的數(shù)值間的分布差異可能會很大,在涉及空間距離計(jì)算或梯度下降法等情況時,不對量綱差異進(jìn)行處理會影響數(shù)據(jù)分析結(jié)果的準(zhǔn)確性為了消除特征之間量綱和取值范圍造成的影響,需要對數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)化處理。常用數(shù)據(jù)標(biāo)準(zhǔn)化方法有離差標(biāo)準(zhǔn)化、標(biāo)準(zhǔn)差標(biāo)準(zhǔn)化、小數(shù)定標(biāo)標(biāo)準(zhǔn)化和函數(shù)轉(zhuǎn)換等特征縮放離差標(biāo)準(zhǔn)化是對原始數(shù)據(jù)的一種線性變換,結(jié)果是將原始數(shù)據(jù)的數(shù)值映射到[0,1]區(qū)間內(nèi),轉(zhuǎn)換公式如下。

其中,為樣本數(shù)據(jù)的最大值,

為樣本數(shù)據(jù)的最小值,

為極差。離差標(biāo)準(zhǔn)化保留了原始數(shù)據(jù)值之間的聯(lián)系,是消除量綱和數(shù)據(jù)取值范圍影響最簡單的方法,但受離群點(diǎn)影響較大,適用于分布較為均勻的數(shù)據(jù)。特征縮放1.離差標(biāo)準(zhǔn)化

特征縮放2.標(biāo)準(zhǔn)差標(biāo)準(zhǔn)化通過移動數(shù)據(jù)的小數(shù)位數(shù),將數(shù)據(jù)映射到區(qū)間[-1,1]區(qū)間,移動的小數(shù)位數(shù)取決于數(shù)據(jù)絕對值的最大值。轉(zhuǎn)化公式如下,在下方公式中,

表示數(shù)據(jù)整數(shù)位個數(shù)。特征縮放3.小數(shù)定標(biāo)標(biāo)準(zhǔn)化函數(shù)變換是使用數(shù)學(xué)函數(shù)對原始數(shù)據(jù)進(jìn)行轉(zhuǎn)換,改變原始數(shù)據(jù)的特征,使特征變得更適合建模,常用的包括平方、開方、取對數(shù)、差分運(yùn)算等。平方運(yùn)算如下開方運(yùn)算如下取對數(shù)運(yùn)算如下差分運(yùn)算如下特征縮放4.函數(shù)轉(zhuǎn)換函數(shù)變換常用來將不具有正態(tài)分布的數(shù)據(jù)變換成具有正態(tài)分布的數(shù)據(jù)。在時間序列分析中,簡單的對數(shù)變換或者差分運(yùn)算常常就可以將非平穩(wěn)序列轉(zhuǎn)換成平穩(wěn)序列。還可以使用對數(shù)函數(shù)轉(zhuǎn)換和反正切函數(shù)轉(zhuǎn)換等函數(shù)轉(zhuǎn)換方法對數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)化。對數(shù)函數(shù)轉(zhuǎn)換是指利用以10為底的對數(shù)函數(shù)對數(shù)據(jù)進(jìn)行轉(zhuǎn)換,即;反正切函數(shù)轉(zhuǎn)換即

,如果要求反正切函數(shù)轉(zhuǎn)換的結(jié)果全部落入[0,1]區(qū)間,那么要求原始數(shù)據(jù)全部大于等于0,否則小于0的數(shù)據(jù)會被映射到[-1,0]區(qū)間。特征縮放在機(jī)器學(xué)習(xí)中,經(jīng)常會遇到類型數(shù)據(jù),如性別分為男、女,手機(jī)運(yùn)營商分為移動、聯(lián)通和電信,這種情況下,通常會選擇將其轉(zhuǎn)化為數(shù)值代入模型,如0、1和–1、0、1,這個時候往往默認(rèn)為連續(xù)型數(shù)值進(jìn)行處理,然而這樣會影響模型的效果。獨(dú)熱編碼便即One-Hot編碼,又稱一位有效編碼,是處理類型數(shù)據(jù)較好的方法,主要是使用N位狀態(tài)寄存器來對N個狀態(tài)進(jìn)行編碼,每個狀態(tài)都有它獨(dú)立的寄存器位,并且在任意時候都只有一個編碼位有效。對于每一個特征,如果它有m個可能值,那么經(jīng)過獨(dú)熱編碼后,就變成了m個二元特征,并且這些特征之間是互斥的,每一次都只有一個被激活,這時原來的數(shù)據(jù)經(jīng)過獨(dú)熱編碼后會變成稀疏矩陣。對于性別男和女,利用獨(dú)熱編碼后可以表示為10和01。獨(dú)熱編碼獨(dú)熱編碼有以下優(yōu)點(diǎn)。將離散型特征的取值擴(kuò)展到歐氏空間,離散型特征的某個取值就對應(yīng)歐氏空間的某個點(diǎn)。對離散型特征使用獨(dú)熱編碼,可以讓特征之間的距離計(jì)算更為合理。獨(dú)熱編碼離散化是指將連續(xù)型特征(數(shù)值型)變換成離散型特征(類別型)的過程,需要在數(shù)據(jù)的取值范圍內(nèi)設(shè)定若干個離散的劃分點(diǎn),將取值范圍劃分為一系列區(qū)間,最后用不同的符號或標(biāo)簽代表落在每個子區(qū)間。例如,將年齡離散化為年齡段,如圖所示。離散化部分只能接收離散型數(shù)據(jù)的算法,需要將數(shù)據(jù)離散化后才能正常運(yùn)行,如ID3、Apriori算法等。而使用離散化搭配獨(dú)熱編碼的方法,還能夠降低數(shù)據(jù)的復(fù)雜度,將其變得稀疏,增加算法運(yùn)行速度。常用的離散化方法主要有3種。等寬法等頻法通過聚類分析離散化(一維)離散化等寬法是將數(shù)據(jù)的值域分成具有相同寬度的區(qū)間的離散化方法,區(qū)間的個數(shù)由數(shù)據(jù)本身的特點(diǎn)決定或者用戶指定,與制作頻率分布表類似。pandas提供了cut函數(shù),可以進(jìn)行連續(xù)型數(shù)據(jù)的等寬離散化,其基礎(chǔ)語法格式如下。離散化1.等寬法pandas.cut(x,bins,right=True,labels=None,retbins=False,precision=3,include_lowest=False)cut函數(shù)常用參數(shù)及其說明如表所示。離散化參數(shù)名稱說明x接收數(shù)組或Series。表示需要進(jìn)行離散化處理的數(shù)據(jù),無默認(rèn)值bins接收int,list,array,tuple。表示若為int,代表離散化后的類別數(shù)目;若為序列類型的數(shù)據(jù),則表示進(jìn)行切分的區(qū)間,每兩個數(shù)間隔為一個區(qū)間,無默認(rèn)值right接收boolean。表示右側(cè)是否為閉區(qū)間,默認(rèn)為Truelabels接收list,array。表

溫馨提示

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

評論

0/150

提交評論