2016-09-11 6 views
-2

Я стараюсь следовать примеру учебника от Джеймса и др. «Введение в статистическое обучение с помощью приложений в R», и я запускаю в сообщение об ошибке я не понимаю.Сумка со случайным лесом, объект не найден даже с МАССОМ: набор данных Бостона

library(MASS) 
library(randomForest) 
set.seed(1) 
bag.boston=randomForest(medv~.,data=Boston, subset=train,mtry=13, importance=TRUE) 
yhat.bag = predict(bag.boston,newdata=Boston[-train,]) 

С этой последней строке я получаю сообщение об ошибке

Ошибка в Eval (выражение, Envir, Enclos): объект 'возраст' не найден

Почему я получаю это сообщение об ошибке и как его предотвратить? Я вижу, что здесь был задан аналогичный вопрос: Error in running randomForest : object not found . но в этом случае ОП пыталась ввести матрицу, а не фрейм данных в качестве своего исходного набора данных, и так или иначе, чем при вызове randomForest, а не в вызове предсказания.

У этого человека randomForest in R object not found error также была аналогичная проблема, но в его текстовом файле была отмечена символика non ascii, что, я уверен, не характерно для этого набора данных.

Возможно, я должен представить слово «данные» для «newdata» в функции прогнозирования, но это, кажется, дает действительно разные ответы, чем я вижу в текстовых примерах.

Любые другие мысли?

ответ

2

Я нашел копию этой книги, о которой вы говорите, которая была published online автором и USC.

Вы оставили необходимый код для запуска этого кодового блока. В книге, что фрагмент кода был из сеанса файла/R, который был разбит между многими страницами и блоками кода и зависит от более раннего запуска кода, например создания train. Когда нужный код включен из этой книги, он работает нормально. Ошибка, которую вы получили, не может быть воспроизведена.

library(MASS) 
library(randomForest) 
library(tree) 
set.seed(1) 
train = sample(1:nrow(Boston), nrow(Boston)/2) 

bag.boston=randomForest(medv~.,data=Boston, subset=train,mtry=13, importance=TRUE) 
yhat.bag = predict(bag.boston,newdata=Boston[-train,]) 

summary(yhat.bag) 
Min. 1st Qu. Median Mean 3rd Qu. Max. 
    7.965 17.050 21.330 22.700 25.530 48.690 
+1

Ха. Да, теперь работает для меня, когда я перезапустил все и выполнил именно тот код, который вы предоставили. Обратите внимание, что строка tree.boston не нужна для запуска функции. – ohnoplus