繁体   English   中英

二元分类问题中每个概率临界值的准确度(python sklearn 准确度)

[英]Accuracy for each probability cutoff in a binary classification problem (python sklearn accuracy)

想象一个二元分类问题。 假设我在pred_test存储了 800,000 个预测概率。 我将cutoff值定义为pred_test任何值,这样大于或等于cutoff值的值被分配值 1,小于cutoff值的值被分配值 0。

是否有一个函数sklearn返回该模型的准确性每个cutoffpred_train 我想看到模型的准确性作为每个截止点的函数,以系统地选择一个截止点。

我尝试了以下方法:

_list = []
for cutoff in np.unique(np.sort(pred_test)):
    binary_prediction = np.where(pred_test >= cutoff, 1, 0)
    _list.append( (cutoff, binary_prediction == y_test).sum() / len(pred_test) )

在这里, y_test是基本事实(一个数组,其中包含 800,000 行中每一行的观察结果)。 此代码返回一个列表,其中每个值都包含截止值及其相应的准确度分数。

对象pred_test有大约 600,000 个不同的值,所以我迭代了 600,000 次左右。 上面的代码正在运行,但需要很长时间才能完成。 有没有更有效的方法来做到这一点? 我敢打赌sklearn已经有一个功能可以做到这一点。

这里有一些类似的线程来检查它: 在 scikit-learn 中获得二元概率分类器的最大精度

scikit-learn 中没有内置函数。 我认为未实施的原因是您将有机会过度拟合,您基本上会将您的训练集调整为对测试集有风险的基线。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM