如何用scikit-learn评估预测的置信度得分

时间:2016-04-15 09:29:22

标签: machine-learning scikit-learn scikits

我写了一个简单的代码,它接受一个参数“query_seq”,进一步的方法计算描述符,最后预测可以使用“LogisticRegression”(或随函数提供的任何其他算法)算法为“0”(负数)对于给定的案例)“或”1(给定案例的正面)“

def main_process(query_Seq):
    LR = LogisticRegression()
    GNB = GaussianNB()
    KNB = KNeighborsClassifier()
    DT = DecisionTreeClassifier()
    SV = SVC(probability=True)

    train_x, train_y,train_l = data_gen(p) 
    a  = DC_CLASS()
    test_x = a.main_p(query_Seq)
    return Prediction(train_x, train_y, test_x,LR)

虽然我们进行了交叉验证,但我们已经计算出算法的准确度估计(特异性,灵敏度,mmc等)的不同统计参数。现在我的问题是,是否存在scikit-learn中的任何方法,通过它我们可以估计测试数据预测的置信度得分。

1 个答案:

答案 0 :(得分:3)

通过调用predict_proba而不是predict方法,许多分类器可以为您提供给定预测的自己的置信度。阅读此方法的docstring以了解它返回的numpy数组的内容。

但是请注意,分类器在估算自己的置信度时也会出错。要解决此问题,您可以使用外部校准程序通过保持数据校准分类器(使用交叉验证循环)。该文档将为您提供有关校准的更多详细信息:

http://scikit-learn.org/stable/modules/calibration.html

最后请注意,LogisticRegression默认情况下会给出相当好的校准置信度。大多数其他模型类都可以从外部校准中受益。