資料是資料科學中的基石,沒有好的資料,就難以產生好的資料價值。在資料分析中有一句諺語:「Garbage In Garbage Out」,意思就是髒的資料也會產生髒的結果。然而,在真實的世界中,資料往往沒有想像中的「乾淨」。在實務中,資料會有資料缺失(Imcomplete/Missing data)、雜訊(Noise)、離異值等等的問題。資料前處理泛指的是在分析演算法(之前,先對資料進行處理,讓資料在格式上比較標準一致。為的是讓演算法不會因為資料產生的瑕疵而誤判。
資料前處理可以分為以下幾種不同類型的工作:
資料清理是資料前處理的第一步,需要先將資料中的問題處理。主要的工作包涵:填補遺失值,處理 Outliers 及 Noise 問題,修正資料的不一致。資料中可能會一些因素造成某些資料不見或不存在,我們會把這樣的缺失稱為遺失值(Missing Data)。面對 Missing Data,可以選擇丟棄或是採用眾數/平均數來取代。Outlier 及 Noise 的話,必須要先找出哪些點可能是 Outlier/Noise ,然後透過叢集方法/回歸方法來進行平滑化。
資料整合也有人稱為是合併資料,將不同資料集/資料表的資料進行合併。不過也因為資料是來自於不同的資料源,就會產生資料對不起來,或是重複的問題。最經典的案例是地理資料合併上,不同的資料採用不同的座標系,在合併之前就必須先處理過。有時候,明明是相同的資料,也有可能因為在不同的資料及取名的差異,合併的時候變成兩筆不同的資料。在資料整合的時候,必須要先檢查兩的資料表中,有哪些屬性,是如何記錄的資料,再來討論該如何化異為同。透過資料屬性來合併,稱為 Schema integration。
資料轉換是為了讓資料的數值在分析時不容易產生誤判錯誤。主要是重點在資料數值要如何轉換,常見方法有平滑化、一般化、標準化。平滑化是用在資料中充滿大量的雜訊,讓資料看起來很亂的情況下。透過平滑化的方法,可以讓雜訊產生的干擾降低。一般化是為了太過細節的資料,變得比較標準。標準化則是要讓資料的數值縮減到一個區間內,避免讓某個屬性的影響被放大或縮小。