【发布时间】:2020-04-29 18:01:47
【问题描述】:
通过阅读类似的问题,我知道问题在于 yhat.logisticReg 不是 2 个级别的因子,而 training.prepped$TARGET_FLAG 是。我认为可以通过更改我的模型或在预测中解决该问题,以便 yhat.logisticReg 是 2 个级别的因子。我该怎么做?
logisticReg = glm(TARGET_FLAG ~ .,
data = training.prepped,
family = binomial())
yhat.logisticReg = predict(logisticReg, training.prepped, type = "response")
confusionMatrix(yhat.logisticReg, training.prepped$TARGET_FLAG)
Error: `data` and `reference` should be factors with the same levels.
str(training.prepped$TARGET_FLAG)
Factor w/ 2 levels "0","1": 1 1 1 1 1 2 1 2 2 1 ...
str(yhat.logisticReg)
Named num [1:8161] 0.1656 0.2792 0.3717 0.0894 0.272 ...
- attr(*, "names")= chr [1:8161] "1" "2" "3" "4" ...
【问题讨论】:
-
嗨,Jacob,您正在尝试将一个因子与一个数值进行比较。您需要将
yhat.logisticReg转换为二进制。 -
我认为是这样的。你会建议我怎么做?我可以在
predict行之后简单地做一个列表理解 if/else 语句还是有更好的选择? @Filipe Lauaur -
您要优化哪个指标?我在 R 中有一个代码,可以找到解决问题的最佳阈值。比 if/else 更好。
-
我需要预测“崩溃”或“没有崩溃”。其中
1表示崩溃,0表示没有崩溃。我不完全确定哪个指标最适合优化,但我认为confusionMatrix函数报告的“准确性”将是一个不错的选择@Filipe Lauar
标签: r machine-learning classification logistic-regression r-caret