數據淨化 - 提高你的數據質量

很多時候,由於系統故障或人為輸入錯誤,產生一些不準確或錯誤的數據。事實上,這類意外的錯誤通常發生在我們的數據庫中,並在整個記錄中佔領一定的比例。

正所謂“高質量的數據能衍生高質的分析結果”,尤其是當我們製作統計報告的時候,任何缺失或重複的記錄也會誤導統計結果。例如,我們可能從交易資料庫中發現找到一些交易為零的記錄。

以機器學習(Machine Learning)的預測模型為例,由於一些極端的數會影響模型的預測表現,所以我們會刪除這些數值,避免影響該模型的性能。

我在唸大學期間,往往忽略了數據淨化的重要性。原因似乎是我看重了研究數據分析的方法而忽略數據的處理。直到我工作以後,才領略到先準備和處理數據的重要性。但在真實的工作環境中,要知道我們是不可能擁有具備完美的原始數據。在資料庫中提取了數據後,你仍然會發現在記錄中會存在一些意想不到的和不合理的數值。為了做統計分析和數據挖掘,並獲取可信賴的結果,我們必須清理和處理這些錯誤的數據。

但是,要怎樣評估數據或信息是否已經足夠好以作分析?數據的屬性可以用該行業知識和經驗去判斷和驗證。儘管一些該行業的專業人士沒有任何統計知識,他們依然有能力去判斷數值的真偽。所以有一些文章指出,擁有相應的行業和業務知識的數據科學家本身也是一項優勢。


數據的質量
以下是判斷數據質量的指標:
1.準確度
準確的數據可以反映在實際環境中的對象或事件。在錯誤的資料中,我們怎麼會獲取準確的結果呢?不準確的數據往往帶來不恰當的和誤導性的信息。

2.有效性
資料可以由各種各樣的方式來驗證,包括利用其類別,格式,邏輯或者總數等。例如,在某物件的數量發現有非整數值,此記錄可被視為無效。

3.一致性
來自不同來源的數據經過整合後,數據應與數據源一致。假設你既是高中或大學畢業生,又是某家商店的會員,但會員證仍然顯示“學生”,這就是不一致的數據。

4.冗餘性
愈有質量的數據含有愈少量的冗餘記錄,在一項記錄中,具獨一無二特性的數值是不能重複的,因為這會導致偏差也影響到結果的準確性。如果一張發票中存在兩個相同的交易記錄,您的客戶當然會埋怨,及有權拒絕支付雙倍費用。當你分析銷售記錄時,交易總額亦會因此而出錯。

5.完整性
完整的數據,內容應該符合使用者的期望。在網上登記表格中總會有一些必填項目,以確保接收者(使用者)能夠信息的完整性。

6.及時性
數據的及時性取決於使用者的預期。最新的或實時的信息顯然是前線執行人員最需要接收的。


淨化數據
缺失值
在現實中,一些客戶不願意披露他們的個人信息,以保護自己的隱私結果令客戶資料並不完整。此外,有些特性並不適用​​於某些實體(Entity),也會出現缺失值。例如:對於那些非會員的客戶,其會員類別應該是空白的。

對於這些缺失的數值,我們總不可能每個去搜索及驗證其真實值。試想像巨大的數據儲倉擁有一百萬個記錄,而當中的缺失值佔整體的1%。如果你認為自己是青春無限去深究這10000條記錄,你可以嘗試一下。

在一般情況下,最簡易的方法是在把那些缺失值直接過濾。這是所謂的眼不見為淨。然而,這可能導致樣本偏差,忽略有用的信息和甚至Coefficient of Determination, R-square(判定系數:R平方)會減少,尤其是含有大量缺失資料的記錄。

另一種常見的方法是通過單一或多重估算法去估算區間變量。
單一插補包括4種方法:
1. 填補非條件性的平均值(由數據的平均值替換)
2. 從非條件性的分佈直接填補(從數據的分佈估算出)
3. 填補條件性的平均值(因應迴歸模型插補)
4. 從條件性的分佈直接填補(從缺失值的分佈估算出)

多重插補包括3個步驟:
1. 從條件分佈填補缺失值
2. 根據第1步重複建立完整的資料集
3. 綜合統計的結果,並獲得缺失值的條件性分佈
4. 從該條件性分佈中抽取數值並填補

對於類別型的變數(Class Variable),其值可以通過以下方法填補:
1. 眾數(Mode),出現最頻繁
2. 從隨機分佈的百分位數估算
3. 從決策樹估算

重複記錄/不一致的數據
通過分析資料的屬性去剔除冗餘的記錄。如果重複的記錄是完全相同的,那麼只需保留一個記錄便足夠了。否則,都考慮直接取平均值(數值變數)或取眾數(類別變數)。

噪聲數據(Noisy Data)
為了平復噪聲數據,有如下幾個建議方法:
1.分箱:根據它們的平均數,中位數或眾數排序,分成不同的組別
2.迴歸:根據數據迴歸模型以平滑數據

離群值
離群值是指偏離大部分數值的數值,這取決於什麼分析目的或者物件本身的特性。如果你希望找出這種極端的現象,探討固中原因,異常值應否留在數據集中。相反,當你建立預測模型時你必須先移除這些異常值,因為模型會受到離群值的影響。為了檢測出異常值,一般的做法如下:
1.叢集化:找出叢集的中心與數據點之間的距離
2.電腦和人工檢查:利用電腦的輔助來檢測可疑的值,然後憑經驗去驗證


結論
綜上所述,為了確保數據的質量,數據淨化是或不可缺的。儘管我們能精通各式各樣的演算法,但預測模型的性能依舊會受到一些不完全的,不一致和異常數據所影響。更有趣的是,一些預測/分類模型也可以用作填補缺失值,所以,機器學習(Machine Learning) 模型並不局限應用在預測或分類。如果想了解更多一些機器學習模型,您可以參考其他跟Machine Learning有關的文章啊!

Comments

Popular posts from this blog

Boosting vs Bagging? 別再胡亂用了!

機器學習之陷阱 - Imbalance Class Classification

Excel VBA - 自動生成分析報告