【问题标题】:How would I get the pattern of errors on test items for a logistic regression model?我如何获得逻辑回归模型的测试项目的错误模式?
【发布时间】:2020-04-26 23:56:32
【问题描述】:

我正在尝试分析我在下面编码的模型的测试项目的错误模式(准确性)。我想了解 Setosa 和 Versicolor 种类的鸢尾花被错误归类为 Virginica 的频率以及 Virginica 种类的鸢尾花被错误地归类为非 Virginica 的频率。这可以做到吗?任何建议都会很棒。这是我的逻辑回归模型和使用该模型构建的分类器...

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)

【问题讨论】:

  • 您是否只是在寻找与预测相关的物种混淆矩阵?例如,table(iris$Species, virginica)?

标签: r machine-learning logistic-regression


【解决方案1】:

你可以像这样创建一个新的向量来将花朵分成维吉尼亚/非维吉尼亚:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-08-26
    • 2022-10-23
    • 2017-07-10
    • 2021-04-06
    • 2018-06-19
    • 2020-01-12
    • 2016-07-26
    • 2019-01-06
    相关资源
    最近更新 更多