R:使用 bigmemory 库通过 randomForest 进行分类

标签 r machine-learning data-mining r-bigmemory

有没有人能够使用 randomForest 和 bigmemory 库设置分类(而不是回归)。我知道不能使用“公式方法”,我们必须求助于“x=预测变量,y=响应方法”。看来大内存库无法处理具有分类值的响应向量(毕竟它是一个矩阵)。就我而言,我有两个级别,都表示为字符。

根据 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])

最佳答案

bigrf包可能有帮助。目前,它支持的分类功能数量有限。

关于R:使用 bigmemory 库通过 randomForest 进行分类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10369933/

相关文章:

r - 在数据框 R 中动态创建列并根据其他列条件进行填充

python - 使用基于距离的方法对分类数据集进行聚类

python - Word2Vec + Regression - 数值评分方法

java - 处理朴素贝叶斯分类器中缺失的属性

r - 使用配置文件在 RSelenium 中自动化 Headless Firefox

r - 表达式()中的换行符?

algorithm - 从全文搜索结果中提取小的相关位文本(如 Google 所做的那样)

validation - Weka 是否在具有 10CV 的单独保留集上测试结果?

r - 如何使用 R 删除字符串中特定单词之前和之后的单词?

machine-learning - 交叉验证 - Weka API