作者f496328mm (为什麽会流泪)
看板R_Language
标题[问题] 补遗失值 mice 包 太慢
时间Sun Dec 18 00:31:58 2016
文章分类提示:
- 问题: 当你想要问问题时,请使用这个类别。
建议先利用 google 爬文,如输入
「想查询的关键字 site:webptt.com/cn.aspx?n=/*/R_Language/」。
[问题类型]:
程式谘询(我想用R 做某件事情,但是我不知道要怎麽用R 写出来)
[软体熟悉度]:
入门(写过其他程式,只是对语法不熟悉)
[问题叙述]:
请问有没有其他的packages
补遗失值的方法,mice虽然可以,但是太慢了,
我的data,length (row*col) 有100万个数字,
(4w 个 row,26 个 col)
missing value 有1.1万笔,
要跑 3min
[程式范例]:
library(mice)
x=rnorm(100)
x[sample(100,20)]=NA
x=matrix(x,ncol=5)
x
complete( mice( x ) )
[关键字]:
mice , missing value
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 114.45.173.137
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/R_Language/M.1481992320.A.5B1.html
1F:推 cywhale: data.table(x); for(j in colnames(dt)) {set(dt, j=j, 12/18 00:47
2F:→ cywhale: value=ifelse(is.na(dt[[j]]),0,dt[[j]]))} 12/18 00:48
3F:→ clansoda: 要先观察缺失值是随机缺失还是某些因素缺失 12/18 11:04
4F:→ clansoda: 如果是外来因素导致缺失,用rough的方法反而是增加noise 12/18 11:05
5F:→ clansoda: 对你的预测反而是种危害,与其增加noise不如移除这些 12/18 11:05
6F:→ clansoda: 足的讯号 12/18 11:05
缺失是因为,我生成变数的关系,有些data没有相对应的变数,让我生成
不是观察缺失,由於是变数,所以我用内插的方式补上,也就是mice的方法,
只是有点慢就是了,
这其实有点风险,
我之前用xgboost,他会自动帮我补变数,
(自动补变数,跟我用内插补变数,结果是一样的,
自动补,但是我看不到补完後的data,只能由预测结果去看)
现在我想结合其他弱模型,像是svm or glmnet,去做预测
但是那些模型不能处理missing value,所以用mice去补上,不过有点慢就是了
由於某些原因,没办法删除 missing value 的data
※ 编辑: f496328mm (114.45.173.137), 12/18/2016 12:28:40
※ 编辑: f496328mm (114.45.173.137), 12/18/2016 12:30:25
7F:推 cywhale: 好像搞错意思sorry,所以要补内插?你想补内插的方式为何? 12/18 14:40
8F:→ clansoda: mlr也有可以inputation的用途,不妨试试 12/18 14:41
9F:→ Wush978: mice是column based 的填补missing value嘛?有办法做切 12/19 11:08
10F:→ Wush978: 割後用平行运算来跑嘛? 12/19 11:09
稍微看了一下,发现mice里面好多方法阿,
回归补内插,
Linear discriminant analysis,
Classification and regression trees,
甚至还有 Random forest imputations,
看来还是让data跑完就存起来,下次就不用再做一次 mice 补NA,
时间久,就让他跑八,反正也只需要跑一次
不过这麽多种方法,有什麽优劣??
※ 编辑: f496328mm (114.45.173.137), 12/19/2016 12:19:22
11F:→ clansoda: mice package的作者有一个manual有介绍 我忘了在哪 12/19 21:09
12F:→ clansoda: Hi, I have found the paper. If u want it, sent me a 12/21 17:30
13F:→ clansoda: text message. 12/21 17:30