TL; DR:
Есть ли что-то, что я могу отметить в исходном randomForest вызове, чтобы избежать повторного запуска функции predict , чтобы получить предсказанные категориальные вероятности, а не только вероятную категорию?
Подробнее:
Я использую пакет randomForest.
У меня есть модель вроде:
model <- randomForest(x=out.data[train.rows, feature.cols],
y=out.data[train.rows, response.col],
xtest=out.data[test.rows, feature.cols],
ytest=out.data[test.rows, response.col],
importance= TRUE)
где out.data - это кадр данных, а feature.cols - смесь числовых и категориальных признаков, а response.col - двоичная переменная TRUE/FALSE, которую я принудительно вставлял в factor, чтобы randomForest будет правильно относиться к ней как к категорическому.
Все работает хорошо, и переменная model возвращается мне правильно. Тем не менее, я не могу найти флаг или параметр для передачи функции randomForest, так что model возвращается мне с вероятностями из TRUE или FALSE. Вместо этого я получаю просто предсказанные значения. То есть, если я посмотрю на model$predicted, я увижу что-то вроде:
FALSE
FALSE
TRUE
TRUE
FALSE
.
.
.
Вместо этого я хочу увидеть что-то вроде:
FALSE TRUE
1 0.84 0.16
2 0.66 0.34
3 0.11 0.89
4 0.17 0.83
5 0.92 0.08
. . .
. . .
. . .
Я могу получить выше, но для этого мне нужно сделать что-то вроде:
tmp <- predict(model, out.data[test.rows, feature.cols], "prob")
[test.rows фиксирует номера строк для тех, которые использовались во время тестирования модели. Подробности здесь не показаны, но просты, так как идентификаторы тестовых строк выводятся в model.]
Тогда все работает нормально. проблема заключается в том, что модель большая и занимает очень много времени, и даже само прогнозирование занимает некоторое время. Поскольку предсказание должно быть совершенно ненужным (я просто ищу, чтобы вычислить кривую ROC в наборе тестовых данных, набор данных, который должен был быть уже рассчитан), я надеялся пропустить этот шаг. Есть ли что-то, что я могу указать в исходном randomForest вызове, чтобы избежать повторного запуска функции predict ?