Как бы получить шаблон ошибок на тестовых объектах для регрессионной модели logisti c? - PullRequest
0 голосов
/ 09 января 2020

Я пытаюсь проанализировать образец ошибки (точности) на тестовых элементах для модели, которую я кодировал ниже. Я хотел бы узнать, как часто виды радужной оболочки сетозы и версиколора ошибочно классифицируются как виргинская и как часто разновидности радужной оболочки вирджинии ошибочно классифицируются как не виргинская. Можно ли это сделать? Любые предложения будут великолепны. Вот моя регрессионная модель логистики c и построенный классификатор с использованием этой модели ...

library(datasets)
iris$dummy_virginica_iris <- 0
iris$dummy_virginica_iris[iris$Species == 'virginica'] <- 1
iris$dummy_virginica_iris

# Logistic regression model.
glm <- glm(dummy_virginica_iris ~ Petal.Width + Sepal.Width, 
        data = iris, 
        family = 'binomial') 
summary(glm)

# Classifer.
glm.pred <- predict(glm, type="response")
virginica <- ifelse(glm.pred > .5, TRUE, FALSE)

1 Ответ

1 голос
/ 09 января 2020

Вы можете создать новый вектор для разделения цветов на virginica / non-virginica, например, так:

species <- as.character(iris$Species)
species[species != "virginica"] <- "non-virginica"

Затем вы можете просто сопоставить это с прогнозами вашей модели в виде таблицы непредвиденных обстоятельств 2 x 2:

result <- table(virginica, species)
print(result)
#          species
# virginica non-virginica virginica
#     FALSE            96         3
#     TRUE              4        47

Что позволяет легко рассчитать чувствительность, специфичность и точность вашей модели, например:

sensitivity <- result[2, 2] / sum(result[, 2])
specificity <- result[1, 1] / sum(result[, 1])
accuracy    <- (result[1, 1] + result[2, 2]) / sum(result)
sensitivity
# [1] 0.94
specificity
# [1] 0.96
accuracy
# [1] 0.9533333
...