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

how to assess the confidence score of a prediction with scikit-learn

我已经写下了一个简单的代码,它接受一个参数 "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 中是否有任何方法可以估计测试数据预测的置信度分数。

许多 classifier 可以通过调用 predict_proba 而不是 predict 方法来提示您他们自己对给定预测的置信度。阅读此方法的文档字符串以了解它 returns.

的 numpy 数组的内容

但是请注意,class提供者在估计自己的置信水平时也可能会犯错误。要解决此问题,您可以使用外部校准程序通过保留数据(使用交叉验证循环)校准 classifier。该文档将为您提供有关校准的更多详细信息:

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

最后请注意,LogisticRegression 默认情况下会给出经过合理校准的置信度。大多数其他型号 class 受益于外部校准。