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

Posted

技术标签:

【中文标题】sklearn 使用 prob_a 进行逻辑二元分类【英文标题】:sklearn use prob_a to for logistic binary classification 【发布时间】:2016-03-18 17:44:17 【问题描述】:

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

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

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]])

【问题讨论】:

【参考方案1】:

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

【讨论】:

以上是关于sklearn 使用 prob_a 进行逻辑二元分类的主要内容,如果未能解决你的问题,请参考以下文章

sklearn 逻辑回归中的特征选择

解释 sklearn 中的逻辑回归特征系数值

使用 sklearn 中的 OneVsRestClassifier 将自定义的二元分类调整为多类分类

为啥tf模型训练时的二元交叉熵损失与sklearn计算的不同?

RandomForestClassifier 如何进行分类?

二元分类 predict() 方法:sklearn vs keras