나는 이것이 상당히 구체적인 R
질문 이라는 것을 알고 있지만, R ^ 2 설명 된 비율 분산에 대해 잘못 생각하고있을 수 있습니다 . 간다
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])