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

R语言Caret包逻辑回归调整概率阈值提升特异性方法咨询

R语言Caret包逻辑回归自定义分类阈值操作方法

你当前使用默认predict输出分类结果时,Caret默认使用0.5作为概率切分阈值,要自定义阈值只需先输出预测概率,再按阈值自行判定分类即可,具体操作如下:


第一步:输出测试集预测概率

将predict函数的type参数设置为"prob",即可得到每个样本对应“No”、“Yes”两类的预测概率:

# 输出测试集各类别预测概率
pred_probs <- predict(model_default, newdata = test_default, type = "prob")

第二步:按自定义阈值生成分类结果

Default数据集的正类为default变量的"Yes"水平,只需按阈值判断Yes类的概率是否达标即可生成对应分类,注意生成分类结果时要和真实标签的因子水平保持一致,避免混淆矩阵计算错误。

阈值设为0.2的示例代码

# 0.2阈值:Yes类概率>0.2则判定为Yes,否则为No
pred_0.2 <- factor(ifelse(pred_probs$Yes > 0.2, "Yes", "No"), 
                   levels = levels(test_default$default))
# 输出对应混淆矩阵与指标
confusionMatrix(pred_0.2, test_default$default)

阈值设为0.7的示例代码

# 0.7阈值:Yes类概率>0.7则判定为Yes,否则为No
pred_0.7 <- factor(ifelse(pred_probs$Yes > 0.7, "Yes", "No"), 
                   levels = levels(test_default$default))
# 输出对应混淆矩阵与指标
confusionMatrix(pred_0.7, test_default$default)

阈值调整的指标变化规律

  • 阈值从0.5下调到0.2:被判定为Yes的样本会增加,灵敏度上升,特异性会比当前27%更低
  • 阈值从0.5上调到0.7:被判定为Yes的样本会减少,特异性会明显上升,灵敏度会下降

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 03:51:03