我正在尝试分析显示人们是否感染疾病的数据。也就是说,响应是二元的。我应用了逻辑回归。假设log.reg
(逻辑回归)的结果如下所示;
ID = c(1,2,3,4)Test_Data = c(0,1,1,0)Log.Reg_Output = c(0.01,0.4,0.8,0.49)result = data.frame(ID,Test_Data,Reg_Output)result# 1 | 0 | 0.01 # 2 | 1 | 0.4 # 3 | 1 | 0.8 # 4 | 0 | 0.49
我可以说ID为3的人有80%的概率感染疾病吗?这是正确的做法吗?如果不是,为什么?我很困惑,任何帮助都将非常有用!
第二个问题是,除了将模型结果四舍五入为0或1之外,我如何计算准确率。因为我认为将0.49四舍五入为0并没有太大意义。对于我的例子,模型输出将根据是否大于或小于0.5变成0,0,1,0,而不是0.01, 0.4, 0.8, 0.49。准确率将为75%。有没有其他计算方法?
谢谢!
回答:
我可以说ID为3的人有80%的概率感染疾病吗?
你所说的“概率”具体指什么还不清楚;逻辑回归输出在这里的传统/常规解释是模型估计第3号人有80%的把握会感染疾病。你标题中提到的“另一种”解释在问题正文中也没有详细说明。
除了将模型结果四舍五入为0或1之外,我如何计算准确率?
准确率按定义需要将模型结果四舍五入为0/1。但至少在原则上,决策阈值不一定必须是0.5…
因为我认为将0.49四舍五入为0并没有太大意义。
你认为将0.49四舍五入为1更有意义吗?因为在二元分类设置中,这是唯一的替代选择(一个人要么会感染疾病,要么不会)。
关于评论中提到的对数损失度量:它的作用与准确率完全不同。你可能会发现我这些相关的回答有帮助:
Keras如何评估准确率?(尽管标题误导,但它与Keras没有特别的关系)。
我强烈建议你查看一些逻辑回归教程(外面有成百上千个);一个高度推荐的资源是教科书《统计学习导论(应用于R)》,由作者免费提供…