版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第5章數(shù)據(jù)采集與預(yù)處理
《大數(shù)據(jù)導(dǎo)論》教材官網(wǎng):/post/bigdata-introduction/提綱5.1數(shù)據(jù)采集5.2數(shù)據(jù)清洗5.3數(shù)據(jù)轉(zhuǎn)換5.4數(shù)據(jù)脫敏百度搜索廈門大學(xué)數(shù)據(jù)庫實(shí)驗(yàn)室網(wǎng)站訪問平臺(tái)5.1數(shù)據(jù)采集5.1.1數(shù)據(jù)采集概念5.1.2數(shù)據(jù)采集的三大要點(diǎn)5.1.3數(shù)據(jù)采集的數(shù)據(jù)源5.1.4數(shù)據(jù)采集方法5.1.5網(wǎng)絡(luò)爬蟲5.1.1數(shù)據(jù)采集概念數(shù)據(jù)采集,又稱“數(shù)據(jù)獲取”,是數(shù)據(jù)分析的入口,也是數(shù)據(jù)分析過程中相當(dāng)重要的一個(gè)環(huán)節(jié),它通過各種技術(shù)手段把外部各種數(shù)據(jù)源產(chǎn)生的數(shù)據(jù)實(shí)時(shí)或非實(shí)時(shí)地采集并加以利用。傳統(tǒng)的數(shù)據(jù)采集大數(shù)據(jù)采集數(shù)據(jù)源來源單一,數(shù)據(jù)量相對(duì)較少來源廣泛,數(shù)據(jù)量巨大數(shù)據(jù)類型結(jié)構(gòu)單一數(shù)據(jù)類型豐富,包括結(jié)構(gòu)化、半結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)關(guān)系數(shù)據(jù)庫和并行數(shù)據(jù)倉庫分布式數(shù)據(jù)庫,分布式文件系統(tǒng)表
傳統(tǒng)的數(shù)據(jù)采集與大數(shù)據(jù)采集區(qū)別5.1.2數(shù)據(jù)采集的三大要點(diǎn)0203多維性全面性高效性015.1.3數(shù)據(jù)采集的數(shù)據(jù)源互聯(lián)網(wǎng)數(shù)據(jù)日志文件傳感器企業(yè)業(yè)務(wù)系統(tǒng)數(shù)據(jù)5.1.3數(shù)據(jù)采集的數(shù)據(jù)源1.傳感器數(shù)據(jù)傳感器是一種檢測(cè)裝置,能感受到被測(cè)量的信息,并能將感受到的信息,按一定規(guī)律變換成為電信號(hào)或其他所需形式的信息輸出,以滿足信息的傳輸、處理、存儲(chǔ)、顯示、記錄和控制等要求。在工作現(xiàn)場(chǎng),我們會(huì)安裝很多的各種類型的傳感器,如壓力傳感器、溫度傳感器、流量傳感器、聲音傳感器、電參數(shù)傳感器等等。傳感器對(duì)環(huán)境的適應(yīng)能力很強(qiáng),可以應(yīng)對(duì)各種惡劣的工作環(huán)境。在日常生活中,如溫度計(jì)、麥克風(fēng)、DV錄像、手機(jī)拍照功能等都屬于傳感器數(shù)據(jù)采集的一部分,支持圖片、音頻、視頻等文件或附件的采集工作。5.1.3數(shù)據(jù)采集的數(shù)據(jù)源2.互聯(lián)網(wǎng)數(shù)據(jù)互聯(lián)網(wǎng)數(shù)據(jù)的采集通常是借助于網(wǎng)絡(luò)爬蟲來完成的。所謂“網(wǎng)絡(luò)爬蟲”,就是一個(gè)在網(wǎng)上到處或定向抓取網(wǎng)頁數(shù)據(jù)的程序。抓取網(wǎng)頁的一般方法是,定義一個(gè)入口頁面,然后一般一個(gè)頁面中會(huì)包含指向其他頁面的URL,于是從當(dāng)前頁面獲取到這些網(wǎng)址加入到爬蟲的抓取隊(duì)列中,然后進(jìn)入到新頁面后再遞歸地進(jìn)行上述的操作。爬蟲數(shù)據(jù)采集方法可以將非結(jié)構(gòu)化數(shù)據(jù)從網(wǎng)頁中抽取出來,將其存儲(chǔ)為統(tǒng)一的本地?cái)?shù)據(jù)文件,并以結(jié)構(gòu)化的方式存儲(chǔ)。它支持圖片、音頻、視頻等文件或附件的采集,附件與正文可以自動(dòng)關(guān)聯(lián)。5.1.3數(shù)據(jù)采集的數(shù)據(jù)源3.日志文件許多公司的業(yè)務(wù)平臺(tái)每天都會(huì)產(chǎn)生大量的日志文件。日志文件數(shù)據(jù)一般由數(shù)據(jù)源系統(tǒng)產(chǎn)生,用于記錄數(shù)據(jù)源的執(zhí)行的各種操作活動(dòng),比如網(wǎng)絡(luò)監(jiān)控的流量管理、金融應(yīng)用的股票記賬和Web服務(wù)器記錄的用戶訪問行為。對(duì)于這些日志信息,我們可以得到出很多有價(jià)值的數(shù)據(jù)。通過對(duì)這些日志信息進(jìn)行采集,然后進(jìn)行數(shù)據(jù)分析,就可以從公司業(yè)務(wù)平臺(tái)日志數(shù)據(jù)中挖掘得到具有潛在價(jià)值的信息,為公司決策和公司后臺(tái)服務(wù)器平臺(tái)性能評(píng)估提供可靠的數(shù)據(jù)保證。系統(tǒng)日志采集系統(tǒng)做的事情就是收集日志數(shù)據(jù)提供離線和在線的實(shí)時(shí)分析使用。很多互聯(lián)網(wǎng)企業(yè)都有自己的海量數(shù)據(jù)采集工具,多用于系統(tǒng)日志采集,如Hadoop的Chukwa,Cloudera的Flume,F(xiàn)acebook的Scribe等,這些工具均采用分布式架構(gòu),能滿足每秒數(shù)百M(fèi)B的日志數(shù)據(jù)采集和傳輸需求。5.1.3數(shù)據(jù)采集的數(shù)據(jù)源4.企業(yè)業(yè)務(wù)系統(tǒng)數(shù)據(jù)一些企業(yè)會(huì)使用傳統(tǒng)的關(guān)系型數(shù)據(jù)庫MySQL和Oracle等來存儲(chǔ)業(yè)務(wù)系統(tǒng)數(shù)據(jù),除此之外,Redis和MongoDB這樣的NoSQL數(shù)據(jù)庫也常用于數(shù)據(jù)的存儲(chǔ)。企業(yè)每時(shí)每刻產(chǎn)生的業(yè)務(wù)數(shù)據(jù),以數(shù)據(jù)庫一行記錄形式被直接寫入到數(shù)據(jù)庫中。企業(yè)可以借助于ETL(Extract-Transform-Load)工具,把分散在企業(yè)不同位置的業(yè)務(wù)系統(tǒng)的數(shù)據(jù),抽取、轉(zhuǎn)換、加載到企業(yè)數(shù)據(jù)倉庫中,以供后續(xù)的商務(wù)智能分析使用(如圖所示)。通過采集不同業(yè)務(wù)系統(tǒng)的數(shù)據(jù)并統(tǒng)一保存到一個(gè)數(shù)據(jù)倉庫中,就可以為分散在企業(yè)不同地方的商務(wù)數(shù)據(jù)提供一個(gè)統(tǒng)一的視圖,滿足企業(yè)的各種商務(wù)決策分析需求。5.1.4數(shù)據(jù)采集方法數(shù)據(jù)采集是數(shù)據(jù)系統(tǒng)必不可少的關(guān)鍵部分,也是數(shù)據(jù)平臺(tái)的根基。根據(jù)不同的應(yīng)用環(huán)境及采集對(duì)象,有多種不同的數(shù)據(jù)采集方法,包括:系統(tǒng)日志采集分布式消息訂閱分發(fā)ETL網(wǎng)絡(luò)數(shù)據(jù)采集5.1.4數(shù)據(jù)采集方法Flume是Cloudera提供的一個(gè)高可用的,高可靠的,分布式的海量日志采集、聚合和傳輸?shù)南到y(tǒng),F(xiàn)lume支持在日志系統(tǒng)中定制各類數(shù)據(jù)發(fā)送方,用于收集數(shù)據(jù);同時(shí),F(xiàn)lume提供對(duì)數(shù)據(jù)進(jìn)行簡單處理,并寫到各種數(shù)據(jù)接受方(可定制)的能力。1.系統(tǒng)日志采集5.1.4數(shù)據(jù)采集方法2.分布式消息訂閱分發(fā)分布式消息訂閱分發(fā)也是一種常見的數(shù)據(jù)采集方式,其中,Kafka就是一種具有代表性的產(chǎn)品。Kafka是由LinkedIn公司開發(fā)的一種高吞吐量的分布式發(fā)布訂閱消息系統(tǒng),用戶通過Kafka系統(tǒng)可以發(fā)布大量的消息,同時(shí)也能實(shí)時(shí)訂閱消費(fèi)消息。Kafka的架構(gòu)包括以下組件:話題、生產(chǎn)者、服務(wù)代理、消費(fèi)者5.1.4數(shù)據(jù)采集方法3.ETLETL是英文Extract-Transform-Load的縮寫,常用于數(shù)據(jù)倉庫中的數(shù)據(jù)采集和預(yù)處理環(huán)節(jié)(如圖所示)。顧名思義,ETL從原系統(tǒng)中抽取數(shù)據(jù),并根據(jù)實(shí)際商務(wù)需求對(duì)數(shù)據(jù)進(jìn)行轉(zhuǎn)換,并把轉(zhuǎn)換結(jié)果加載到目標(biāo)數(shù)據(jù)存儲(chǔ)中??梢钥闯?,ETL既包含了數(shù)據(jù)采集環(huán)節(jié),也包含了數(shù)據(jù)預(yù)處理環(huán)節(jié)。Kettle是一款國外開源的ETL工具,使用Java語言編寫,可以在Windows、Linux、Unix上運(yùn)行,數(shù)據(jù)抽取高效、穩(wěn)定。5.1.4數(shù)據(jù)采集方法4.網(wǎng)絡(luò)數(shù)據(jù)采集網(wǎng)絡(luò)數(shù)據(jù)采集是指通過網(wǎng)絡(luò)爬蟲或網(wǎng)站公開應(yīng)用程序編程接口等方式從網(wǎng)站上獲取數(shù)據(jù)信息。該方法可以將非結(jié)構(gòu)化數(shù)據(jù)從網(wǎng)頁中抽取出來,將其存儲(chǔ)為統(tǒng)一的本地?cái)?shù)據(jù)文件,并以結(jié)構(gòu)化的方式存儲(chǔ)。它支持圖片、音頻、視頻等文件的采集,文件與正文可以自動(dòng)關(guān)聯(lián)。網(wǎng)絡(luò)數(shù)據(jù)采集的應(yīng)用領(lǐng)域十分廣泛,包括搜索引擎與垂直搜索平臺(tái)搭建與運(yùn)營,綜合門戶與行業(yè)門戶、地方門戶、專業(yè)門戶網(wǎng)站數(shù)據(jù)支撐與流量運(yùn)營,電子政務(wù)與電子商務(wù)平臺(tái)的運(yùn)營,知識(shí)管理與知識(shí)共享,企業(yè)競爭情報(bào)系統(tǒng)的運(yùn)營,BI商業(yè)智能系統(tǒng),信息咨詢與信息增值,信息安全和信息監(jiān)控等。5.1.5網(wǎng)絡(luò)爬蟲網(wǎng)絡(luò)爬蟲是一個(gè)自動(dòng)提取網(wǎng)頁的程序,它為搜索引擎從萬維網(wǎng)上下載網(wǎng)頁,是搜索引擎的重要組成部分。1.什么是網(wǎng)絡(luò)爬蟲5.1.5網(wǎng)絡(luò)爬蟲2.網(wǎng)絡(luò)爬蟲的組成網(wǎng)絡(luò)爬蟲由控制節(jié)點(diǎn)、爬蟲節(jié)點(diǎn)和資源庫構(gòu)成。網(wǎng)絡(luò)爬蟲的控制節(jié)點(diǎn)和爬蟲節(jié)點(diǎn)的結(jié)構(gòu)關(guān)系如圖所示。從圖中可以看出,網(wǎng)絡(luò)爬蟲中可以有多個(gè)控制節(jié)點(diǎn),每個(gè)控制節(jié)點(diǎn)下可以有多個(gè)爬蟲節(jié)點(diǎn),控制節(jié)點(diǎn)之間可以互相通信,同時(shí),控制節(jié)點(diǎn)和其下的各爬蟲節(jié)點(diǎn)之間也可以進(jìn)行互相通信,屬于同一個(gè)控制節(jié)點(diǎn)下的各爬蟲節(jié)點(diǎn)間亦可以互相通信。5.1.5網(wǎng)絡(luò)爬蟲3.網(wǎng)絡(luò)爬蟲的類型01030204通用網(wǎng)絡(luò)爬蟲聚焦網(wǎng)絡(luò)爬蟲增量式網(wǎng)絡(luò)爬蟲深層網(wǎng)絡(luò)爬蟲5.1.5網(wǎng)絡(luò)爬蟲3.網(wǎng)絡(luò)爬蟲的類型(1)通用網(wǎng)絡(luò)爬蟲。通用網(wǎng)絡(luò)爬蟲又稱“全網(wǎng)爬蟲”((ScalableWebCrawler)),爬行對(duì)象從一些種子URL擴(kuò)充到整個(gè)Web,該架構(gòu)主要為門戶站點(diǎn)搜索引擎和大型Web服務(wù)提供商采集數(shù)據(jù)。通用網(wǎng)絡(luò)爬蟲的結(jié)構(gòu)大致可以包括頁面爬行模塊、頁面分析模塊、鏈接過濾模塊、頁面數(shù)據(jù)庫、URL隊(duì)列和初始URL集合。為提高工作效率,通用網(wǎng)絡(luò)爬蟲會(huì)采取一定的爬行策略。常用的爬行策略有:深度優(yōu)先策略和廣度優(yōu)先策略。5.1.5網(wǎng)絡(luò)爬蟲3.網(wǎng)絡(luò)爬蟲的類型(2)聚焦網(wǎng)絡(luò)爬蟲。聚焦網(wǎng)絡(luò)爬蟲(FocusedCrawler),又稱“主題網(wǎng)絡(luò)爬蟲(TopicalCrawler)”,是指選擇性地爬行那些與預(yù)先定義好的主題相關(guān)頁面的網(wǎng)絡(luò)爬蟲。和通用網(wǎng)絡(luò)爬蟲相比,聚焦爬蟲只需要爬行與主題相關(guān)的頁面,極大地節(jié)省了硬件和網(wǎng)絡(luò)資源,保存的頁面也由于數(shù)量少而更新快,還可以很好地滿足一些特定人群對(duì)特定領(lǐng)域信息的需求。聚焦網(wǎng)絡(luò)爬蟲的工作流程較為復(fù)雜,需要根據(jù)一定的網(wǎng)頁分析算法過濾與主題無關(guān)的鏈接,保留有用的鏈接并將其放入等待抓取的URL隊(duì)列。然后,它將根據(jù)一定的搜索策略從隊(duì)列中選擇下一步要抓取的網(wǎng)頁URL,并重復(fù)上述過程,直到達(dá)到系統(tǒng)的某一條件時(shí)停止。另外,所有被爬蟲抓取的網(wǎng)頁將會(huì)被系統(tǒng)存儲(chǔ),進(jìn)行一定的分析、過濾,并建立索引,以便用于之后的查詢和檢索;對(duì)于聚焦網(wǎng)絡(luò)爬蟲來說,這一過程所得到的分析結(jié)果還可能對(duì)以后的抓取過程給出反饋和指導(dǎo)。聚焦網(wǎng)絡(luò)爬蟲常用的策略包括:基于內(nèi)容評(píng)價(jià)的爬行策略、基于鏈接結(jié)構(gòu)評(píng)價(jià)的爬行策略、基于增強(qiáng)學(xué)習(xí)的爬行策略和基于語境圖的爬行策略。5.1.5網(wǎng)絡(luò)爬蟲3.網(wǎng)絡(luò)爬蟲的類型(3)增量式網(wǎng)絡(luò)爬蟲。增量式網(wǎng)絡(luò)爬蟲(IncrementalWebCrawler)是指對(duì)已下載網(wǎng)頁采取增量式更新和只爬行新產(chǎn)生的或者已經(jīng)發(fā)生變化網(wǎng)頁的爬蟲,它能夠在一定程度上保證所爬行的頁面是盡可能新的頁面。和周期性爬行和刷新頁面的網(wǎng)絡(luò)爬蟲相比,增量式爬蟲只會(huì)在需要的時(shí)候爬行新產(chǎn)生或發(fā)生更新的頁面,并不重新下載沒有發(fā)生變化的頁面,可有效減少數(shù)據(jù)下載量,及時(shí)更新已爬行的網(wǎng)頁,減小時(shí)間和空間上的耗費(fèi),但是增加了爬行算法的復(fù)雜度和實(shí)現(xiàn)難度。增量式爬蟲有兩個(gè)目標(biāo):保持本地頁面集中存儲(chǔ)的頁面為最新頁面和提高本地頁面集中頁面的質(zhì)量。為實(shí)現(xiàn)第一個(gè)目標(biāo),增量式爬蟲需要通過重新訪問網(wǎng)頁來更新本地頁面集中頁面內(nèi)容。為了實(shí)現(xiàn)第二個(gè)目標(biāo),增量式爬蟲需要對(duì)網(wǎng)頁的重要性排序,常用的策略包括廣度優(yōu)先策略和PageRank優(yōu)先策略等。5.1.5網(wǎng)絡(luò)爬蟲3.網(wǎng)絡(luò)爬蟲的類型(4)深層網(wǎng)絡(luò)爬蟲。深層網(wǎng)絡(luò)爬蟲將Web頁面按存在方式分為表層網(wǎng)頁(SurfaceWeb)和深層網(wǎng)頁(DeepWeb,也稱InvisibleWebPage或HiddenWeb)。表層網(wǎng)頁是指傳統(tǒng)搜索引擎可以索引的頁面,以超鏈接可以到達(dá)的靜態(tài)網(wǎng)頁為主構(gòu)成的Web頁面。深層網(wǎng)頁是那些大部分內(nèi)容不能通過靜態(tài)鏈接獲取的、隱藏在搜索表單后的、只有用戶提交一些關(guān)鍵詞才能獲得的Web頁面。深層網(wǎng)絡(luò)爬蟲體系結(jié)構(gòu)包含6個(gè)基本功能模塊(爬行控制器、解析器、表單分析器、表單處理器、響應(yīng)分析器、LVS控制器)和兩個(gè)爬蟲內(nèi)部數(shù)據(jù)結(jié)構(gòu)(URL列表、LVS表)。5.1.5網(wǎng)絡(luò)爬蟲4.Scrapy爬蟲Scrapy是一套基于Twisted的異步處理框架,是純Python實(shí)現(xiàn)的爬蟲框架,用戶只需要定制開發(fā)幾個(gè)模塊就可以輕松的實(shí)現(xiàn)一個(gè)爬蟲,用來抓取網(wǎng)頁內(nèi)容或者各種圖片。Scrapy運(yùn)行于Linux/Windows/MacOS等多種環(huán)境,具有速度快、擴(kuò)展性強(qiáng)、使用簡便等特點(diǎn)。即便是新手,也能迅速學(xué)會(huì)使用Scrapy編寫所需要的爬蟲程序。Scrapy可以在本地運(yùn)行,也能部署到云端實(shí)現(xiàn)真正的生產(chǎn)級(jí)數(shù)據(jù)采集系統(tǒng)。Scrapy用途廣泛,可以用于數(shù)據(jù)挖掘、監(jiān)測(cè)和自動(dòng)化測(cè)試。Scrapy吸引人的地方在于它是一個(gè)框架,任何人都可以根據(jù)需求對(duì)它進(jìn)行修改。當(dāng)然,Scrapy只是Python的一個(gè)主流框架,除了Scrapy外,還有其他基于Python的爬蟲框架,包括Crawley、Portia、Newspaper、Python-goose、BeautifulSoup、Mechanize、Selenium和Cola燈。5.1.5網(wǎng)絡(luò)爬蟲4.Scrapy爬蟲(1)Scrapy體系架構(gòu)Scrapy體系架構(gòu)包括以下組成部分:Scrapy引擎(Engine)、爬蟲(Spiders)、下載器(Downloader)、調(diào)度器(Scheduler)、項(xiàng)目管道(ItemPipeline)、下載器中間件(DownloaderMiddlewares)、爬蟲中間件(SpiderMiddlewares)、調(diào)度器中間件(SchedulerMiddlewares)5.1.5網(wǎng)絡(luò)爬蟲4.Scrapy爬蟲(2)Scrapy工作流Scrapy工作流也叫作“運(yùn)行流程”或叫作“數(shù)據(jù)處理流程”,整個(gè)數(shù)據(jù)處理流程由Scrapy引擎進(jìn)行控制,其主要的運(yùn)行步驟如下:①Scrapy引擎從調(diào)度器中取出一個(gè)鏈接(URL)用于接下來的抓??;②Scrapy引擎把URL封裝成一個(gè)請(qǐng)求并傳給下載器;③下載器把資源下載下來,并封裝成應(yīng)答包;④爬蟲解析應(yīng)答包;⑤如果解析出的是項(xiàng)目,則交給項(xiàng)目管道進(jìn)行進(jìn)一步的處理;⑥如果解析出的是鏈接(URL),則把URL交給調(diào)度器等待抓取。5.1.5網(wǎng)絡(luò)爬蟲5.反爬機(jī)制為什么會(huì)有反爬機(jī)制?原因主要有兩點(diǎn):第一,在大數(shù)據(jù)時(shí)代,數(shù)據(jù)是十分寶貴的財(cái)富,很多企業(yè)不愿意讓自己的數(shù)據(jù)被別人免費(fèi)獲取,因此,很多企業(yè)都為自己的網(wǎng)站運(yùn)用了反爬機(jī)制,防止網(wǎng)頁上的數(shù)據(jù)被爬走;第二,簡單低級(jí)的網(wǎng)絡(luò)爬蟲,數(shù)據(jù)采集速度快,偽裝度低,如果沒有反爬機(jī)制,它們可以很快地抓取大量數(shù)據(jù),甚至因?yàn)檎?qǐng)求過多,造成網(wǎng)站服務(wù)器不能正常工作,影響了企業(yè)的業(yè)務(wù)開展。反爬機(jī)制也是一把雙刃劍,一方面可以保護(hù)企業(yè)網(wǎng)站和網(wǎng)站數(shù)據(jù),但是,另一方面,如果反爬機(jī)制過于嚴(yán)格,可能會(huì)誤傷到真正的用戶請(qǐng)求,也就是真正用戶的請(qǐng)求被錯(cuò)誤當(dāng)成網(wǎng)絡(luò)爬蟲而被拒絕訪問。如果既要和“網(wǎng)絡(luò)爬蟲”死磕,又要保證很低的誤傷率,那么又會(huì)增加網(wǎng)站研發(fā)的成本。5.2數(shù)據(jù)清洗5.2.1數(shù)據(jù)清洗的內(nèi)容5.2.2數(shù)據(jù)清洗的注意事項(xiàng)5.2.1數(shù)據(jù)清洗的內(nèi)容(1)缺失值處理。由于調(diào)查、編碼和錄入誤差,數(shù)據(jù)中可能存在一些缺失值,需要給予適當(dāng)?shù)奶幚?。常用的處理方法有:估算、整例刪除、變量刪除和成對(duì)刪除。(a)估算:最簡單的辦法就是用某個(gè)變量的樣本均值、中位數(shù)或眾數(shù)代替缺失值。這種辦法簡單,但沒有充分考慮數(shù)據(jù)中已有的信息,誤差可能較大。另一種辦法就是根據(jù)調(diào)查對(duì)象對(duì)其他問題的答案,通過變量之間的相關(guān)分析或邏輯推論進(jìn)行估計(jì)。例如,某一產(chǎn)品的擁有情況可能與家庭收入有關(guān),可以根據(jù)調(diào)查對(duì)象的家庭收入推算擁有這一產(chǎn)品的可能性。(b)整例刪除:剔除含有缺失值的樣本。由于很多問卷都可能存在缺失值,這種做法的結(jié)果可能導(dǎo)致有效樣本量大大減少,無法充分利用已經(jīng)收集到的數(shù)據(jù)。因此,只適合關(guān)鍵變量缺失,或者含有異常值或缺失值的樣本比重很小的情況。(c)變量刪除:如果某一變量的缺失值很多,而且該變量對(duì)于所研究的問題不是特別重要,則可以考慮將該變量刪除。這種做法減少了供分析用的變量數(shù)目,但沒有改變樣本量。(d)成對(duì)刪除:是用一個(gè)特殊碼(通常是9、99、999等)代表缺失值,同時(shí)保留數(shù)據(jù)集中的全部變量和樣本。但是,在具體計(jì)算時(shí)只采用有完整答案的樣本,因而不同的分析因涉及的變量不同,其有效樣本量也會(huì)有所不同。這是一種保守的處理方法,最大限度地保留了數(shù)據(jù)集中的可用信息。數(shù)據(jù)清洗的內(nèi)容主要包括5.2.1數(shù)據(jù)清洗的內(nèi)容(2)異常值處理。根據(jù)每個(gè)變量的合理取值范圍和相互關(guān)系,檢查數(shù)據(jù)是否合乎要求,發(fā)現(xiàn)超出正常范圍、邏輯上不合理或者相互矛盾的數(shù)據(jù)。例如,用1-7級(jí)量表測(cè)量的變量出現(xiàn)了0值,體重出現(xiàn)了負(fù)數(shù),都應(yīng)視為超出正常值域范圍。SPSS、SAS、和Excel等計(jì)算機(jī)軟件都能夠根據(jù)定義的取值范圍,自動(dòng)識(shí)別每個(gè)超出范圍的變量值。具有邏輯上不一致性的答案可能以多種形式出現(xiàn):例如,許多調(diào)查對(duì)象說自己開車上班,又報(bào)告沒有汽車;或者調(diào)查對(duì)象報(bào)告自己是某品牌的重度購買者和使用者,但同時(shí)又在熟悉程度量表上給了很低的分值。發(fā)現(xiàn)不一致時(shí),要列出問卷序號(hào)、記錄序號(hào)、變量名稱、錯(cuò)誤類別等,便于進(jìn)一步核對(duì)和糾正。5.2.1數(shù)據(jù)清洗的內(nèi)容(3)數(shù)據(jù)類型轉(zhuǎn)換。數(shù)據(jù)類型往往會(huì)影響到后續(xù)的數(shù)據(jù)處理分析環(huán)節(jié),因此,需要明確每個(gè)字段的數(shù)據(jù)類型,比如,來自A表的“學(xué)號(hào)”是字符型,而來自B表的字段是日期型,在數(shù)據(jù)清洗的時(shí)候就需要對(duì)二者的數(shù)據(jù)類型進(jìn)行統(tǒng)一處理。(4)重復(fù)值處理。重復(fù)值的存在會(huì)影響數(shù)據(jù)分析和挖掘結(jié)果的準(zhǔn)確性,所以,在數(shù)據(jù)分析和建模之前需要進(jìn)行數(shù)據(jù)重復(fù)性檢驗(yàn),如果存在重復(fù)值,還需要進(jìn)行重復(fù)值的刪除。5.2.2數(shù)據(jù)清洗的注意事項(xiàng)在進(jìn)行數(shù)據(jù)清洗時(shí),需要注意如下事項(xiàng):(1)數(shù)據(jù)清洗時(shí)優(yōu)先進(jìn)行缺失值、異常值和數(shù)據(jù)類型轉(zhuǎn)換的操作,最后進(jìn)行重復(fù)值的處理。(2)在對(duì)缺失值、異常值進(jìn)行處理時(shí),要根據(jù)業(yè)務(wù)的需求進(jìn)行處理,這些處理并不是一成不變的,常見的填充包括:統(tǒng)計(jì)值填充(常用的統(tǒng)計(jì)值有均值、中位數(shù)、眾數(shù))、前/后值填充(一般使用在前后數(shù)據(jù)存在關(guān)聯(lián),比如數(shù)據(jù)是按照時(shí)間進(jìn)行記錄的)、零值填充。(3)在數(shù)據(jù)清洗之前,最為重要的對(duì)數(shù)據(jù)表的查看,要了解表的結(jié)構(gòu)和發(fā)現(xiàn)需要處理的值,這樣才能將數(shù)據(jù)清洗徹底。5.2.2數(shù)據(jù)清洗的注意事項(xiàng)(4)數(shù)據(jù)量的大小也關(guān)系著數(shù)據(jù)的處理方式。如果總數(shù)據(jù)量較大,而異常的數(shù)據(jù)(包括缺失值和異常值)的量較少時(shí),可以選擇直接刪除處理,因?yàn)檫@并不太會(huì)影響到最終的分析結(jié)果;但是,如果總數(shù)據(jù)量較小,則每個(gè)數(shù)據(jù)都可能影響分析的結(jié)果,這個(gè)時(shí)候就需要認(rèn)真去對(duì)數(shù)據(jù)進(jìn)行處理(可能需要通過其他的關(guān)聯(lián)表去找到相關(guān)數(shù)據(jù)進(jìn)行填充)。(5)在導(dǎo)入數(shù)據(jù)表后,一般需要將所有列一個(gè)個(gè)地進(jìn)行清洗,來保證數(shù)據(jù)處理的徹底性,有些數(shù)據(jù)可能看起來是正??梢允褂玫?,實(shí)際上在進(jìn)行處理時(shí)可能會(huì)出現(xiàn)問題(比如某列數(shù)據(jù)在查看時(shí)看起來是數(shù)值類型,但是其實(shí)這列數(shù)據(jù)的類型卻是字符串,這就會(huì)導(dǎo)致在進(jìn)行數(shù)值操作時(shí)無法使用)。5.3數(shù)據(jù)轉(zhuǎn)換5.3.1數(shù)據(jù)轉(zhuǎn)換策略5.3.2平滑處理5.3.3規(guī)范化處理5.3.1數(shù)據(jù)轉(zhuǎn)換策略常見的數(shù)據(jù)轉(zhuǎn)換策略包括:(1)平滑處理。幫助除去數(shù)據(jù)中的噪聲,常用的方法包括分箱、回歸和聚類等。(2)聚集處理。對(duì)數(shù)據(jù)進(jìn)行匯總操作。例如,每天的數(shù)據(jù)經(jīng)過匯總操作可以獲得每月或每年的總額。這一操作常用于構(gòu)造數(shù)據(jù)立方體或?qū)?shù)據(jù)進(jìn)行多粒度的分析。(3)數(shù)據(jù)泛化處理。用更抽象(更高層次)的概念來取代低層次的數(shù)據(jù)對(duì)象。例如,街道屬性可以泛化到更高層次的概念,如城市、國家,再比如年齡屬性可以映射到更高層次的概念,如年輕、中年和老年。(4)規(guī)范化處理。將屬性值按比例縮放,使之落入一個(gè)特定的區(qū)間,比如0.0~1.0。常用的數(shù)據(jù)規(guī)范化方法包括Min-Max規(guī)范化、Z-Score規(guī)范化和小數(shù)定標(biāo)規(guī)范化等。(5)屬性構(gòu)造處理。根據(jù)已有屬性集構(gòu)造新的屬性,后續(xù)數(shù)據(jù)處理直接使用新增的屬性。例如,根據(jù)已知的質(zhì)量和體積屬性,計(jì)算出新的屬性——密度。5.3.2平滑處理1.分箱分箱(Bin)方法通過利用被平滑數(shù)據(jù)點(diǎn)的周圍點(diǎn)(近鄰),對(duì)一組排序數(shù)據(jù)進(jìn)行平滑,排序后的數(shù)據(jù)被分配到若干箱子(稱為Bin)中。如圖5所示,對(duì)箱子的劃分方法一般有兩種,一種是等高方法,即每個(gè)箱子中元素的個(gè)數(shù)相等,另一種是等寬方法,即每個(gè)箱子的取值間距(左右邊界之差)相同。5.3.2平滑處理1.分箱這里給出一個(gè)實(shí)例介紹分箱方法。假設(shè)有一個(gè)數(shù)據(jù)集X={4,8,15,21,21,24,25,28,34},這里采用基于平均值的等高分箱方法對(duì)其進(jìn)行平滑處理,則分箱處理的步驟如下:(1)把原始數(shù)據(jù)集X放入以下三個(gè)箱子:
箱子1:4,8,15
箱子2:21,21,24
箱子3:25,28,34(2)分別計(jì)算得到每個(gè)箱子的平均值:箱子1的平均值:9
箱子2的平均值:22
箱子3的平均值:29(3)用每個(gè)箱子的平均值替換該箱子內(nèi)的所有元素:
箱子1:9,9,9
箱子2:22,22,22
箱子3:29,29,29(4)合并各個(gè)箱子中的元素得到新的數(shù)據(jù)集{9,9,9,22,22,22,29,29,29}。5.3.2平滑處理此外,還可以采用基于箱子邊界的等高分箱方法對(duì)數(shù)據(jù)進(jìn)行平滑處理。利用邊界進(jìn)行平滑時(shí),對(duì)于給定的箱子,其最大值與最小值就構(gòu)成了該箱子的邊界,利用每個(gè)箱子的邊界值(最大值或最小值)可替換該箱子中的所有值。這時(shí)的分箱結(jié)果如下:箱子1:4,4,15箱子2:21,21,24箱子3:25,25,34
合并各個(gè)箱子中的元素得到新的數(shù)據(jù)集{4,4,15,21,21,24,25,25,34}。1.分箱5.3.2平滑處理2.回歸可以利用擬合函數(shù)對(duì)數(shù)據(jù)進(jìn)行平滑。例如,借助線性回歸方法(包括多變量回歸方法),就可以獲得多個(gè)變量之間的擬合關(guān)系,從而達(dá)到利用一個(gè)(或一組)變量值來預(yù)測(cè)另一個(gè)變量取值的目的。如圖所示,利用回歸分析方法所獲得的擬合函數(shù),能夠幫助平滑數(shù)據(jù)并除去其中的噪聲。圖
對(duì)數(shù)據(jù)進(jìn)行線性回歸擬合5.3.2平滑處理3.聚類通過聚類分析方法可幫助發(fā)現(xiàn)異常數(shù)據(jù)。如圖所示,相似或相鄰近的數(shù)據(jù)聚合在一起形成了各個(gè)聚類集合,而那些位于這些聚類集合之外的數(shù)據(jù)對(duì)象,則被認(rèn)為是異常數(shù)據(jù)。圖
基于聚類分析方法的異常數(shù)據(jù)監(jiān)測(cè)5.3.3規(guī)范化處理1.Min-Max規(guī)范化Min-Max規(guī)范化方法對(duì)被轉(zhuǎn)換數(shù)據(jù)進(jìn)行一種線性轉(zhuǎn)換,其轉(zhuǎn)換公式如下:x=(待轉(zhuǎn)換屬性值?屬性最小值)/(屬性最大值?屬性最小值)例如,假設(shè)屬性的最大值和最小值分別是87000元和11000元,現(xiàn)在需要利用Min-Max規(guī)范化方法,將“顧客收入”屬性的值映射到0~1的范圍內(nèi),則“顧客收入”屬性的值為72400元時(shí),對(duì)應(yīng)的轉(zhuǎn)換結(jié)果如下:(72400?11000)/(87000?11000)=0.808Min-Max規(guī)范化比較簡單,但是也存在一些缺陷,當(dāng)有新的數(shù)據(jù)加入時(shí),可能導(dǎo)致最大值和最小值的變化,需要重新定義屬性最大值和最小值。5.3.3規(guī)范化處理2.Z-Score規(guī)范化Z-Score規(guī)范化的主要目的就是將不同量級(jí)的數(shù)據(jù)統(tǒng)一轉(zhuǎn)化為同一個(gè)量級(jí),統(tǒng)一用計(jì)算出的Z-Score值衡量,以保證數(shù)據(jù)之間的可比性。其轉(zhuǎn)換公式如下:z=(待轉(zhuǎn)換屬性值?屬性平均值)/屬性標(biāo)準(zhǔn)差
假設(shè)我們要比較學(xué)生A與學(xué)生B的考試成績,A的考卷滿分是100分(及格60分),B的考卷滿分是700分(及格420分)。很顯然,A考出的70分與B考出的70分代表著完全不同的意義。但是從數(shù)值來講,A與B在數(shù)據(jù)表中都是用數(shù)字70代表各自的成績。那么如何能夠用一個(gè)同等的標(biāo)準(zhǔn)來比較A與B的成績呢?Z-Score就可以解決這一問題。
假設(shè)A班級(jí)的平均分是80,標(biāo)準(zhǔn)差是10,A考了90分;B班的平均分是400,標(biāo)準(zhǔn)差是100,B考了600分。通過上面的公式,我們可以計(jì)算得出,A的Z-Score是1(即(90-80)/10),B的Z-Socre是2(即(600-400)/100),因此,B的成績更為優(yōu)異。若A考了60分,B考了300分,則A的Z-Score是-2,B的Z-Score是-1,這時(shí),A的成績比較差。5.3.3規(guī)范化處理Z-Score的優(yōu)點(diǎn)是不需要知道數(shù)據(jù)集的最大值和最小值,對(duì)離群點(diǎn)規(guī)范化效果好。此外,Z-Score能夠應(yīng)用于數(shù)值型的數(shù)據(jù),并且不受數(shù)據(jù)量級(jí)的影響,因?yàn)樗旧淼淖饔镁褪窍考?jí)給分析帶來的不便。但是Z-Score也有一些缺陷。首先,Z-Score對(duì)于數(shù)據(jù)的分布有一定的要求,正態(tài)分布是最有利于Z-Score計(jì)算的。其次,Z-Score消除了數(shù)據(jù)具有的實(shí)際意義,A的Z-Score與B的Z-Score與他們各自的分?jǐn)?shù)不再有關(guān)系,因此,Z-Score的結(jié)果只能用于比較數(shù)據(jù)間的結(jié)果,數(shù)據(jù)的真實(shí)意義還需要還原原值。2.Z-Score規(guī)范化5.3.3規(guī)范化處理3.小數(shù)定標(biāo)規(guī)范化小數(shù)定標(biāo)規(guī)范化方法通過移動(dòng)屬性值的小數(shù)位置來達(dá)到規(guī)范化的目的。所移動(dòng)的小數(shù)位數(shù)取決于屬性絕對(duì)值的最大值。其轉(zhuǎn)換公式為:x=待轉(zhuǎn)換屬性值/(10的k次方)其中,k為能夠使該屬性絕對(duì)值的最大值的轉(zhuǎn)換結(jié)果小于1的最小值。比如,假設(shè)屬性的取值范圍是-957~924,則該屬性絕對(duì)值的最大值為957,很顯然,這時(shí)k=3。當(dāng)屬性的值為426時(shí),對(duì)應(yīng)的轉(zhuǎn)換結(jié)果如下:426/10的3次方=0.426小數(shù)定標(biāo)法的優(yōu)點(diǎn)是直觀簡單,缺點(diǎn)是并沒有消除屬性間的權(quán)重差異。5.4數(shù)據(jù)脫敏5.4.1數(shù)據(jù)脫敏原則5.4.2數(shù)據(jù)脫敏方法5.4.1數(shù)據(jù)脫敏原則數(shù)據(jù)脫敏不僅要執(zhí)行“數(shù)據(jù)漂白”,抹去數(shù)據(jù)中的敏感內(nèi)容,同時(shí)也需要保持原有的數(shù)據(jù)特征、業(yè)務(wù)規(guī)則和數(shù)據(jù)關(guān)聯(lián)性,保證開發(fā)、測(cè)試以及大數(shù)據(jù)類業(yè)務(wù)不會(huì)受到脫敏的影響,達(dá)成脫敏前后的數(shù)據(jù)一致性和有效性,具體如下:(1)保持原有數(shù)據(jù)特征。數(shù)據(jù)脫敏前后必須保證數(shù)據(jù)特征的保持,例如:身份證號(hào)碼由十七位數(shù)字本體碼和一位校驗(yàn)碼組成,分別為區(qū)域地址碼(6位)、出生日期(8位)、順序碼(3位)和校驗(yàn)碼(1位)。那么身份證號(hào)碼的脫敏規(guī)則就需要保證脫敏后依舊保持這些特征信息。
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 品牌建設(shè)對(duì)外股權(quán)投資管理辦法
- 教育行業(yè)工會(huì)資金管理指南
- 河道整治打樁機(jī)租賃合同
- 耐防銹劑木地板安裝合同
- 醫(yī)療中心小吃部租賃協(xié)議模板
- 體育場(chǎng)館建設(shè)施工管理合同范本
- 電子產(chǎn)品制造采購合同指南
- 城市交通澆筑工程協(xié)議
- 文化創(chuàng)意法定代表人招聘書
- 文物展示館PVC地板鋪設(shè)合同
- 人教版六年級(jí)下冊(cè)《反比例的量》導(dǎo)學(xué)案
- GB 26402-2011 食品安全國家標(biāo)準(zhǔn) 食品添加劑 碘酸鉀
- DNA甲基化與腫瘤分子標(biāo)志
- 《甲方認(rèn)質(zhì)認(rèn)價(jià)確認(rèn)單》
- 降低住院患者跌倒發(fā)生率
- 各種煙氣焓溫、密度、比熱計(jì)算表
- 導(dǎo)游與旅行社簽訂勞動(dòng)合同
- 公路管理工作常見五大訴訟風(fēng)險(xiǎn)及防范
- FLUKE-17B型萬用表使用說明
- 探析高校圖書館文創(chuàng)產(chǎn)品開發(fā)與推廣-以清華大學(xué)圖書館為例
- 痰飲咳嗽病脈證并治第十二
評(píng)論
0/150
提交評(píng)論