2014-09-15 3 views
1

Я пытаюсь получить вероятность класса двоичной классификации randomForest. Я изо всех сил пытаюсь получить правильный синтаксис. Я попытался прочитать файл справки, но я не нашел ответа. Есть идеи?Вероятность класса randomForest в R

> str(training) 
'data.frame': 160051 obs. of 5 variables: 
$ repeater   : Factor w/ 2 levels "FALSE","TRUE": 1 1 1 1 1 1 1 1 1 1 ... 
$ offervalue   : num 0.75 0.75 1.5 0.75 1.25 1.25 1 0.75 0.75 0.75 ... 
$ has_bought_brand : Factor w/ 2 levels "FALSE","TRUE": 1 1 2 1 1 1 2 1 1 1 ... 
$ has_bought_company : Factor w/ 2 levels "FALSE","TRUE": 1 1 2 1 2 2 2 2 1 1 ... 
$ has_bought_category: Factor w/ 2 levels "FALSE","TRUE": 2 1 1 1 2 2 2 1 1 1 ... 

> model <- randomForest(repeater ~ offervalue + has_bought_brand + has_bought_company + has_bought_category, training, ntree=50) 

> testPrediction <- predict(model, testing) 

> str(testPrediction) 
Factor w/ 2 levels "FALSE","TRUE": 1 1 1 1 1 1 1 1 1 1 ... 
- attr(*, "names")= chr [1:64020] "4" "5" "11" "12" ... 

ответ

5

Прежде всего, при размещении кода, убедитесь, что он reproducible; в идеале мы должны иметь возможность копировать/вставлять его в наши собственные сеансы R, чтобы получить ту же ошибку/проблему, что и вы. Опубликовать str() данных.set не помогает. Часто вы можете найти простые примеры на страницах справки о задействованных функциях. Следующий пример взят из ?randomForest

set.seed(71) 
iris.rf <- randomForest(Species ~ ., data=iris, importance=TRUE, 
         proximity=TRUE) 

так class(iris.rf)==c("randomForest.formula", "randomForest"), когда вы звоните predict(iris.rf), вы на самом деле вызова predict.randomForest(). Страница помощи для ?predict.randomForest дает документацию для всех различных параметров, включая параметр type=. По умолчанию она просто возвращает предсказанный класс, но вы можете вернуть предсказанные вероятности с type="prob")

predict(iris.rf, type="prob") 

который возвращает

  setosa versicolor virginica 
1 1.000000000 0.000000000 0.000000000 
2 1.000000000 0.000000000 0.000000000 
3 1.000000000 0.000000000 0.000000000 
4 1.000000000 0.000000000 0.000000000 
# etc .... 
+0

Спасибо за хорошие советы по использованию публичных данных, чтобы размещать примеры на переполнение стека , – poiuytrez

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