分类器的不确定度估计

=======================================================================
              Machine Learning notebook
Python机器学习基础教程(introduction to Machine Learning with Python)

=======================================================================

scikit-learn库的接口之一,即分类器能够给出预测的不确定度估计。一般来说,你感兴趣的不仅是分类器会预测一个测试点属于哪个类别,还包括它对这个预测的置信程度。在实践中,不同类型的错误会在现实应用中导致非常不同的结果。

scikit-learn中有两个函数可用于获取分类器的不缺定度估计
  decision_function(决策函数)和predict_proba(预测概率)

  二分类问题的不确定度:
  decision_function
    decision_function返回值的形状是(n_samples, ),为每一个样本都返回一个浮点数。
    对于类别1来说,这个值表示模型对该数据点属于“正”类的置信程度。正值表示对正类的偏好,负值表示对“反类”(其它类)的偏好。
    对于二分类问题,“反”类始终是classes_属性的第一个元素,“正”类是classes_的第二个元素。因此,如果你想要完全再现predict的输出,需要利用classes_属性。对应正类classes_[1]
    decision_function可以再任意范围取值,这取决于数据与模型参数
    由于可以任意缩放,因此decision_function的输出往往很难解释。

  predict_proba
    predict_proba的输出是每个类别的概率,通常比decision_function的输出更容易理解。对于二分类问题,它的形状始终是(n_samples,2)。
    每行的第一个元素是第一个类别的估计概率,第二个元素是第二各类别的估计概率。由于predict_proba的输出是一个概率,因此总是在0和1之间,两个类别的元素之和始终为1.
    由于两个类别的概率之和为1,因此只有一个类别的概率超过50%。这个类别就是模型的预测结果。(由于概率是浮点数,所有不太可能两个都等于0.500.但如果出现了这种情况,预测结果是随机选择的。)
    不确定度大小实际上反映了数据依赖于模型和参数的不确定度。过拟合更强的模型可能会做出置信程度更高的预测,即使可能是错的复杂度越低的模型通常对预测的不确定度越大。如果模型给出的不确定度符合实际情况,那么这个模型被称为校正(calibrated)模型。在校正模型中,如果预测有70%的确定度,那么它在70%的情况下正确。(示例:https://scikit-learn.org/stable/auto_examples/classification/plot_classifier_comparison.html)

  多分类问题的不确定度:
  decision_function和predict_proba也适用于多分类问题。
    decision_function的形状为(n_samples,n_classes),每一列对应每个类别的“确定度分数”,分数较高额度类别可能性更大,得分较低的类别可能性较小。你可以找出每个数据点的最大元素,从而利用这些分数再现预测结果。

    predict_proba输出的形状相同,也是(n_samples,n_classes)。通样,每个数据点所有类别的概率之和为1.
    同样,可以通过计算predict_proba的argmax来再现预测结果。

  decision_function和predict_proba的形状始终相同,都是(n_samples,n_classes)——除了二分类特殊情况下的decision_function。对于二分类情况,decision_function只有一列,对应正类classes[1]。

  如果有n_classes列,可以通过计算每一列的argmax来再现预测结果。但如果类别是字符串,或者是整数,但不是从0开始的连续整数的话,一定要小心。如果你想要对比predict的结果与decision_function或predict_proba的结果,一定要用分类器的classes_属性来获取真实的属性名称。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值