我写了一个简单的代码,它接受一个参数“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中的任何方法,通过它我们可以估计测试数据预测的置信度得分。
答案 0 :(得分:3)
通过调用predict_proba
而不是predict
方法,许多分类器可以为您提供给定预测的自己的置信度。阅读此方法的docstring以了解它返回的numpy数组的内容。
但是请注意,分类器在估算自己的置信度时也会出错。要解决此问题,您可以使用外部校准程序通过保持数据校准分类器(使用交叉验证循环)。该文档将为您提供有关校准的更多详细信息:
http://scikit-learn.org/stable/modules/calibration.html
最后请注意,LogisticRegression
默认情况下会给出相当好的校准置信度。大多数其他模型类都可以从外部校准中受益。