全部課程
發(fā)布時(shí)間: 2019-11-24 16:55:16
在實(shí)際業(yè)務(wù)中,不可避免的會(huì)出現(xiàn)數(shù)據(jù)缺失的現(xiàn)象,總結(jié)下來大致有如下幾種情形。
?人為疏忽、機(jī)器故障等客觀因素導(dǎo)致信息缺失。
?人為刻意隱瞞部分?jǐn)?shù)據(jù)。比如在數(shù)據(jù)表中,有意將一列屬性視為空值,此時(shí)缺失值就可看作是一種特殊的特征值。
?數(shù)據(jù)本身不存在,比如銀行做用戶信息收集時(shí),對(duì)學(xué)生群體來說工資這一屬性不存在,因此在數(shù)據(jù)表里顯示為空值。
?系統(tǒng)實(shí)時(shí)性能要求較高。
?歷史局限性導(dǎo)致數(shù)據(jù)收集不完整。
機(jī)器學(xué)習(xí)里有一句名言:數(shù)據(jù)和特征決定了機(jī)器學(xué)習(xí)的上限,而模型和算法的應(yīng)用只是逼近這個(gè)上限。因此高質(zhì)量的數(shù)據(jù)對(duì)建立好的數(shù)據(jù)模型有著至關(guān)重要的作用。
數(shù)據(jù)集中缺少部分?jǐn)?shù)據(jù)可以降低模型過擬合機(jī)率,但也存在模型偏差過大的風(fēng)險(xiǎn),因?yàn)闆]有正確地分析變量的行為和關(guān)系,從而導(dǎo)致錯(cuò)誤的預(yù)測(cè)或分類。
數(shù)據(jù)缺失原因多種多樣,針對(duì)不同的缺失原因,數(shù)據(jù)缺失值的處理方式也各不相同。值得注意的是,有時(shí)屬性缺失并不意味著數(shù)據(jù)缺失,比如,銀行收集客戶信息時(shí),學(xué)生在“工資”這一欄為空值。缺失本身是包含有價(jià)值的信息的。因此要結(jié)合具體業(yè)務(wù)場(chǎng)景、數(shù)據(jù)場(chǎng)景選擇合適的數(shù)據(jù)缺失值處理方式。
缺失值處理方法眾多,總結(jié)下來為三種:
?刪除
?填充
?不處理
適用范圍 | 適用于數(shù)據(jù)量大,數(shù)據(jù)缺失值少的數(shù)據(jù)集。 完全隨機(jī)缺失時(shí)可直接使用刪除操作。 | |
方法 | 刪除 | 直接刪除包含缺失值的元組或記錄。 |
80%法則 (屬性刪除) | 80%法則 (Bijlsma et al. 2006) 認(rèn)為,當(dāng)某一物質(zhì)的非缺失部分低于總樣本量的80%時(shí),建議刪除該物質(zhì)。因此,在數(shù)據(jù)集中,缺失值超過總量的20%時(shí),理論上可刪除該變量或?qū)傩浴?/span> | |
優(yōu)點(diǎn) | 操作簡(jiǎn)單 | |
缺點(diǎn) | 直接刪除會(huì)丟失部分原始數(shù)據(jù),破壞數(shù)據(jù)的歷史完整性。 數(shù)據(jù)缺失占比較多時(shí),直接刪除可能會(huì)改變?cè)紨?shù)據(jù)的分布情況。 降低模型準(zhǔn)確性。 | |
操作 | 利用Python中的pandas的dropna函數(shù)直接刪除有缺失值的特征。 | |
基于統(tǒng)計(jì)學(xué)原理,根據(jù)初始數(shù)據(jù)集中非缺失對(duì)象取值的分布情況來對(duì)一個(gè)缺失值進(jìn)行填充。
填充方式包含人工填充、特殊值填充、平均值填充、熱卡填充、KNN、預(yù)測(cè)模型、組合完整化方法等。
本節(jié)只詳細(xì)介紹
n填充
nKNN
n回歸
n變量映射
n其他詳細(xì)信息見“更多信息”。
補(bǔ)齊的缺失值畢竟不是原始數(shù)據(jù),不一定符合客觀事實(shí)。對(duì)數(shù)據(jù)的填充在一定程度上改變了數(shù)據(jù)的原始分布,也不排除加入了噪音節(jié)點(diǎn)的可能性。
因此,對(duì)于一些無法應(yīng)對(duì)缺失值的模型,可以用缺失值填充的方式補(bǔ)齊缺失數(shù)據(jù)。但有些模型本身可以容忍一定的數(shù)據(jù)缺失情況,此時(shí)可以選擇不處理的方式,比如Xgboost模型。