如何从sklearn的gridsearchcv中获取灵敏度和特异性(真阳性率和真阴性率)?

时间:2016-03-27 15:15:39

标签: python machine-learning scikit-learn svm grid-search

我一直在使用Gridsearchcv和RBF SVM(二元分类器)来获得验证精度热图。我使用的代码非常直接来自SKlearn的网站。有没有办法从中找到灵敏度和特异性?与Gridsearchcv使用的参数值范围一样?

1 个答案:

答案 0 :(得分:2)

如果您的问题是二元或多类分类,那么confusion matrix可能就是您要找的。

from sklearn.metrics import confusion_matrix

y_true = [2, 0, 2, 2, 0, 1]
y_pred = [0, 0, 2, 2, 0, 2]
confusion_matrix(y_true, y_pred)

array([[2, 0, 0],
       [0, 0, 1],
       [1, 0, 2]])

解释如下:

对于属于0级的示例,estimator正确预测了100%(2/2) 对于属于类1的示例,估计器是100%错误的,因为它预测了类2的唯一示例 对于属于类2的示例,估计量为66%正确(2/3),因为它预测了2个示例到2级,1个到0级。

二进制分类

y_true = [1, 0, 1, 0, 0, 1]
y_pred = [1, 0, 1, 1, 0, 1]

cm = confusion_matrix(y_true, y_pred)
print cm

tp = float(cm[0][0])/np.sum(cm[0])
tn = float(cm[1][1])/np.sum(cm[1])

print tp
print tn

[[2 1]
 [0 3]]
0.666666666667
1.0

关于 GridSearchCV 中使用的参数,您可以在grid_scores_属性中找到它们。