So che questa è una R
domanda abbastanza specifica , ma potrei pensare alla varianza della proporzione spiegata, , in modo errato. Ecco qui.
Sto cercando di usare il R
pacchetto randomForest
. Ho alcuni dati di allenamento e dati di test. Quando inserisco un modello di foresta casuale, la randomForest
funzione consente di inserire nuovi dati di test da testare. Ti dice quindi la percentuale di varianza spiegata in questi nuovi dati. Quando guardo questo, ottengo un numero.
Quando utilizzo la predict()
funzione per prevedere il valore di risultato dei dati di test in base all'adattamento del modello dai dati di allenamento e prendo il coefficiente di correlazione al quadrato tra questi valori e i valori di risultato effettivi per i dati di test, ottengo un numero diverso. Questi valori non corrispondono .
Ecco del R
codice per dimostrare il 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])