Skip to main content
 首页 » 编程设计

python之sklearn 使用 prob_a 进行逻辑二元分类

2025年05月04日9luoye11

有没有什么方法可以报告 sklearn 模型二元分类模型的期望值?在 previous question有人推荐了 predict_proba。我期待类似于 xgboost 包 "objective": "binary:logistic" 参数的输出。但是,这似乎不会产生预期的结果。我的 Y 火车值(value)观是谨慎的。

我对 predict_proba 的输出感到困惑。因为我只有一个目标,所以我期望返回一个单列预测。但是,这会返回两列,并且这些列总和为一。这些值似乎与模型实际预测的值不对应:

In [27]: modl.predict(X_test) 
Out[27]: array([0, 0, 0, ..., 0, 0, 0]) 
 
In [28]: modl.predict_proba(X_test) 
Out[28]:  
array([[ 0.6,  0.4], 
       [ 0.7,  0.3], 
       [ 1. ,  0. ], 
       ...,  
       [ 1. ,  0. ], 
       [ 0.9,  0.1], 
       [ 0.8,  0.2]]) 

请您参考如下方法:

predict_proba 的输出数组中的列是分类器预测的不同标签的概率。在您的例子中,您构建了一个二元分类器,因此第一列 modl.predict_proba(X_test)[:,0] 是标签为 0 的概率,并且第二列 modl.predict_proba(X_test)[:,1] 是标签为 1 的概率。