2015-06-12 2 views
2

Я чувствую, что мне не хватает чего-то очень простого здесь.randomForest package in R mse расчет

Я запустить случайный лес регрессии:

INTERP.rf<-randomForest(y~.,data=df,importance=T,mtry=3,ntree=300) 

, а затем извлекали прогнозы на обучающем наборе:

rf.predict<-predict(INTERP.rf,df,type="response") 

% вар из rf.predict выглядел слишком низко, так что я проверил это:

MSE.rf<-sum((rf.predict-y)^2)/length(y) 

... и получил дико другой ответ, чем время осмотра rf.predict OBJ ect дал.

Может кто-нибудь выделить мою ошибку?

+2

Вы предсказывающие на данных, используемых для построения модели. Это плохо и, как правило, никогда не делается (переобучение). По умолчанию «randomForest» сообщает об ошибках вне пакета (OOB). – joran

+0

@joran - Я согласен, что оценка модели на данных, используемых для построения модели, может привести к переопределению. Но совсем не так сложно проверить вывод, сгенерированный с помощью 'прогноза' на объект randomForest. – davechilders

+0

@DMC Вы правы, я написал этот комментарий немного быстро. Это «плохо» в отношении измерения прогностической точности. – joran

ответ

1

Правильный способ сделать это состоит в использовании:

rf.predict<-predict(INTERP.rf) 

Я не знал, что мне нужно использовать predict.randomforest(model) в отличие от predict.randomForest(model,trainingData), чтобы получить предсказания OOB.

Благодарит Вас @joran и @Vlo за полезные комментарии

Смежные вопросы