數據分析中的缺失值問題

數據清洗是數據分析的一個重要工作,因為數據的質量直接影響數據分析或者演算法模型的結果。在我平時的工作中,經常有這種情況,我絞盡腦汁對演算法模型做優化,效果不明顯,到最後發現是數據的問題

處理缺失值是數據清洗中常用到的問題,本文將介紹缺失值產生的原因和處理方法。

缺失值產生的原因:

1. 某些信息暫時無法獲取,或者獲取信息的代價太大

2. 系統或者設備故障

3. 數據採集過程中,比如調查問卷,被調查者不想分享數據;醫療數據牽涉患者隱私,患者不提供

數據缺失大概有兩重形式:

1. 完全缺失,比如某個屬性值信息完全不可獲取,即某一列的值全部缺失;

2. 隨機缺失,某些記錄有,某些記錄沒有

那麼該如何處理缺失值呢?不外乎下面幾種方法:

1. 直接刪除欄位缺失的記錄

通常當我們有大量數據完整的記錄時,刪除少部分缺失的記錄,對數據分析或者演算法的結果不會造成太大影響。

2. 對缺失值進行替換

當我們有部分記錄的數據是完整的時候,可以用該屬性已有的值的一些統計量來替換缺失值,比如用均值,中位數暫時填充缺失值。

3. 相似對象填充

假如我們有ABCDE五個屬性,有三條記錄,第一條記錄和第二條記錄屬性值都是完整的,而第三條記錄的屬性E缺失;但是我們發現不考慮屬性E的話,第三條記錄和第一條記錄非常相似,那麼我們可以用第一條記錄的屬性E的值來填充第三條記錄的屬性E的值。

4. 用模型去預測缺失值

把包含缺失值的屬性作為目標變數,把其他完整的屬性作為自變數,用回歸的方法去建立模型,根據模型預測值,填充缺失值。

其實,除了缺失值,還有異常值需要識別和處理,不過之前的專欄中已經介紹了好多異常值識別的方法,這裡不再介紹異常值的識別。

給自己定個計劃,接下來會總結下自己用過的一些聚類演算法。


推薦閱讀:

概率圖模型體系:HMM、MEMM、CRF
CVAE-GAN論文翻譯(3.4. CVAEGAN的目標)
《Teaching-to-Learn and Learning-to-Teach for Multi-label Propagation》閱讀筆記
請問機器學習可用於機械行業的哪些領域?
【機器學習】高效能的機器學習框架H2O.ai

TAG:数据分析 | 数据挖掘 | 机器学习 |