2016-04-20 13 views
0

Ich versuche, die ROC-Kurve für einen binären (gut/schlecht) Klassifizierer zu erhalten, die ich für ein Projekt verwendet habe. Dieser Klassifikator verwendet den genetischen Algorithmus, um Vorhersagen zu treffen.Wie erhalte ich die Punktzahl für die grafische Darstellung der ROC-Kurve für einen genetischen Algorithmus-Klassifikator?

z. Ein Testchromosom von [1,0,0,5,0,4,0,7] soll gut sein, wenn es mit einem anderen Chromosom übereinstimmt, sagen wir [0,8,0,5,0,3,0,6]. Und indem ich übereinstimme, meine ich einen Wert (von dem anderen Chromosom) unter einem bestimmten Wert.

Ich habe die Klassifizierung der 600 Instanzen abgeschlossen, und ich habe die endgültige Konfusionsmatrix (mit dieser Matrix meine ich die vierwertige Tabelle, aus der wir die endgültige TPR und FPR berechnen können), die richtigen Klassifikationskennzeichnungen für jede Instanz und auch alle Vorhersagen für jede Instanz.

ich diese Dokumentation über ROC-Kurve gelesen haben, Receiver operating characteristic und Tools for Machine Learning Performance Evaluation: ROC Curves in Python. Wie gehe ich vor, um die ROC-Kurve zu erhalten?

Mit meiner letzten vierwertigen Tabelle denke ich, dass ich nur einen einzigen Punkt in der Kurve plotten kann. Die obigen Links erwähnen immer wieder, dass ich eine Punktzahl benötige (d. H. Eine Wahrscheinlichkeitsbewertung), aber ich weiß nicht, wie ich das für einen genetischen Algorithmus-Klassifizierer bekommen kann. Aber wie nutze ich das Wissen über die Vorhersage der einzelnen Instanzen, um eine Art kontinuierliche ROC-Kurve zu erstellen?

Disclaimer: Ich bin neu in der ROC-Plot-Sache, und ich kodiere dies in Python - daher habe ich die Python-bezogenen ROC-Dokumente angehängt.

+0

ROC-Kurven sind für die binäre Klassifizierung definiert - wobei das Ergebnis zwei Werte annehmen kann. Sie haben ein Minimierungsproblem, das ist keine Aufgabe für eine ROC-Kurve. – Calimo

+0

@Calimo, ich mache kein Minimierungsproblem. Es ist eine binäre Klassifizierung. Wenn z. B. eine Instanz mit einem Objekt übereinstimmt, dann ist dies positiv. Sonst ist es negativ. Ist das nicht eine binäre Klassifizierung? Ich glaube, Sie haben falsch interpretiert, wenn ich darüber sprach, "wenn eine Entfernung unter und so ist ... das war nur ein passendes Kriterium, um zu bestimmen, wann ich negativ oder positiv sagen sollte. Mein Modell verwendet eine modifizierte Form von GA eine Aufgabe (wie Klassifizierung), und GA nicht wirklich verwenden, um ein Minimierungs- oder Maximierungsproblem durchzuführen – obiigbe91

+0

nein das ist nicht die Definition von binärer Klassifikation Binäre Klassifikation ist, wenn Sie eine Beobachtung der einen oder anderen aus zwei Gruppen zuweisen überprüfen Sie, ob die Zuordnung korrekt ist Hier haben Sie mehr als zwei Chromosomen, also ist es keine binäre Klassifikation – Calimo

Antwort

0

Es spielt keine Rolle, wie Sie Ihren Klassifikator erstellt haben. Am Ende gibt Ihr Modell einfach eine positive Bezeichnung wenn ||x - x_i|| < T, wo T ist eine vordefinierte Schwelle. ROC-Kurven werden mit genau dieser Art von Dingen parametrisiert - Skalarwert, den Sie ändern können, um die Tendenz zu klassifizieren, positiv oder negativ zu klassifizieren. Gehen Sie also einfach durch mehrere Werte von T, berechnen Sie die Metriken für jeden Wert und Sie erhalten Ihre ROC-Kurve. Das ist alles!

+0

danke ich werde lch versuche dies, indem ich verschiedene Werte von T durchlaufen und die Metriken zur Darstellung meiner ROC-Kurve verwende. – obiigbe91

+0

danke @lejlot Ich konnte die ROC-Kurve plotten. – obiigbe91