2012-04-29 17 views
4

誰も、randomForestとbigmemoryライブラリを使用して分類(回帰ではなく)を設定できました。私は、「フォーミュラアプローチ」は使用できないことを認識しており、「x = predictors、y = response approach」に頼らざるを得ません。大きなメモリライブラリはカテゴリ値を持つレスポンスベクタを扱うことができません私の場合、私は2つのレベルを持っていて、どちらも文字で表現されています。R:randomForestで分類するためのbigmemoryライブラリの使用

bigmemoryの文書によると... "データフレームには文字ベクトルが因子に変換され、

「数値因子レベルに変換された任意のbigmemoryで動作するようにランダムフォレスト分類を取得するための回避策を提案した?

#EXAMPLE to problem 
library(randomForest) 
library(bigmemory) 
# Removing any extra objects from my workspace (just in case) 
rm(list=ls()) 

#first small matrix 
small.mat <- matrix(sample(0:1,5000,replace = TRUE),1000,5) 
colnames(small.mat) <- paste("V",1:5,sep = "") 
small.mat[,5] <- as.factor(small.mat[,5]) 
small.rf <- randomForest(V5 ~ .,data = small.mat, mtry=2, do.trace=100) 
print(small.rf) 
small.result <- matrix(0,1000,1) 
small.result <- predict(small.rf, data=small.mat[,-5]) 

#now small dataframe Works! 
small.mat <- matrix(sample(0:1,5000,replace = TRUE),1000,5) 
colnames(small.mat) <- paste("V",1:5,sep = "") 
small.data <- as.data.frame(small.mat) 

small.data[,5] <- as.factor(small.data[,5]) 
small.rf <- randomForest(V5 ~ .,data = small.data, mtry=2, do.trace=100) 
print(small.rf) 
small.result <- matrix(0,1000,1) 
small.result <- predict(small.rf, data=small.data[,-5]) 


#then big matrix Classification Does NOT Work :-(
#----------------****************************---- 
big.mat <- as.big.matrix(small.mat, type = "integer") 
#Line below throws error, "cannot coerce class 'structure("big.matrix", package = "bigmemory")' into a data.frame" 
big.rf <- randomForest(V5~.,data = big.mat, do.trace=10) 

#Runs without error but only regression 
big.rf <- randomForest(x = big.mat[,-5], y = big.mat[,5], mtry=2, do.trace=100) 
print(big.rf) 
big.result <- matrix(0,1000,1) 
big.result <- predict(big.rf, data=big.mat[,-5]) 
+1

'y = as.factor(big.mat [、5])'を介して因数分解する強制? – joran

+0

私は、 'randomForest'が実際にbig.matrix入力をサポートしているのかどうかはわかりません。 – joran

+0

私が知っているように、 'randomForest'は、モデルビルドを呼び出すときに、すべての' bigmemory'データをRAMにロードします。 – DrDom

答えて

1

bigrfパッケージが役立ちます。現在、限られた数の機能で分類をサポートしています。

+0

例を挙げることはできますか? –

関連する問題