【数据分析】八种缺失值处理方法总有一种适合你
為什么要處理缺失值
這一段完全是廢話了。含有缺失數據的樣本,你要么刪了,要了就填充上什么值。刪了就會損失一部分的樣本信息,填充要是填充的不合適,會給樣本增加噪音。
所以這就是一個選擇的問題:
選擇刪除還是填充;
選擇填充方式
處理缺失值的8種方法
這里先說一下,我總結了自己在競賽中的操作,以及一些大佬的處理方法,建議處理缺失值的方法是:
先嘗試刪除有缺失項的數據,然后訓練模型,先把baseline做出來;
然后會依次嘗試:特殊值填充,(特殊)平均值填充和最近鄰法。
1. 不處理
補齊處理只是將未知值補以我們的主觀估計值,不一定完全符合客觀事實,在對不完備信息進行補齊處理的同時,我們或多或少地改變了原始的信息系統。
對空值不正確的填充往往將新的噪聲引入數據中,使挖掘任務產生錯誤的結果。因此,在許多情況下,我們還是希望在保持原始信息不發生變化的前提下對信息系統進行處理。
但是訓練模型的時候,可能不處理并不能進行。所以一般不會選擇不處理。
2. 特殊值填充
這個是認為數據的空值也是具有一定的信息的,它之所以為空,是因為它不同于其他的任何數據。所以將空值作為一種特殊的屬性值來處理,它不同于其他的任何屬性值。如所有的空值都用“unknown”填充。
3. 平均值填充
如果空值是數值型的,就根據該屬性在其他所有對象的取值的平均值來填充該缺失的屬性值
如果空值是非數值型的,就根據統計學中的眾數原理,用該屬性在其他所有對象的取值次數最多的值(即出現頻率最高的值)來補齊該缺失的屬性值。
「比方說,一個樣本的特征a缺失了,那么a就填充上所有樣本的特征a的平均值」。
此外有一種叫做「條件平均值填充」的方法,是只考慮和缺失樣本具有相同特征的樣本的平均值。比方說某一個樣本的特征a缺失了,用和這個樣本的特征b相同的所有樣本的特征a的平均值來填充這個缺失值。(因為這些樣本和缺失數據的樣本具有相同的特征,所有認為他們會更為相似)。
4. 熱卡填充
對于一個包含空值的對象,熱卡填充法在完整數據中找到一個與它最相似的對象,然后用這個相似對象的值來進行填充。
「【優缺點】」
優點:該方法概念上很簡單,且利用了數據間的關系來進行空值估計
缺點:在于難以定義相似標準,主觀因素較多。
5. 最近鄰法
先根據歐式距離或相關分析來確定距離具有缺失數據樣本最近的K個樣本,將這K個值加權平均來估計該樣本的缺失數據。
這個方法與熱卡填充有些相似,如果最近鄰法僅僅考慮最近的一個樣本,那么就會退化成熱卡填充。不過最近鄰法和熱卡填充面臨同樣的問題,如何衡量相似度。
6. 使用所有可能的值填充
「用空缺屬性值的所有可能的屬性取值來填充,能夠得到較好的補齊效果。」
但是,當數據量很大或者遺漏的屬性值較多時,其計算的代價很大,可能的測試方案很多。
7. 模型預測
基于完整的數據集,建立預測模型。對于包含空值的對象,將已知屬性值代入方程來估計未知屬性值,以此估計值來進行填充。
其實就是假設特征之間也存在一定的關系,可以通過預測來得到缺失值。但是我個人不建議使用這個方法,因為有些麻煩,而且不確定這樣得到的填充值的效果。又可能出現模型過擬合等新問題。
8. 多重插補
這個我看大數據競賽中,并沒有大神做這個填充缺失項的。一般對于小數據會使用這個方法,因為多重插補會反復訓練模型,然后評價模型的效果。因此需要大量的時間。
9. 人工填寫
在大數據中,個人不太推薦。。。
總之呢,特殊值填充,平均值填充和熱卡填充是一般來說,是我的第一選擇。三者都會嘗試,然后比較哪一款的效果最奈斯。
往期精彩回顧適合初學者入門人工智能的路線及資料下載機器學習及深度學習筆記等資料打印機器學習在線手冊深度學習筆記專輯《統計學習方法》的代碼復現專輯 AI基礎下載機器學習的數學基礎專輯獲取一折本站知識星球優惠券,復制鏈接直接打開:https://t.zsxq.com/yFQV7am本站qq群1003271085。加入微信群請掃碼進群:總結
以上是生活随笔為你收集整理的【数据分析】八种缺失值处理方法总有一种适合你的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【NLP】利用jieba对网易云音乐的评
- 下一篇: 【NLP】Pytorch中文语言模型be