遇到遺失值是否一定要做填補的動作,填補與不填補的影響為何?
老師 想請問一下 在Missing Value處理 若是保留空值不做填補 是否會對模型造成影響?
一般來說遇到空值會做保留還是給予一個值(常數值)代替空值,因有朋友認為是保留空值而不應該賦予空值一個數值,讓我感困惑,該使用保留空值還是會做填補的動作比較恰當?
類別資料常數或是填眾數的方法 一般會比較使用哪種
回答列表
-
2020/06/25 下午 05:53Jeffrey贊同數:1不贊同數:0留言數:0
•最簡單暴力的做法當然就是直接 drop 掉那些含有缺失值的 rows
•文明的處理
•針對 numerical 特徵的缺失值,可以用以下方式取代:
•0,缺點是可能會混淆其他本來就是 0 的數值
•-999,用某個正常情況下不會出現的數值代替,但是選得不好可能會變成異常值,要特別對待
•Mean,平均數
•Median,中位數,跟平均數相比,不會被異常值干擾
•針對 categorical 特徵的缺失值,可以用以下方式取代:
•Mode,眾數,最常見的值
•改成 "Others" 之類的值
•更複雜一點的方式是,你可以把沒有缺失值的數據挑出來,用它們來訓練一個 regression 或 classification 模型,用這個模型來預測缺失值。
-
2020/06/25 下午 06:01張維元 (WeiYuan)贊同數:1不贊同數:0留言數:2
嗨,關於「遇到遺失值是否一定要做填補的動作,填補與不填補的影響為何?」問題,以下回答:
這個答案是「一定要填」,大部分的模型都是基於數學所定義出來的,空值是無法計算的,因此不填補的話模型是無法運行的。
如果這個回答對你有幫助請主動點選「有幫助」的按鈕,也可以追蹤我的GITHUB帳號。若還有問題的話,也歡迎繼續再追問或者把你理解的部分整理上來,我都會提供你 Review 和 Feedback 😃😃😃
-
2020/06/25 下午 06:04張維元 (WeiYuan)贊同數:1不贊同數:0留言數:1
「一般來說遇到空值會做保留還是給予一個值(常數值)代替空值,因有朋友認為是保留空值而不應該賦予空值一個數值,讓我感困惑,該使用保留空值還是會做填補的動作比較恰當?類別資料常數或是填眾數的方法 一般會比較使用哪種」
=> 「有朋友認為是保留空值而不應該賦予空值一個數值」這個想法應該是有問題的,請問沒有數值的空值,模型該如何運算呢?
常見的處理策略有幾下幾招:
1. 刪除有空值的欄位
2. 利用「常數/固定值」填補空值
3. 利用「統計值」填補空值
4. 利用「內插法/模型法」填補空值
會因為不同的場景決定,使用不同的策略。
如果這個回答對你有幫助請主動點選「有幫助」的按鈕,也可以追蹤我的GITHUB帳號。若還有問題的話,也歡迎繼續再追問或者把你理解的部分整理上來,我都會提供你 Review 和 Feedback 😃😃😃
-
2020/06/25 下午 06:05張維元 (WeiYuan)贊同數:1不贊同數:0留言數:1
關於「類別資料常數或是填眾數的方法 一般會比較使用哪種」,你自己有什麼想法嗎?
如果這個回答對你有幫助請主動點選「有幫助」的按鈕,也可以追蹤我的GITHUB帳號。若還有問題的話,也歡迎繼續再追問或者把你理解的部分整理上來,我都會提供你 Review 和 Feedback 😃😃😃
-
2020/06/26 上午 00:29張維元 (WeiYuan)贊同數:2不贊同數:0留言數:2
嗨,致良,統一前面這幾段的回覆一起討論:
其實你跟你朋友的想法並不是「不要做填補」,而是「不知道怎麼填補比較好」。基本上,空值是一定要處理的,否則大部分的模型是無法做計算的。至於你有提到某些模型就算沒有補也可以動,這裡的原因是套件當中有處理,因此可以不用事前做,不過比較嚴謹(或是自己實作算法)的話還是需要處理的。
常見的缺失值處理有以下幾種:
1. 視影響程度多少決定是否直接刪除
2. 直接補一個常數值/固定值,例如:0、-1、UNKNOWN、無法確定之類的
3. 根據全部/類似資料補統計值,連續型建議捕平均數、離散/類別行建議補眾數
4. 利用統計的內差/回歸或是機器學習模型對欄位運算
不管是哪一種方法,最高指導原則都是「盡量不破壞原本資料的分佈」。
如果這個回答對你有幫助請主動點選「有幫助」的按鈕,也可以追蹤我的GITHUB帳號。若還有問題的話,也歡迎繼續再追問或者把你理解的部分整理上來,我都會提供你 Review 和 Feedback 😃😃😃