Я устанавливаю две модели с пакетом ranger
и одним и тем же семенем. Первый предсказывает класс, а второй возвращает матрицу вероятностей, моя цель - достичь того же результата, но я различаюсь 4 регистрами. Кто-то знает решение. Я использую максимальную вероятность для каждого класса. Какой должна быть точка отсечки?
library(ranger)
library(caret)
## fit model 1
mod <- ranger(formula = Species ~., data = iris, seed = 2020)
res1 <- predict(object = mod, data = iris[,-5])$predictions
## fit model 2
mod2 <- ranger(formula = Species ~., data = iris, probability = TRUE, seed = 2020)
res2 <- factor(ifelse(apply(predict(object = mod2, data = iris[,-5])$predictions, 1, which.max) == 1,"setosa",
ifelse(apply(predict(object = mod2, data = iris[,-5])$predictions, 1, which.max) == 2, "versicolor", "virginica")),
levels = c("setosa","versicolor","virginica"))
head(data.frame(res1, res2))
res1 res2
1 setosa setosa
2 setosa setosa
3 setosa setosa
4 setosa setosa
5 setosa setosa
6 setosa setosa
all.equal(res1, res2)
[1] "4 string mismatches"
Мой ожидаемый результат
all.equal(res1, res2)
[1] TRUE