如何将 scikit learn 的预测概率输出转换为 sigmoid

Posted

技术标签:

【中文标题】如何将 scikit learn 的预测概率输出转换为 sigmoid【英文标题】:How to Convert Predict proba output from scikit learn to sigmoid 【发布时间】:2021-09-28 11:20:59 【问题描述】:

我正在尝试使用 scikit learn 中的 predict_proba(X) 来输出概率,它返回一个包含每个类别概率的二维数组。

我的理解是该函数返回 logits,我正在尝试使用以下函数将它们转换为 Sigmoid

def sigmoid(x):
  return 1 / (1 + math.exp(-x))

如果二维数组的形式是

probability class 1 probability class 2
0.8 0.2
0.7 0.3

根据这些行和 sigmoid 函数仅返回单个概率的逻辑是什么?

提前谢谢你

【问题讨论】:

【参考方案1】:

predict_proba() 以数组形式为您提供目标(在您的情况下为 0 和 1)的概率。每行的概率数等于目标变量中的类别数(假设您的情况为 2)。

因此,如果您只想获得输出为 1 的概率,那么您可以这样做

model.predict_proba(test)[:,1]

或者,如果您只想要得到零的概率,那么

model.predict_proba(test)[:,0]

【讨论】:

以上是关于如何将 scikit learn 的预测概率输出转换为 sigmoid的主要内容,如果未能解决你的问题,请参考以下文章

使用 scikit-learn SVM 将预测标记为概率分数预测/AUC

scikit-learn RandomForestClassifier 概率预测与多数投票

如何将 Scikit Learn OneVsRestClassifier 预测方法输出转换为谷歌云 ML 的密集数组?

Scikit Learn - 如何绘制概率

从 scikit-learn SVC decision_function 预测概率,decision_function_shape='ovo'

Google Cloud ML-engine scikit-learn 预测概率“predict_proba()”