2016-05-04 13 views
0

Ich möchte sklearn.metrics.roc_curve verwenden, um die ROC-Kurve für Multiklassenklassifizierungsproblem zu erhalten. Here gibt eine Lösung zum Anpassen von Roc an das Multiklassenproblem. Aber ich verstehe nicht, was der Parameter "y_score" bedeutet, was ich für diesen Parameter in einem Klassifikationsproblem mit mehreren Klassen bereitstellen sollte.sklearn.metrics.roc_curve für Multiklassenklassifizierung

Angenommen, ein Szenario wie dieses. Es gibt neun Elemente von 0 bis 8. Die ersten drei Elemente gehören zu Gruppe 0, die letzten drei zu Gruppe 2 und die drei Elemente zwischen Gruppe1. 0, 3, 6 sind die Zentren der Gruppen. Ich habe eine paarweise Abstandsmatrix. Was soll ich dann für den Parameter "y_score" angeben?

from sklearn.metrics import roc_curve, auc 
from sklearn.preprocessing import label_binarize 

listTrue=[0,0,0,1,1,1,2,2,2] #value j at index i means element i is in group j 
y=label_binarize(y,classes=range(2)) 
#get distmatrix 
#distmatrix[i][j] gives the distance between element i and element j 
fpr=dict() 
tpr=dict() 
roc_auc=dict() 

fpr["micro"], tpr["micro"], _=roc_curve(y.ravel(),y_score?) 
roc_auc=auc(fpr["micor"], tpr["micro"]) 

Antwort

0

ROC ist ein Mittel, um die Qualität eines Klassifikators zu bewerten. In Ihrem Beispiel gibt es jedoch nur eine Grundwahrheit von Elementen, die Klassen zugeordnet sind. Sobald Sie einen Prädiktor haben, könnte y_score die vorhergesagte Wahrscheinlichkeit sein, dass er zur positiven Klasse gehört.

+0

Ich beabsichtige, Abstandsmatrix zu verwenden, um etwas wie Wahrscheinlichkeit zu erzeugen. Aber was ist y_score im Multiclass-Problem? Da in der Demo 75 Testproben und drei Klassen vorhanden sind, ist y_score ein Array von Shape (75,3). Das heißt, ich muss 3 Werte für eine Probe angeben. Weil ich den SVM Part nicht verstehe, weiß ich nicht wie es y_score in der Demo bekommt. – dudu