Bessere Leistung mit Random Forest One-Vs-All als mit Random Forest Multiclass?


11

Ich arbeite an einem Mehrklassenproblem mit 9 möglichen Beschriftungen, für die ich einen Datensatz habe, der aus ~ 50.000 Beispielen und ~ 200 Merkmalen besteht. Jedes Beispiel kann nur zu einer Klasse gehören. Die Daten sind zwischen den verschiedenen Bezeichnungen ziemlich ausgewogen.

Aufgrund seiner Robustheit und Skalierbarkeit habe ich mich für Random Forest (mit einem Ensemble von 1000 Bäumen) als Lernmethode entschieden. Um die Leistungsgenauigkeit des Modells anhand dieses Datensatzes zu bewerten, habe ich eine geschichtete 5-fache Kreuzvalidierung verwendet (ich verwende scikit-learn 0.18).

Da Random Forest von Natur aus mit Datensätzen mit mehreren Klassen umgehen kann, habe ich es direkt für den angegebenen Datensatz verwendet und eine Genauigkeit von 79,5 0,3 erhalten. Ich war auch daran interessiert zu wissen, welche Features wichtiger sind, was leicht aus dem Attribut feature_importances_ in RandomForestClassifier von scikit extrahiert werden kann . Da der Datensatz jedoch gut ausbalanciert ist und erwartungsgemäß fast gleich viele der 200 Features zu den verschiedenen Klassen beitragen, konnte ich nicht isolieren, welche Features zu jeder Klasse am meisten beitragen.±

Infolgedessen habe ich eine One-versus-All-Strategie mit demselben Random Forest-Setup gewählt (übrigens kostensensitiv, unter Berücksichtigung des Ungleichgewichts der Daten bei Verwendung der oneVsAll-Strategie), die es mir ermöglichte, für jede Klasse versus zu sehen der Rest, welche Funktionen wichtiger sind. Die Ergebnisse, die ich darüber erhalten habe, sind vernünftig. Als ich mir die Leistung des Modells mit dieser Strategie ansah , erhielt ich eine Genauigkeit von 88,7 0,2, was mich überraschte, da ich erwartete, dass Random Forest mit mehreren Klassen aufgrund seiner Mehrklassen-Natur besser klassifizieren würde.±

Habe ich recht damit? Könnte ein solcher Unterschied in der Genauigkeit plausibel sein? Ist die oben genannte Strategie in Ordnung und fair, da Random Forest selbst Probleme mit mehreren Klassen ohne "Hacking" wie die oneVsAll-Strategie lösen kann?


Wie definieren Sie Genauigkeit genau? Ist es in beiden Fällen vergleichbar?
Amanita Kiki

Aufgrund Ihres Versuchsaufbaus haben Sie sehr große Konfidenzintervalle um diese beiden Maßnahmen. Im Moment ist es nicht möglich zu sagen, ob die Leistungen unterschiedlich sind.
David Ernst

Antworten:


4

Ich hatte genau die gleiche Frage wie Sie und war ein bisschen traurig, als ich herausfand, dass zu Ihrem Thema keine Antworten veröffentlicht wurden ...

Trotzdem fand ich dieses Papier: One-Vs-All-Binarisierungstechnik im Kontext von Random Forest ( https://www.elen.ucl.ac.be/Proceedings/esann/esannpdf/es2015-5.pdf ) veröffentlicht in 2015.

Die Autoren zeigen bessere Klassifizierungsleistungen mit Random Forest-Klassifizierern im Vergleich zu Standardklassifizierern mit mehreren Klassen im Vergleich zu Standard-Random Forest-Klassifizierern mit mehreren Klassen.

Die Autoren geben nicht viele Hinweise darauf, warum es so gut funktioniert, außer dass die im One-versus-Rest-Kontext generierten Bäume einfacher sind.

Ich frage mich, ob Sie selbst Antworten gefunden haben, seit Sie Ihre Frage gestellt haben.


2

Letztendlich definiert die von Ihnen ausgewählte Modellklasse die Form Ihrer Entscheidungsgrenze. Wenn Sie RandomForests als Multiklasse oder als Ein-gegen-Alle-Multiklassen-Klassifikator verwenden, werden die Grenzen mit dem einzigen Unterschied gleichermaßen eingeschränkt Dies sind die Daten, die Sie für Ihre Modelle verwenden. Abhängig davon, wie gut Ihre Modelle zu Ihren Daten passen und wie anfällig Ihr Modell für Datenungleichgewichtsprobleme ist , sehe ich keinen a priori Grund, warum Multiklassen besser sein sollten als Eins gegen Alles. Sie geben Ihnen nur verschiedene Dinge - eine gibt Ihnen eine Entscheidung für jedes Klassenpaar, auf Kosten von mehr zu trainierenden Modellen, und eine gibt Ihnen sofort die Klassenentscheidung. Es ist für mich durchaus plausibel, insbesondere wenn man bedenkt, dass RandomForests keine konvexe Verlustfunktion lösen, dass Sie die Ergebnisse erhalten würden, die Sie erzielt haben.

Wenn Sie speziell daran interessiert sind, herauszufinden, welche Merkmale für Ihren Klassifikator relevant sind, würde ich eine logistische Regression mit einer L1-Verluststrafe vorschlagen, da die Sparsamkeit Ihnen eine kleine Teilmenge von Merkmalen geben würde, die für jedes Klassenpaar, das Sie verwenden, prädiktiv sind haben.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.