[問題] 補遺失值 mice 包 太慢

看板R_Language作者 (為什麼會流淚)時間9年前 (2016/12/18 00:32), 9年前編輯推噓2(2011)
留言13則, 3人參與, 最新討論串1/1
文章分類提示: - 問題: 當你想要問問題時,請使用這個類別。 建議先利用 google 爬文,如輸入 「想查詢的關鍵字 site:www.ptt.cc/*/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://www.ptt.cc/bbs/R_Language/M.1481992320.A.5B1.html

12/18 00:47, , 1F
data.table(x); for(j in colnames(dt)) {set(dt, j=j,
12/18 00:47, 1F

12/18 00:48, , 2F
value=ifelse(is.na(dt[[j]]),0,dt[[j]]))}
12/18 00:48, 2F

12/18 11:04, , 3F
要先觀察缺失值是隨機缺失還是某些因素缺失
12/18 11:04, 3F

12/18 11:05, , 4F
如果是外來因素導致缺失,用rough的方法反而是增加noise
12/18 11:05, 4F

12/18 11:05, , 5F
對你的預測反而是種危害,與其增加noise不如移除這些
12/18 11:05, 5F

12/18 11:05, , 6F
足的訊號
12/18 11:05, 6F
缺失是因為,我生成變數的關係,有些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

12/18 14:40, , 7F
好像搞錯意思sorry,所以要補內插?你想補內插的方式為何?
12/18 14:40, 7F

12/18 14:41, , 8F
mlr也有可以inputation的用途,不妨試試
12/18 14:41, 8F

12/19 11:08, , 9F
mice是column based 的填補missing value嘛?有辦法做切
12/19 11:08, 9F

12/19 11:09, , 10F
割後用平行運算來跑嘛?
12/19 11:09, 10F
稍微看了一下,發現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

12/19 21:09, , 11F
mice package的作者有一個manual有介紹 我忘了在哪
12/19 21:09, 11F

12/21 17:30, , 12F
Hi, I have found the paper. If u want it, sent me a
12/21 17:30, 12F

12/21 17:30, , 13F
text message.
12/21 17:30, 13F
文章代碼(AID): #1OLMY0Mn (R_Language)
文章代碼(AID): #1OLMY0Mn (R_Language)