Ich habe Gridsearchcv mit einem RBF SVM (binary classifier) verwendet, um Validierungsgenauigkeit Heatmaps zu erhalten. Der Code, den ich verwendet habe, ist ziemlich direkt von SKlearns Website. Gibt es einen Weg, die Sensitivität und Spezifität zu finden? Wie im Bereich der von Gridsearchcv verwendeten Parameterwerte?Wie Sensibilität und Spezifität (wahre positive Rate und wirklich negative Rate) von sklearns gridsearchcv erhalten?
1
A
Antwort
2
Wenn Ihr Problem eine Binär- oder Mehrklassenklassifizierung ist, dann ist confusion matrix möglicherweise das, wonach Sie suchen.
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]])
Die Erklärung dafür ist der folgende:
Für die Beispiele zur Klasse 0 gehören, die vorausgesagte estimator 100% von ihnen korrekt (2/2).
Für die Beispiele der Klasse 1 war der Schätzer 100% falsch, weil er das einzige Beispiel für Klasse 2 vorhersagte.
Für die Beispiele der Klasse 2 war der Schätzer 66% korrekt (2/3), weil er vorhergesagt hatte 2 Beispiele zu Klasse 2 und 1 bis Klasse 0.
Für binäre Klassifizierung:
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
über die verwendeten Parameter in Ihrem GridSearchCV, können Sie sie im grid_scores_ Attribute gefunden.