You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在R语言中获取二分类任务的两类预测类别概率?

解决二分类问题中获取类别0预测概率的方法

嘿,这事儿其实挺简单的!因为在二分类任务里,两个类别的预测概率加起来肯定是1,所以类别0的预测概率直接用1减去类别1的概率就行。

结合你的代码,具体操作步骤如下:

  1. 先获取你已经拿到的类别1的预测概率:
prob_class1 <- predict(mod, newx=ValidX, type="response")
  1. 计算类别0的预测概率:
prob_class0 <- 1 - prob_class1
  1. 如果你想生成题目里要求的每行包含「实际类别、类别0概率、类别1概率」的格式,假设你的实际类别存储在actual_labels变量里,可以这样组合并输出:
# 组合数据
prediction_results <- cbind(actual_labels, prob_class0, prob_class1)
# 输出成文本文件(或者直接打印查看)
write.table(prediction_results, file="your_output_file.txt", sep=" ", row.names=FALSE, col.names=FALSE)

补充说明

  • 这个方法适用于绝大多数二分类模型(比如逻辑回归、XGBoost二分类等),只要type="response"返回的是正类(类别1)的概率,就可以用1减去它得到另一类的概率。
  • 如果你的模型支持直接返回所有类别的概率矩阵,也可以尝试用type="prob"(不同模型参数可能略有差异),比如有些模型用predict(mod, newx=ValidX, type="prob")会直接返回包含类别0和类别1概率的 dataframe,这样就不用手动计算了,但上面的1减方法是通用的,不管模型有没有这个参数都能用。

内容的提问来源于stack exchange,提问作者jijforu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 06:58:32