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

pulearning中oob_decision_function_与predict函数的差异及选型疑问

PU学习中两种预测概率方法的区别与选择

核心区别

  • 方法1(袋外OOB概率)
    这段代码提取集成模型的袋外预测结果,过滤NaN后得到概率:

    res = bc.oob_decision_function_[:,1] 
    prdict_proba = np.array([i for i in res if not np.isnan(i)])
    

    它的概率来自没见过当前样本的基模型——每个训练样本会被部分基模型选中训练,剩下没选中它的基模型会对其做预测,这些预测的集成结果就是OOB概率。若某个样本被所有基模型都选中训练,就会出现NaN,因此需要过滤。
    本质上这是训练样本的「无偏验证概率」,因为预测该样本的模型完全没用到它的训练信息,能反映模型的真实泛化能力。

  • 方法2(模型直接预测概率)
    这段代码调用集成模型的predict_proba方法直接计算概率:

    y_pred_prob = bagging_model.predict_proba(train_x)
    

    它是用所有基模型对输入样本做预测后集成的结果,对于训练集样本来说,大部分基模型都见过该样本,所以这个概率是模型对训练数据的拟合结果,可能存在过拟合偏差。

选用场景

  • 若要评估模型的泛化能力,或需要训练样本的无偏概率估计(比如PU学习里修正正负样本权重),选方法1的OOB概率,它不需要额外拆分验证集,结果更可靠。
  • 若需要对新的未知样本做预测,或直接用模型输出任意输入的概率,必须选方法2的predict_proba——OOB概率仅针对训练集中的袋外样本,无法用于新样本。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 21:48:21