數據分析中的缺失值問題
處理缺失值是數據清洗中常用到的問題,本文將介紹缺失值產生的原因和處理方法。
缺失值產生的原因:
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