【问题标题】:Does changing factor labels in R change the predictions?更改 R 中的因子标签会改变预测吗?
【发布时间】:2020-09-11 19:57:03
【问题描述】:

例如,我给 0 表示测试为阳性,1 表示为阴性,我的问题是我想要 要给正 1 和负 0 我必须改变吗 y.pred 0.5,0,1) 到 : y.pred 0.5,1,0)

这让我很困惑,是我的代码吗:

df$class <- factor(df$class, levels = c('tested_positive','tested_negative'),
               labels = c(0,1))

library(caTools)
set.seed(123)
split <- sample.split(df$class, SplitRatio = 0.75)
training_set = subset(df, split == TRUE)
test_set = subset(df, split == FALSE)

classifier <- glm(formula = class ~ .
              , family = binomial,
              data = training_set)
prob.pred <- predict(classifier, newdata =test_set[-9], type = 'response')

y.pred <- ifelse(prob.pred > 0.5,0,1)
cm = table(test_set[,9], y.pred > 0.5)

【问题讨论】:

    标签: r machine-learning logistic-regression


    【解决方案1】:

    我只想更改因子标签分配。因此,正如您已经说过的,将 1 分配给 test_positive,将 0 分配给 test_negative,如下所示:

    df$class <- factor(df$class, levels = c('tested_positive','tested_negative'),
                       labels = c(1,0))
    

    但请确保始终根据

    分配预测中的类
    y.pred <- ifelse(prob.pred > 0.5,1,0)
    

    因为模型预测 P(y=1|X),所以如果 P(y=1|X) > 0.5,则 y = 1 否则 y=0(您在代码中反其道而行之。

    【讨论】:

    • 好的,谢谢,我明白了,但是当我们更改标签时,我们到底在更改什么?
    • 我刚刚尝试过,问题是输出仍然相同,预测相同,但标签被翻转,所以我认为这是错误的,这太令人困惑了我现在迷路了,我不知道应该是哪个0,哪一个应该是 1
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-02
    • 1970-01-01
    • 2018-11-17
    • 1970-01-01
    • 2021-08-22
    • 1970-01-01
    相关资源
    最近更新 更多