如何使用 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 受益于外部校准。
我已经写下了一个简单的代码,它接受一个参数 "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.
但是请注意,class提供者在估计自己的置信水平时也可能会犯错误。要解决此问题,您可以使用外部校准程序通过保留数据(使用交叉验证循环)校准 classifier。该文档将为您提供有关校准的更多详细信息:
http://scikit-learn.org/stable/modules/calibration.html
最后请注意,LogisticRegression
默认情况下会给出经过合理校准的置信度。大多数其他型号 class 受益于外部校准。