如何从glm逻辑回归预测多类概率?

时间:2015-12-03 12:50:48

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

我有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级?
  • 当我有多班时它是如何使用的?

1 个答案:

答案 0 :(得分:0)

我有一些问题与我的数据一起做这件事。为了预测您必须首先创建逻辑回归

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

然后你可以从那里预测或玩弄你的模型:

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

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