Saya tahu ini adalah R
pertanyaan yang cukup spesifik , tetapi saya mungkin berpikir tentang perbedaan proporsi yang dijelaskan, , salah. Ini dia.
Saya mencoba menggunakan R
paket randomForest
. Saya memiliki beberapa data pelatihan dan data pengujian. Ketika saya cocok dengan model hutan acak, randomForest
fungsi ini memungkinkan Anda untuk memasukkan data pengujian baru untuk diuji. Ini kemudian memberi tahu Anda persentase varians yang dijelaskan dalam data baru ini. Ketika saya melihat ini, saya mendapatkan satu nomor.
Ketika saya menggunakan predict()
fungsi untuk memprediksi nilai hasil dari data pengujian berdasarkan model fit dari data pelatihan, dan saya mengambil koefisien korelasi kuadrat antara nilai-nilai ini dan nilai-nilai hasil aktual untuk data pengujian, saya mendapatkan nomor yang berbeda. Nilai-nilai ini tidak cocok .
Berikut beberapa R
kode untuk menunjukkan masalahnya.
# 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])