我正在学习如何使用各种随机森林包并从示例代码中编码以下内容:
library(party)
library(randomForest)
set.seed(415)
#I'll try to reproduce this with a public data set; in the mean time here's the existing code
data = read.csv(data_location, sep = ',')
test = data[1:65] #basically data w/o the "answers"
m = sample(1:(nrow(factor)),nrow(factor)/2,replace=FALSE)
o = sample(1:(nrow(data)),nrow(data)/2,replace=FALSE)
train2 = data[m,]
train3 = data[o,]
#random forest implementation
fit.rf <- randomForest(train2[,66] ~., data=train2, importance=TRUE, ntree=10000)
Prediction.rf <- predict(fit.rf, test) #to see if the predictions are accurate -- but it errors out unless I give it all data[1:66]
#cforest implementation
fit.cf <- cforest(train3[,66]~., data=train3, controls=cforest_unbiased(ntree=10000, mtry=10))
Prediction.cf <- predict(fit.cf, test, OOB=TRUE) #to see if the predictions are accurate -- but it errors out unless I give it all data[1:66]
数据[,66]是我试图预测的目标因素,但似乎是通过使用“〜”。解决它导致公式在预测模型本身中使用因子。
如何在高维度数据上求解我想要的维度,而不必明确说明在公式中使用哪个维度(所以我最终不会得到某种类型的cforest(数据[,66] ] ~data [,1] + data [,2] + data [,3} ......等等?
编辑: 在很高的层面上,我基本上相信一个
所以我的问题现在是,如果我给它一组新的测试数据,让我们说test = data {1:65],它现在说“eval中的错误(expr,envir,enclos):”它在哪里期待数据[66]。我想基本上预测数据[,66]给出其余的数据!
答案 0 :(得分:1)
我认为如果答案在train3
,则会将其用作功能。
我相信这更像你想要的:
crtl <- cforest_unbiased(ntree=1000, mtry=3)
mod <- cforest(iris[,5] ~ ., data = iris[,-5], controls=crtl)