2016-03-27 2 views
1

Я использую Gridsearchcv с RBF SVM (бинарный классификатор) для получения точных карт точности валидации. Код, который я использовал, довольно прямо из веб-сайта SKlearn. Есть ли способ найти чувствительность и специфичность? Как и для диапазона значений параметров, используемых Gridsearchcv?Как получить чувствительность и специфичность (истинная положительная скорость и истинная отрицательная скорость) из gridsearchcv от sklearn?

ответ

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_.

Смежные вопросы