首页 文章

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

提问于
浏览
3

我写了一个简单的代码,它接受一个参数“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 回答

  • 3

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

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

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

    最后请注意, LogisticRegression 默认情况下给出了相当好的校准置信水平 . 大多数其他模型类都受益于外部校准 .

相关问题