數據預處理之缺失值處理

缺失值產生原因

數據集中部分數據的缺失是一件很頭疼的事情,不但增大了數據集的不確定性,也影響了算法的執行。缺失值產生的原因主要有以下幾點:
1.有些信息暫時無法獲取,或獲取信息的成本過高
2.信息遺漏,即人爲的原因,如收集信息不認真、忘記填寫信息等
3.缺失值本身就不存在,比如單身狗的女朋友

缺失值的影響

1.數據集丟失了大量的信息
2.數據集表現出的不確定性增大,使得獲取數據潛在規律的難度加大
3.包含空值的數據會使數據建模陷入混亂,導致輸出不可靠

缺失值的處理方法

1.刪除缺失值

應用場景:

含有大部分缺失值的屬性,直接刪除屬性

若數據集中只有少量的缺失值,直接刪除含有缺失值的行

2.忽略

嗯…忽略不管缺失值也是一種處理方法,例如對於決策樹,對一個含有缺失值的特徵求熵,只需在求得的熵前乘以(未缺失值的個數/所有樣本個數)的係數就行。關於決策樹的缺失值處理方法,將在後續博客中書寫。

3.插補方法

插補方法就很靈性了,可以取均值/中位數/衆數,也可以用固定值插補,還可以用臨近值來填補。除了上述方法,還可以用預測方法來填補缺失值,這類方法稱爲插值法

插值法有拉格朗日插值法、牛頓插值法,Hermite插值、分段插值、樣條插值法

下面把拉格朗日插值法、牛頓插值法做一個簡單的介紹

拉格朗日插值法

拉格朗日插值是一種多項式插值方法,是利用最小次數的多項式來構建一條光滑的曲線,使曲線通過所有的已知點。
拉個朗日插值法是一種多項式的插值方法,它的思想是對於無缺失值的n個樣本構建一條光滑的曲線,使曲線通過所有的n個樣本點,然後將含有缺失值的樣本對應的屬性點x帶入這條曲線,即可獲得缺失值的近似值。
具體流程如下(圖片來自《python數據分析與挖掘實戰》):

這裏寫圖片描述

牛頓插值法

牛頓插值法是通過求階差商來預測缺失值的,步驟如下:

1.對無缺失值的n個樣本樣本求所有的階差商公式
2.聯立差商公式建立插值多項式f(x)
3.將將含有缺失值的樣本對應的屬性點x帶入插值多項式f(x),獲取近似值

具體流程如下(圖片來自《python數據分析與挖掘實戰》):

這裏寫圖片描述

參考

《python數據分析與挖掘實戰》

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章