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

jax*_*jax 3 machine-learning scikits 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)
Run Code Online (Sandbox Code Playgroud)

当我们执行交叉验证时,我们已经计算了算法的准确度估计(特异性、灵敏度、mmc 等)的不同统计参数。现在我的问题是,scikit-learn 中是否有任何方法可以让我们估计测试数据预测的置信度分数。

ogr*_*sel 5

许多分类器可以通过调用predict_proba替代predict方法来提示您对给定预测的置信水平。阅读此方法的文档字符串以了解它返回的 numpy 数组的内容。

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

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

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