独家 | Python的“predict_prob”方法不能真实反映预测概率校准(如何实现校准)...


作者:  Samuele Mazzanti

翻译:欧阳锦    

校对:王可汗

本文约2300字,建议阅读8分钟

本文讨论了使用python中“ predict_proba”的方法所生成的模型具有预测概率失准的问题,并给出了在python中实现预测概率校准的方法。

关键字:python 概率校准

图源自作者

数据科学家通常根据准确性或准确性来评估其预测模型,但几乎不会问自己:

 

“我的模型能够预测实际概率吗?”

 

但是,从商业的角度来看,准确的概率估计是非常有价值的(准确的概率估计有时甚至比好的精度更有价值)。来看一个例子。

 

想象一下,你的公司正在出售2个杯子,一个是普通的白色杯子,而另一个则上面印有小猫的照片。你必须决定向这位给定的客户展示哪个杯子。为此,你需要预测给定的用户购买每个杯子的可能性。因此,你训练了几个不同的模型,你会得到以下结果:

具有相同ROC(receiver operating characteristic)但校准不同的模型。[图源自作者]

 

现在,你会向该用户推荐哪个杯子?

 

以上两种模型都认为用户更有可能购买普通马克杯(因此,模型A和模型B在ROC曲线下具有相同的面积,因为这个指标仅仅对分类进行评估)。

 

但是,根据模型A,你可以通过推荐普通马克杯来最大化预期的利润,然而根据模型B,小猫马克杯可以最大化预期的利润。

 

在像这样的现实应用中,搞清楚哪种模型能够估算出更好的概率是至关重要的事情。

 

在本文中,我们将了解如何度量概率的校准(包括视觉和数字),以及如何“纠正”现有模型以获得更好的概率。


“predict_proba”的问题

Python中所有最流行的机器学习库都有一种称为“ predict_proba”的方法:Scikit-learn(例如LogisticRegression,SVC,RandomForest等),XGBoost,LightGBM,CatBoost,Keras…

 

但是,尽管它的名字是预测概率,“predict_proba”并不能完全预测概率。实际上,不同的研究(尤其是这个研究和这个研究)表明,最为常见的预测

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值