今天下午考試,兩個鐘頭的案例操作,考了我一個相當出乎意料的問題,那就是有超多超多的缺失值需要處理
多到神馬程度咧,給親們體會一下
攏共8000行的訓練集,大概每列都有2400左右的缺失值
在短暫吐槽之後,我在考試當場磨出了一部分算法,勉強趕在結束時間前弄了個答案先交了,回來以後再整理了一下,大概寫成了這樣:
#每行缺失值個數計算
NAq
NAqty
NAStat
整個8000行裡頭,完全不缺任何值的行只有240,強忍著悲傷進行下一步吧,這裡人為的設了保留85%的數據量
#每行最多能容忍幾個NA值
cumsum(NAStat)/nrow(Now)
Upto85 0.85
NAlim
#去掉NA值過多的行
Now
唉~~~沒轍了,照本宣科地搬點教材上的做法,連續值取平均
#用均值自動填充連續值列
Ccols
for (i in Ccols)
{mean
Now[which(is.na(Now[,i])),i]
但如果分類值填眾數的話,那估計是要歇菜的,所以統一填成Unknown,自成一類吧
#分類項NA填Unknown
T
Fcols
for (i in Fcols)
{levels(Now[,i])
Now[which(is.na(Now[,i])),i]
混得有點過,但考都考完了,剩下的就聽天由命咯~~
閱讀更多 jennifer5jl 的文章