作者f496328mm (為什麼會流淚)
看板R_Language
標題[問題] 補遺失值 mice 包 太慢
時間Sun Dec 18 00:31:58 2016
文章分類提示:
- 問題: 當你想要問問題時,請使用這個類別。
建議先利用 google 爬文,如輸入
「想查詢的關鍵字 site:webptt.com/m.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/m.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