如何将 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 SVC decision_function 预测概率,decision_function_shape='ovo'