2016-05-17 5 views
0

Ich habe eine Reihe von Vorhersagen aus einem Modell und eine Reihe von wahren Werten der Beobachtungen, und ich möchte eine ROC erstellen.ROC für Vorhersagen - wie Klassenbezeichnungen definiert werden

Die Qualität der Vorhersage (in absoluten Fehlerbegriffen) ist unabhängig von der Größe der Vorhersage. Also habe ich eine Reihe von Vorhersagen (pred (1), pred (2), ..., pred (n)) und Beobachtungen (obs (1), obs (2), ..., obs (n)).

Jemand hat mir gesagt, ich soll die Elemente meines binären Klassifikationsvektors (i) als label (i) = ifelse (| obs (i) - pred (i) | < tol, 1, 0) erstellen und dann berechnen AUC (Tol ist eine bestimmte Toleranz). Also für jede Vorhersage, wenn es in der Nähe der entsprechenden Beobachtung ist, ist die entsprechende Bezeichnung 1, sonst ist es 0.

Aber ich sehe nicht, wie die vorgeschlagene Kennzeichnung gültig ist, wie höhere pred() Werte nicht notwendigerweise diskriminieren meine binäre Klassifikation, dh Prädiktionswerte dienen nicht dazu, die Qualität meiner Vorhersagen "RANK" (dh ein gegebener Schwellenwert teilt meine Daten nicht natürlich). Kann jemand bitte etwas Licht für mich werfen, was ich hier tun soll? Ist der obige Vorschlag gültig? Oder ist eine ROC hier nicht zu gebrauchen?

+0

Wer hat dir gesagt, dass du das tun sollst? Es ist sicherlich keine ROC-Analyse ... Sie sollten stattdessen ein Korrelationsmaß verwenden. – Calimo

+0

Mein Bauch sagt, du hast Recht. Ein Kollege hat es getan. Kann ich von Ihnen oder von jemand anderem mehr darüber erfahren, warum es aufgrund des Prädiktors nicht möglich ist, binär zu werden? – user85727

+0

* ein Kollege hat es vorgeschlagen – user85727

Antwort

0

Die ROC-Analyse ist für die binäre Klassifizierung definiert, wobei die beobachteten Beschriftungen zwei Werte (binär) annehmen können und Ihre Vorhersagen beliebige Zahlen sind. Es gibt Erweiterungen der ROC-Analyse zur Mehrklassenklassifizierung, aber Ihre Frage lässt darauf schließen, dass Ihre Beobachtungen eine Art kontinuierlicher Messung sind. Sie könnten sie digitalisieren (etwas wie label(i) = ifelse(obs(i) > someValue, 1, 0)), aber es wäre ungültig, wenn die Labels von der Klassifizierung abhängen: Sie müssen eine Art Wahrheit sein, die unabhängig von Ihrem Klassifikator ist.

Alternativ, wenn Ihre Beobachtungen kontinuierlich sind, sollten Sie die Qualität Ihrer Vorhersagen mit einem Korrelationskoeffizienten oder einem ähnlichen Maß beurteilen.

+0

Sie sind sich sicher, dass es ungültig ist, basierend auf dem Klassifizierer binarisieren? – user85727

+0

Es sieht aus wie dieses Poster eine ähnliche Binarisierung, die Sie kommentiert, aber nicht erwähnt, dass es ungültig war: http://Stackoverflow.com/a/37268167/3954614 – user85727

+0

@ user85727 das war nicht die Frage – Calimo