2016-03-27 8 views

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.