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