Sé que es un tema bastante específico R
pregunta, pero puede que esté pensando en la proporción de la varianza explicada, $R^2$ , incorrectamente. Aquí va.
Estoy tratando de usar el R
paquete randomForest
. Tengo algunos datos de entrenamiento y datos de prueba. Cuando ajusto un modelo de bosque aleatorio, el randomForest
le permite introducir nuevos datos de prueba para comprobar. A continuación, le indica el porcentaje de varianza explicada en estos nuevos datos. Cuando miro esto, obtengo un número.
Cuando uso el predict()
para predecir el valor del resultado de los datos de prueba basándose en el ajuste del modelo a partir de los datos de entrenamiento, y tomo el coeficiente de correlación al cuadrado entre estos valores y el actual valores de resultado para los datos de prueba, obtengo un número diferente. Estos valores no coinciden .
Aquí hay algunos R
código para demostrar el problema.
# 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])