我知道这是一个相当具体的R
问题,但我可能正在考虑错误解释的比例方差。开始。
我正在尝试使用该R
包装randomForest
。我有一些训练数据和测试数据。当我拟合随机森林模型时,该randomForest
函数允许您输入新的测试数据进行测试。然后,它告诉您此新数据中说明的方差百分比。当我看到这个时,我得到一个数字。
当我使用该predict()
函数基于训练数据的模型拟合来预测测试数据的结果值时,并取这些值与测试数据的实际结果值之间的平方相关系数,得出一个不同的数字。这些值不匹配。
这是一些R
代码来演示该问题。
# use the built in iris data
data(iris)
#load the randomForest library
library(randomForest)
# split the data into training and testing sets
index <- 1:nrow(iris)
trainindex <- sample(index, trunc(length(index)/2))
trainset <- iris[trainindex, ]
testset <- iris[-trainindex, ]
# fit a model to the training set (column 1, Sepal.Length, will be the outcome)
set.seed(42)
model <- randomForest(x=trainset[ ,-1],y=trainset[ ,1])
# predict values for the testing set (the first column is the outcome, leave it out)
predicted <- predict(model, testset[ ,-1])
# what's the squared correlation coefficient between predicted and actual values?
cor(predicted, testset[, 1])^2
# now, refit the model using built-in x.test and y.test
set.seed(42)
randomForest(x=trainset[ ,-1], y=trainset[ ,1], xtest=testset[ ,-1], ytest=testset[ ,1])