前一天我們介紹了如何定義機器學習的問題和思考如何解決,今天要來介紹資料清理與數據前處理
確認好問題和目標之後接下來就是要做資料前處理的部分,這個部分是機器學習流程中非常重要的部分,我們可以說機器學習流程的各個步驟都是環環相扣,如果前面沒有處理好就會影響到最終模型的結果和目標,資料清理的流程圖可以用下圖表示:
其實在資料讀取的前面有個步驟是做ETL,這個步驟介於原始資料來源和整理好的資料倉儲之間,ETL可以說是處理機器學習資料最早的步驟。
ETL是Extract、Transformation、Load的縮寫, 資料倉儲的概念是由Kimball所提出的,模型是由下往上,即從維度模型→資料倉庫→各類型資料來源,主要有三點:
- Kimball模型的資料來源需要從OLTP系統抽取出需要的資料出來。Kimball 是以最終任務為導向,將資料按照目標拆分出不同的事實表,再透過ETL放入維度模型。
- Kimball模型將各類型資料來源經由ETL轉化為事實表和維度表放入維度模型中,維度模型由數個事實表和維度表組成。
- 在維度模型將事實表和維度表根據分析的類型組合後導入資料倉庫中,用於機器學習或是商業智慧決策。
維度模型為Kimball最先提出這概念,其最簡單的描述就是,按照事實表、維度表來建構資料倉儲,這種方法的最被人廣泛知曉的名字就是星狀綱要(Star-schema)。維度模型將資料整理到結構中,這些結構通常對應於分析者希望對資料倉儲資料使用的查詢方法。維度模型常使用的星狀綱要,在於針對各個維度作了大量的預先處理,如按照維度進行預先的統計、分類、排序等。通過這些預先處理,能夠極大的提升資料倉儲的處理能力。
今天先介紹到這,明天我們來深入探討資料倉儲的應用。