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