【问题标题】:How to predict multiclass probabilities from glm logistic regression?如何从 glm 逻辑回归预测多类概率?
【发布时间】:2016-03-08 02:24:19
【问题描述】:

我有 10 个具有二元和多类因子的数据集,我使用逻辑回归和 R“glm”来预测类概率 class,prediction(formula,data,type="response")。我怎样才能得到预测的类,就像其他模型给出的那样?例如:

df=data.frame(y=c(1,0,0,1),x1=c(1,2,3,4),x2=c(12,13,43,3))
df$y=as.factor(df$y)
testdf=data.frame(y=c(1,1,0,0),x1=c(11,16,65,8),x2=c(3,2,5,0))
testdf$y=as.factor(testdf$y)
model_glm=glm(y~.,data=df,family="binomial")
pred_glm=predict(model_glm,newdata=testdf,type="response")

这将给出概率预测:

> pred_glm
           1            2            3            4 
2.220446e-16 2.220446e-16 2.220446e-16 2.220446e-16
  • 但是,无论是 0 还是 1,我都需要类别预测。或者两列中的概率预测:一列用于 1 类,另一列用于 0 类?
  • 当我有多个班级时如何使用它?

【问题讨论】:

    标签: r classification logistic-regression glm multiclass-classification


    【解决方案1】:

    不久前我在处理我的数据时遇到了一些问题。为了预测,您必须首先创建逻辑回归

    lgr= glm(y ~ x1 + x2 +x3...x10, data=df1)
    

    然后您可以从那里预测或使用您的模型:

    新预测:注意 df1 和 df2 的长度必须相同(所以如果需要,请添加 NA)

    predicts= predict(lgr, newdata= "df2")
    

    然后查看它并将其用于演示等。我会将其写入 csv

    write.csv(predicts, "K:/filelocation/filename.csv")
    

    编辑 如果尝试根据预测进行分类,则需要进行特异性和敏感性计算。见:https://stats.stackexchange.com/questions/25389/obtaining-predicted-values-y-1-or-0-from-a-logistic-regression-model-fit/25398#25398?newreg=2f9713d7d60f427d9e123208c39f69f8

    【讨论】:

    • 非常感谢您的关注,不,这不是我的意思,我更新它,请再看一遍。
    • 那实际上有点复杂。您需要生成自己的分类阈值。 lda 或 svm 会自动执行此操作,但 glm 您必须找到自己设置的灵敏度和特异性:stats.stackexchange.com/questions/25389/…
    猜你喜欢
    • 2018-07-05
    • 1970-01-01
    • 1970-01-01
    • 2020-06-13
    • 2021-11-24
    • 2017-06-12
    • 1970-01-01
    • 2015-05-04
    • 2017-10-18
    相关资源
    最近更新 更多