《数据科学与大数据分析——数据的发现 分析 可视化与表示》一2.3 第2阶段:数据准备...
本節(jié)書摘來自異步社區(qū)《數(shù)據(jù)科學(xué)與大數(shù)據(jù)分析——數(shù)據(jù)的發(fā)現(xiàn) 分析 可視化與表示》一書中的第2章,第2.3節(jié),作者【美】EMC Education Services(EMC教育服務(wù)團(tuán)隊),更多章節(jié)內(nèi)容可以訪問云棲社區(qū)“異步社區(qū)”公眾號查看
2.3 第2階段:數(shù)據(jù)準(zhǔn)備
數(shù)據(jù)分析生命周期的第2階段是數(shù)據(jù)準(zhǔn)備,其中包括在建模和分析前對數(shù)據(jù)的探索、預(yù)處理和治理。在這一階段,團(tuán)隊需要建立一個強(qiáng)大的用于探索數(shù)據(jù)的非生產(chǎn)環(huán)境。通常,這個環(huán)境是一個分析沙箱。為了將數(shù)據(jù)導(dǎo)入沙箱,團(tuán)隊需要執(zhí)行對數(shù)據(jù)的提取、轉(zhuǎn)換操作和加載,即ETLT。一旦數(shù)據(jù)被導(dǎo)入沙箱,團(tuán)隊需要了解和熟悉這些數(shù)據(jù)。詳細(xì)了解數(shù)據(jù)是項目成功的關(guān)鍵。團(tuán)隊還必須決定如何治理和轉(zhuǎn)換數(shù)據(jù),使其格式便于后續(xù)分析。團(tuán)隊可以利用數(shù)據(jù)可視化來幫助團(tuán)隊成員了解數(shù)據(jù),包括數(shù)據(jù)趨勢、異常值、數(shù)據(jù)變量之間的關(guān)系。本節(jié)將討論數(shù)據(jù)準(zhǔn)備階段的每個步驟。
數(shù)據(jù)準(zhǔn)備往往是分析生命周期中最費力的。事實上常見的是,在數(shù)據(jù)科學(xué)項目中至少50%的團(tuán)隊時間都花在這個重要階段。如果不能獲取到足夠高質(zhì)量的數(shù)據(jù),團(tuán)隊可能無法進(jìn)行生命周期過程中的后續(xù)階段。
圖2.4顯示了數(shù)據(jù)分析生命周期的第2階段。通常,數(shù)據(jù)準(zhǔn)備階段是最繁復(fù)的,同時又是最容易被團(tuán)隊輕視的。這是因為大多數(shù)團(tuán)隊和領(lǐng)導(dǎo)者都急于開始分析數(shù)據(jù)、檢驗假設(shè)、獲得第1階段提出的一些問題的答案。許多人會在沒有花足夠時間準(zhǔn)備數(shù)據(jù)的情況下就急于跳到第3和第4階段去快速開發(fā)模型和算法。結(jié)果,當(dāng)他們發(fā)現(xiàn)手中的數(shù)據(jù)無法兼容想要執(zhí)行的模型時,他們又不得不回到第2階段。
2.3.1 準(zhǔn)備分析沙箱
數(shù)據(jù)準(zhǔn)備階段的第1個子階段,團(tuán)隊需要獲取一個分析沙箱(通常也稱為工作區(qū)),以便在不干擾到生產(chǎn)數(shù)據(jù)庫的前提下探索數(shù)據(jù)。假設(shè)團(tuán)隊需要處理公司的財務(wù)數(shù)據(jù),那么團(tuán)隊?wèi)?yīng)該在分析沙箱中用財務(wù)數(shù)據(jù)的拷貝進(jìn)行分析,而不是直接用公司的生產(chǎn)數(shù)據(jù)庫進(jìn)行分析。直接操作生產(chǎn)數(shù)據(jù)庫是受到嚴(yán)格控制的,只有在制作財務(wù)報表時才能進(jìn)行。
當(dāng)準(zhǔn)備分析沙箱時,最好能收集所有數(shù)據(jù)放入沙箱,因為團(tuán)隊成員在進(jìn)行大數(shù)據(jù)分析時需要訪問大量的不同種類的數(shù)據(jù)。取決于計劃進(jìn)行的分析,這些數(shù)據(jù)可能包括匯總的聚合數(shù)據(jù)、結(jié)構(gòu)化數(shù)據(jù)、原始數(shù)據(jù),以及從通話記錄和網(wǎng)頁日志中獲取的非結(jié)構(gòu)化文本數(shù)據(jù)。
這種全盤收集數(shù)據(jù)的方式和許多IT組織機(jī)構(gòu)提倡的方式非常不同。許多IT部門只會為特定目的提供特定數(shù)據(jù)段的訪問。通常,IT部門的心態(tài)是提供最少的數(shù)據(jù),讓團(tuán)隊實現(xiàn)目標(biāo)即可,而數(shù)據(jù)科學(xué)團(tuán)隊則想著拿到所有數(shù)據(jù)。對于數(shù)據(jù)科學(xué)團(tuán)隊來說,數(shù)據(jù)越多越好,因為數(shù)據(jù)科學(xué)項目通?;旌狭四康尿?qū)動型分析和測試各種想法的實驗性方法。在這種情況下,如果訪問每個數(shù)據(jù)集和每個數(shù)據(jù)屬性都需要單獨申請,這對于數(shù)據(jù)科學(xué)團(tuán)隊是非常有挑戰(zhàn)的。由于在數(shù)據(jù)訪問和數(shù)據(jù)使用上有不同的考量,數(shù)據(jù)科學(xué)團(tuán)隊與IT部門的合作至關(guān)重要,一定要共同明確需要完成什么樣的目標(biāo),并且目標(biāo)一致。
在與IT團(tuán)隊溝通時,數(shù)據(jù)科學(xué)團(tuán)隊需要證明一個獨立于組織機(jī)構(gòu)內(nèi)由IT部門管理的傳統(tǒng)數(shù)據(jù)倉庫的分析沙箱的必要性。為了在數(shù)據(jù)科學(xué)團(tuán)隊和IT部門之間取得成功且良好的平衡,需要在多個團(tuán)隊和數(shù)據(jù)所有者之間建立積極的工作關(guān)系。而這樣做產(chǎn)生的回報是巨大的。分析沙箱使得組織機(jī)構(gòu)可以執(zhí)行目標(biāo)更遠(yuǎn)大的數(shù)據(jù)科學(xué)項目,超越傳統(tǒng)數(shù)據(jù)分析和商業(yè)智能的范疇,進(jìn)行更為強(qiáng)大和高級的的預(yù)測分析。
沙箱可能會很大。它可能包含原始數(shù)據(jù)、聚合數(shù)據(jù)和其他在組織機(jī)構(gòu)不常使用的數(shù)據(jù)類型。沙箱的大小可以根據(jù)項目的不同有所變化。一個有用的準(zhǔn)則是沙盤至少應(yīng)該是原始數(shù)據(jù)集的5~10倍大小,部分原因在于項目中數(shù)據(jù)的多份拷貝可能被分別用來創(chuàng)建特定的數(shù)據(jù)表或存儲以進(jìn)行特定的數(shù)據(jù)分析。
盡管分析沙箱是一個相對較新的概念,已經(jīng)有公司著手于這一領(lǐng)域,尋找沙箱和工作區(qū)的解決方案,以便數(shù)據(jù)科學(xué)團(tuán)隊能夠采用一種可被IT部門所接受的方式來訪問和處理數(shù)據(jù)集。
2.3.2 執(zhí)行ETLT
當(dāng)團(tuán)隊開始轉(zhuǎn)換數(shù)據(jù)時,需要確保分析沙盤擁有足夠的帶寬和可靠的網(wǎng)絡(luò)來連接到底層數(shù)據(jù)源,以進(jìn)行不間斷的數(shù)據(jù)讀寫。在ETL過程中,用戶從數(shù)據(jù)存儲中提取數(shù)據(jù),執(zhí)行數(shù)據(jù)轉(zhuǎn)換,并將數(shù)據(jù)加載回數(shù)據(jù)存儲。然而,分析沙箱方法略有不同,它主張先提取、加載,然后轉(zhuǎn)換,即ELT。在這種情況下,數(shù)據(jù)是以原始格式提取的,然后加載到數(shù)據(jù)存儲中,在那里分析員可以選擇將數(shù)據(jù)轉(zhuǎn)換到一個新的狀態(tài)或者保持它的原始狀態(tài)。使用這種方法是因為保留原始數(shù)據(jù)并將它在發(fā)生任何轉(zhuǎn)變之前保存到沙箱具有重要的價值。
例如,考慮信用卡欺詐檢測的分析案例。很多時候,數(shù)據(jù)中的異常值代表著象征信用卡欺詐行為的高風(fēng)險交易。使用ETL的話,這些異常值在被加載到數(shù)據(jù)存儲之前,可能就已經(jīng)被無意中過濾掉或者被轉(zhuǎn)換和清洗。在這種情況下,用于評估欺詐活動的數(shù)據(jù)已經(jīng)被無意中丟棄,團(tuán)隊也就無從進(jìn)行相應(yīng)的分析。
遵循ELT方法可以在數(shù)據(jù)存儲中為團(tuán)隊提供干凈的數(shù)據(jù)用于分析,也可以讓團(tuán)隊訪問數(shù)據(jù)的原始形式,以查找數(shù)據(jù)中隱藏的細(xì)微差別。分析沙箱的大小之所以能夠快速增長,部分原因正在于采用了ELT方法。團(tuán)隊既可能想要干凈的數(shù)據(jù)和聚合的數(shù)據(jù),也可能需要保存一份原始格式的數(shù)據(jù)以進(jìn)行比較,或者是在清洗數(shù)據(jù)前找到數(shù)據(jù)中隱藏的模式。這整個過程可以被概括為ETLT,意味著團(tuán)隊可以選擇在一個分析案例中執(zhí)行ETL,而在另一個案例中執(zhí)行ELT。
根據(jù)數(shù)據(jù)源的大小和數(shù)量,團(tuán)隊可能需要考慮如何將數(shù)據(jù)并行地導(dǎo)入到沙箱。導(dǎo)入大量數(shù)據(jù)有時候被稱為Big ETL。數(shù)據(jù)導(dǎo)入可以使用Hadoop或MapReduce等技術(shù)并行化。我們將在第10章中詳細(xì)介紹這些技術(shù),它們可以用于執(zhí)行并行數(shù)據(jù)攝取,以及在很短的一段時間內(nèi)并行產(chǎn)生大量的文件或數(shù)據(jù)集。Hadoop可以用于數(shù)據(jù)加載以及后續(xù)階段的數(shù)據(jù)分析。
在將數(shù)據(jù)導(dǎo)入到分析沙箱之前,確定要在數(shù)據(jù)上執(zhí)行的轉(zhuǎn)換。這涉及評估數(shù)據(jù)質(zhì)量和構(gòu)建合適的數(shù)據(jù)集,以便在后續(xù)階段的分析。此外,考慮團(tuán)隊將可以訪問哪些數(shù)據(jù),以及需要從數(shù)據(jù)中生成哪些新的數(shù)據(jù)屬性來支持分析,也很重要。
作為ETLT的一部分,建議盤點數(shù)據(jù),并將當(dāng)前可用的數(shù)據(jù)與團(tuán)隊需要的數(shù)據(jù)進(jìn)行比較。這種差距分析能幫助理解團(tuán)隊目前可以利用的數(shù)據(jù)集,以及團(tuán)隊需要在何時何地開始收集或訪問當(dāng)前不可用的新數(shù)據(jù)集。這個子過程涉及從可用源提取數(shù)據(jù),以及確定用于原始數(shù)據(jù)、在線事務(wù)處理(OLTP)數(shù)據(jù)庫、聯(lián)機(jī)分析處理(OLAP)數(shù)據(jù)集或其他數(shù)據(jù)更新源的數(shù)據(jù)連接。
應(yīng)用程序編程接口(API)是一種越來越流行的訪問數(shù)據(jù)源的方式[8]?,F(xiàn)在許多網(wǎng)站和社交網(wǎng)絡(luò)應(yīng)用程序都提供可以訪問數(shù)據(jù)的API,用于為項目提供支持,或者補(bǔ)充團(tuán)隊正在處理的數(shù)據(jù)集。例如,通過Twitter API可以下載數(shù)以百萬計的Twitter信息,用于對一個產(chǎn)品、一個公司或一個想法的情感分析項目。大部分的Twitter數(shù)據(jù)都是公開的,可以在項目中和其他數(shù)據(jù)集一起被使用。
2.3.3 研究數(shù)據(jù)
數(shù)據(jù)科學(xué)項目的關(guān)鍵之一是熟悉數(shù)據(jù)。通過花時間了解數(shù)據(jù)集的細(xì)微差別,可以幫助理解什么是有價值的和預(yù)期的結(jié)果,以及什么是意外的發(fā)現(xiàn)。此外,重要的是要對團(tuán)隊可以訪問的數(shù)據(jù)源進(jìn)行歸類,并識別團(tuán)隊可以利用但是暫時無法訪問的其他數(shù)據(jù)源。這里做的一些事情可能會與在發(fā)現(xiàn)階段對數(shù)據(jù)集的初始調(diào)查有重疊。研究數(shù)據(jù)是為了達(dá)成幾個目標(biāo)。
明確數(shù)據(jù)科學(xué)團(tuán)隊在項目時可以訪問的數(shù)據(jù)。
識別組織機(jī)構(gòu)內(nèi)那些對團(tuán)隊來說可能有用但是暫時還無法訪問的數(shù)據(jù)集。這樣做可以促使項目人員開始與數(shù)據(jù)擁有者建立聯(lián)系,并尋找合適的方法分享數(shù)據(jù)。此外,這樣做可以推動收集有利于組織機(jī)構(gòu)或者一個特定的長期項目的新數(shù)據(jù)。
識別存在于組織機(jī)構(gòu)外的,可以通過開放的API、數(shù)據(jù)共享,或者購買的方式獲取的新數(shù)據(jù),用于擴(kuò)充現(xiàn)有數(shù)據(jù)集。
表2.1展示了一種數(shù)據(jù)清單的組織方法。
2.3.4 數(shù)據(jù)治理
數(shù)據(jù)治理(data conditioning)是指清洗數(shù)據(jù)、標(biāo)準(zhǔn)化數(shù)據(jù)集和執(zhí)行數(shù)據(jù)轉(zhuǎn)換的過程。作為數(shù)據(jù)分析生命周期中的一個關(guān)鍵步驟,數(shù)據(jù)治理可以涉及許多關(guān)聯(lián)數(shù)據(jù)集,合并數(shù)據(jù)集,或者其他使數(shù)據(jù)集日后能被分析的復(fù)雜操作。數(shù)據(jù)治理通常被視為數(shù)據(jù)分析的預(yù)處理步驟,因為在開發(fā)模型來處理或分析數(shù)據(jù)之前,數(shù)據(jù)治理還需要對數(shù)據(jù)集進(jìn)行多種操作。這意味著數(shù)據(jù)治理是由IT部門、數(shù)據(jù)所有者、DBA或者數(shù)據(jù)工程師執(zhí)行的。然而,讓數(shù)據(jù)科學(xué)家參加數(shù)據(jù)治理也很重要,因為數(shù)據(jù)治理階段所做的許多決策會影響到后續(xù)的分析,包括確定特定數(shù)據(jù)集的哪些部分將被用于后續(xù)階段的分析。團(tuán)隊在這一階段開始需要決定保留哪些數(shù)據(jù),轉(zhuǎn)換或丟棄哪些數(shù)據(jù),而這些決策應(yīng)由大多數(shù)團(tuán)隊成員共同參與。如果讓一個人來拍板,可能會導(dǎo)致團(tuán)隊日后返回這一階段來獲取已經(jīng)被丟棄的數(shù)據(jù)。
在前面信用卡欺詐檢測的案例中,團(tuán)隊在選擇要保留的數(shù)據(jù)和要丟棄的數(shù)據(jù)時需要深思熟慮。如果團(tuán)隊在數(shù)據(jù)處理的過程中過早地丟棄了許多數(shù)據(jù),可能會導(dǎo)致重新回溯前面的步驟。通常,數(shù)據(jù)科學(xué)團(tuán)隊寧愿保存更多而不是更少的數(shù)據(jù)用于分析。與數(shù)據(jù)治理相關(guān)的其他問題和考量如下所示。
數(shù)據(jù)源是什么?目標(biāo)字段是什么(例如,數(shù)據(jù)表的列)?
數(shù)據(jù)有多干凈?
文件和內(nèi)容一致嗎?如果數(shù)據(jù)包含的值與正常值有偏差,確定數(shù)據(jù)值缺失和數(shù)據(jù)值不一致到哪種程度?
評估數(shù)據(jù)類型的一致性。例如,如果團(tuán)隊期望某些數(shù)據(jù)是數(shù)值型的,要確認(rèn)它是數(shù)值型的或者是字母數(shù)字字符串和文本的混合。
審查數(shù)據(jù)列的內(nèi)容或其他輸入,并檢查以確保它們有意義。例如,如果項目涉及分析收入水平,則要預(yù)覽數(shù)據(jù)確定收入值都是正值,如果是0或者負(fù)值需確認(rèn)是否可接受。
尋找任何系統(tǒng)性錯誤的證據(jù)。比如由于傳感器或其他數(shù)據(jù)源的不為人察覺的損壞,導(dǎo)致數(shù)據(jù)失效、不正確,或者缺失數(shù)據(jù)值。此外,要審查數(shù)據(jù)以衡量數(shù)據(jù)的定義在所有的尺度標(biāo)準(zhǔn)下是否是相同的。在某些情況下,數(shù)據(jù)列被重新調(diào)整,或者是數(shù)據(jù)列被停止填充,而且這些變化并沒有被注釋或沒有通知給其他人。
2.3.5 調(diào)查和可視化
在團(tuán)隊收集和獲得用于后續(xù)分析的部分?jǐn)?shù)據(jù)集后,一種有用的步驟是利用數(shù)據(jù)可視化工具來獲得數(shù)據(jù)的概述。觀察數(shù)據(jù)的抽象模式可以幫助人們快速理解數(shù)據(jù)特征。一個例子是使用數(shù)據(jù)可視化來檢查數(shù)據(jù)質(zhì)量,比如數(shù)據(jù)是否包含很多非預(yù)期值或者其他臟數(shù)據(jù)的跡象(臟數(shù)據(jù)將在第3章進(jìn)一步討論)。另一個例子是數(shù)據(jù)傾斜(skewness),比如,大部分?jǐn)?shù)據(jù)集中在某個數(shù)值或者連續(xù)統(tǒng)(continuum)的一端。
Shneiderman[9]因其可視化數(shù)據(jù)分析的理念(即全盤觀察,放大及過濾,然后按需獲取細(xì)節(jié))而眾所周知。這是一個務(wù)實的可視化數(shù)據(jù)分析方法。它允許用戶找到感興趣的領(lǐng)域,然后通過放大和過濾來找到與數(shù)據(jù)的特定區(qū)域相關(guān)的更詳細(xì)信息,最后找到特定區(qū)域背后詳細(xì)的數(shù)據(jù)。這種方法提供了數(shù)據(jù)的一個高層視圖,可以在相對較短的時間內(nèi)獲悉給定數(shù)據(jù)集的大量信息。
當(dāng)該方法與數(shù)據(jù)可視化工具或統(tǒng)計軟件包一起使用時,推薦下述指導(dǎo)意見和考量。
審查數(shù)據(jù)以確保針對一個數(shù)據(jù)字段的計算在列內(nèi)或者在表間保持一致。例如,客戶壽命的值在數(shù)據(jù)收集的中期有改變嗎?或者當(dāng)處理財務(wù)信息時,利率計算是否在年底由單利變?yōu)閺?fù)利?
所有數(shù)據(jù)的數(shù)據(jù)分布是否都保持一致?如果沒有,應(yīng)該采取怎樣的措施來解決這個問題?
評估數(shù)據(jù)的粒度、取值范圍和數(shù)據(jù)聚合水平。
數(shù)據(jù)是否代表目標(biāo)群體呢?對于營銷數(shù)據(jù),如果項目關(guān)注的是育兒年齡的目標(biāo)客戶,數(shù)據(jù)是否代表這些群體?還是也包含老年人和青少年?
對于與時間相關(guān)的變量,是以每日、每周還是每月來測量呢?這些測量間隔是否足夠?是否都在以秒計算時間?或者有些地方以毫秒為單位?確定分析所需的數(shù)據(jù)粒度,并評估當(dāng)前數(shù)據(jù)的時間戳級別能夠滿足需要。
數(shù)據(jù)是標(biāo)準(zhǔn)化/規(guī)范化的嗎?數(shù)據(jù)尺度一致嗎?如果不是,數(shù)據(jù)是如何不一致或不規(guī)則的?
對于地理空間數(shù)據(jù)集,數(shù)據(jù)中的州或國家的縮寫一致嗎?人的姓名是規(guī)范化的嗎?是英制單位還是公制單位?
當(dāng)團(tuán)隊評估項目中所獲得的數(shù)據(jù)時,這些典型的考量應(yīng)該是思考過程的一部分。在后面階段構(gòu)建和運行模型時,對數(shù)據(jù)的深入了解非常關(guān)鍵。
2.3.6 數(shù)據(jù)準(zhǔn)備階段的常用工具
這個階段有下面幾種常用的工具。
Hadoop[10]可以執(zhí)行大規(guī)模并行數(shù)據(jù)攝取和自定義分析,可用于Web流量解析、GPS定位分析、基因組分析,以及來自多個源的大規(guī)模非結(jié)構(gòu)化數(shù)據(jù)的整合。
Alpine Miner[11]提供了一個圖形用戶界面(GUI)來創(chuàng)建分析工作流程,包括數(shù)據(jù)操作和一系列分析事件,例如在Postgress SQL和其他大數(shù)據(jù)源上的分段數(shù)據(jù)挖掘技術(shù)(例如,首先選擇前100名顧客,然后運行描述性統(tǒng)計和聚類)。
Openrefine(以前稱為Google Refine)[12]是一個免費、開源、強(qiáng)大的雜亂數(shù)據(jù)處理工具。這是一個流行的帶GUI的工具,用于執(zhí)行數(shù)據(jù)轉(zhuǎn)換,而且是目前可用的最強(qiáng)大的免費工具之一。
Data Wrangel[13]和OpenRefine相似,是一個用于數(shù)據(jù)清洗和轉(zhuǎn)換的交互式工具。Data Wrangler是斯坦福大學(xué)開發(fā)的,可以對一個給定的數(shù)據(jù)集執(zhí)行許多轉(zhuǎn)換。此外,數(shù)據(jù)轉(zhuǎn)換的輸出可以使用JAVA或Python處理。這個特性的優(yōu)點是,可以通過Data Wrangler的GUI界面來操控數(shù)據(jù)的一個子集,然后相同的操作可以以JAVA或Python代碼的方式用來在本地分析沙箱中對更大的完整數(shù)據(jù)集進(jìn)行離線分析。
在第2階段,數(shù)據(jù)科學(xué)團(tuán)隊需要來自IT部門、DBA或EDW管理員的幫助,以獲取需要使用的數(shù)據(jù)源。
總結(jié)
以上是生活随笔為你收集整理的《数据科学与大数据分析——数据的发现 分析 可视化与表示》一2.3 第2阶段:数据准备...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《Access 2007开发指南(修订版
- 下一篇: ubuntu 13.04 安装 GRUB