做者:無影隨想
時間:2016年1月。
出處:https://zhaokv.com/machine_learning/2016/01/missing-values.html
聲明:版權全部,轉載請註明出處html
現實世界中的數據每每很是雜亂,未經處理的原始數據中某些屬性數據缺失是常常出現的狀況。另外,在作特徵工程時常常會有些樣本的某些特徵沒法求出。路漫漫其修遠兮,數據仍是要繼續挖的,本文介紹幾種處理數據中缺失值的主要方法。性能
最簡單的方法是刪除,刪除屬性或者刪除樣本。若是大部分樣本該屬性都缺失,這個屬性能提供的信息有限,能夠選擇放棄使用該維屬性;若是一個樣本大部分屬性缺失,能夠選擇放棄該樣本。雖然這種方法簡單,但只適用於數據集中缺失較少的狀況。學習
對於缺失值的屬性,尤爲是數值類型的屬性,根據全部樣本關於這維屬性的統計值對其進行填充,如使用平均數、中位數、衆數、最大值、最小值等,具體選擇哪一種統計值須要具體問題具體分析。另外,若是有可用類別信息,還能夠進行類內統計,好比身高,男性和女性的統計填充應該是不一樣的。htm
對於含缺失值的屬性,把全部缺失值統一填充爲自定義值,如何選擇自定義值也須要具體問題具體分析。固然,若是有可用類別信息,也能夠爲不一樣類別分別進行統一填充。經常使用的統一填充值有:「空」、「0」、「正無窮」、「負無窮」等。it
咱們能夠經過預測模型利用不存在缺失值的屬性來預測缺失值,也就是先用預測模型把數據填充後再作進一步的工做,如統計、學習等。雖然這種方法比較複雜,可是最後獲得的結果比較好。class
上面兩次提到具體問題具體分析,爲何要具體問題具體分析呢?由於屬性缺失有時並不意味着數據缺失,缺失自己是包含信息的,因此須要根據不一樣應用場景下缺失值可能包含的信息進行合理填充。下面經過一些例子來講明如何具體問題具體分析,仁者見仁智者見智,僅供參考:方法