數據分析生命周期——項目流程簡述之數據準備
第一階段——發現
第二階段——數據準備
我們是否有足夠多的高質量數據用於構建分析模型?
建模和分析前對數據的探索、預處理和治理,目的是建立一個強大的用於探索數據的非生產環境,這個環境就是分析沙箱,為了將數據導入沙箱,需要執行對數據的提取、轉換操作和載入即ETLT,詳細了解數據是項目成功的關鍵。一般項目時間50%用來數據準備,切忌開始分析數據、檢驗假設獲得第一階段問題的答案,急於快速開發模型和演算法。
1、準備分析數據沙箱(工作區):以便在不干擾到生產資料庫的前提下探索分析而不是直接用公司的生產資料庫進行分析,應該在分析沙箱中用拷貝數據,數據要全面真實有效,各種格式,結構都要納入。
數據科學家的數據越多越好,通常混合了驅動型分析和測試各種想法的實驗性方法
IT組織機構使用盡量少的數據,實現團隊目標即可所以一定要和IT團隊達成共識
2、執行ETLT
ETL,是英文 Extract-Transform-Load 的縮寫,用來描述將數據從來源端經過抽取(extract)、轉換(transform)、載入(load)至目的端的過程。ETL一詞較常用在數據倉庫,但其對象並不限於數據倉庫。
在數據轉換時,需要確保分析沙箱擁有足夠的寬頻和可靠的網路來連接底層數據源,已進行不同的數據讀寫,在ETL中,用戶從數據存儲中提取數據,執行數據轉換,並將數據載入回數據存儲;然而,分析沙箱主張先提取、載入然後轉換即ELT。使用這種方法是因為保留原始數據並將它在發生任何轉變之前保存到沙箱具有重要的價值。這樣團隊就可以選擇在一個案例中執行ETL而在另一個案例中執行ELT。總起來可以概括為ETLT。
導入過程中根據數據源的大小和數量,可以考慮並行導入,可以考慮使用Hadoop和Mapreduce等技術並行化。
數據盤點將沙箱可用數據和項目需要數據進行對比,用來從可用數據源提取數據,以及確定用於原始數據、在線事物處理(OLTP)資料庫,聯機分析處理(OLAP)數據集或者其他數據更新源的數據連接
On-Line Transaction Processing聯機事務處理過程(OLTP)
也稱為面向交易的處理過程,其基本特徵是前台接收的用戶數據可以立即傳送到計算中心進行處理,並在很短的時間內給出處理結果,是對用戶操作快速響應的方式之一。聯機分析處理OLAP是一種軟體技術,它使分析人員能夠迅速、一致、交互地從各個方面觀察信息,以達到深入理解數據的目的。它具有FASMI(Fast Analysis of Shared Multidimensional Information),即共享多維信息的快速分析的特徵。其中F是快速性(Fast),指系統能在數秒內對用戶的多數分析要求做出反應;A是可分析性(Analysis),指用戶無需編程就可以定義新的專門計算,將其作為分析的一部 分,並以用戶所希望的方式給出報告;M是多維性(Multi—dimensional),指提供對數據分析的多維視圖和分析;I是信息性(Information),指能及時獲得信息,並且管理大容量信息
現在很多應用程序提供可以訪問數據的API,比如Twitter API等
3、研究數據
數據科學項目的關鍵之一就是熟悉數據,通過花時間了解數據集的細微差別,可以幫助理解什麼是有價值的和預期結果,以及什麼是意外發現,重要的是做數據進行歸類。
明確數據科學團隊在項目時可以訪問的數據
識別組織機構內那些對團隊來說可能有用但是暫時還無法訪問的數據集。這樣做可以促使項目員開始與數據擁有者建立聯繫,並尋找合適的方法分享數據。此外,這樣做可以推動收集有利於組織機構或者一個特定的長期項目的新數據。識別存在於組織機構外的,可以通過開放的 API、數據共享,或者購買的方式獲取的新數據,用於擴充現有數據集
4、數據治理
數據治理是指清洗數據、標準化數據和執行數據轉換的過程。是數據分析的預處理步驟。
多員共同參與,如果讓一個人拍板,可能會導致丟棄有用數據。
數據治理通常需要解決的問題:
數據源是什麼?目標欄位是什麼(例如,數據表的列)?
數據有多乾淨?文件和內容一致嗎?如果包含的值與正常值有偏差,確定數據值缺失和數據值不一致到哪種程度?
評估數據類型的一致性。例如,如果團隊期望某些數據是數值型的,要確認它是數值型的或者是字母數字字元串和文本的混合。審查數據列的內容或其他輸入,並檢查以確保它們有意義。例如,如果頊目涉及分析收入水平,則要預覽數據確定收入值都是正值,如果是0或者負值需確認是否可接受尋找任何系統性錯誤的證據。比如由於感測器或其他數據源的不為人察覺的損壞,「導致數據失效、不正確,或者缺失數據值。此外,要審查數據以衡量數據的定義在所有的尺度標準下是否是相同的。在某些情況下,數據列被重新調整,或者是數據列被停止填充,而且這些變化並沒有被注釋或沒有通知給其他人。
5、調查和可視化
在收集和獲取用於後續分析的部分數據後,有一種有用的步驟就是利用數據可視化工具來獲得數據的概述。幫助人們快速理解數據特徵,也可以檢查數據質量。
Shneiderman可視化與可視化工具或者統計軟體包一起使用時要做一下考量:
1、審查數據以確保針對一個數據欄位的計算在列內或者在表間保持一致。例如,客戶壽齡的值在數據收集的中期有改變嗎?或者當處理財務信息時,利率計算是否在年底由憚利變為複利?
2、所有數據的數據分布是否都保持一致?如果沒有,應該採取怎樣的措施來解決這個問題?3、評估數據的粒度、取值範圍和數據聚合水平。4、數據是否代表目標群體呢?對於營銷數據,如果項目關注的是育兒年齡的目標客戶,數據是否代表這些群體?還是也包含老年人和青少年?5、對於與時間相關的變數,是以每日、每周還是每月來測量呢?這些測量間隔是否足夠?是否都在以秒計算時間?或者有些地方以毫秒為單位?確定分析所需的數據粒度,並評估當前數據的時間戳級別能夠滿足需要。
6、數據是標準化、規範化的嗎?數據尺度一致嗎?如果不是,數據是如何不一致或不規則的?7、對於地理空間數據集,數據中的省或國家的縮寫一致嗎?人的姓名是規範化的嗎?是制單位還是公制單位?
6、數據準備階段的常用工具
Hadoop[10]可以執行大規模並行數據攝取和自定義分析,可用於 web流量解析、 GPS定位分析、基因組分析,以及來自多個源的大規模非結構化數據的整合。
Alpine Miner[11]提供了一個圖形用戶界面( GUI)來創建分析工作流程,包括數據操作和一系列分析事件,例如在 postgress SQL和其他大數據源上的分段數據挖掘技術例如,首先選擇前100名顧客,然後運行描述性統計和聚類)。Openrefine(以前稱為 Google Refine)[12]是一個免費、開源、強大的雜亂數據處理工具。這是一個流行的帶 GUI的工具,用於執行數據轉換,而且是目前可用的最強大的·免費工具之一DataWrangel[131和 OpenRefine相似,是一個用於數據清洗和轉換的互動式工具。 Datawrangler是斯坦福大學開發的,可以對一個給定的數據集執行許多轉換。比外,數據轉換的輸出可以使用 JAVA或 python處理。這個特性的優點是,可以通過 Data wrangler的 GUI界面來操控數據的一個子集,然後相同的操作可以以 JAVA或 python代碼的方式用來在本地分析沙箱中對更大的完整數據集進行離線分析。
在第2階段,數據科學團隊需要來自 IT部門、 DBA或 EDW管理員的幫助,,[[取需要使的數據源。
第三階段——規劃模型
第四階段——建立模型
第五階段——溝通結果
第六階段——實施
推薦閱讀:
※現在出去面試,開口閉口你會大數據嗎,你會分散式嗎。我要了解哪些專業術語才能顯得很懂的樣子?
※關於用戶畫像產品構建和應用的幾點經驗
※都是名媛,住在回龍觀和天通苑有什麼不同?
※那些銀行不會告訴你的事n —現金分期利率淺析
※近期被炒上天的「區塊鏈」,到底是個什麼「東東」