Sé que esto es bastante específico R
pregunta, pero puede estar pensando en proporción de varianza explicado, , de forma incorrecta. 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, la randomForest
función le permite ingresar nuevos datos de prueba para probar. Luego le indica el porcentaje de varianza explicado en estos nuevos datos. Cuando miro esto, obtengo un número.
Cuando uso la predict()
función para predecir el valor de resultado de los datos de prueba en función del ajuste del modelo a partir de los datos de entrenamiento, y tomo el coeficiente de correlación al cuadrado entre estos valores y los valores de resultado reales para los datos de prueba, obtengo un número diferente. Estos valores no coinciden .
Aquí hay un 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])
fuente