Gibt es eine Möglichkeit, eine Vorhersage aus einem zufälligen Waldmodell zu erklären?


11

Angenommen, ich habe ein prädiktives Klassifizierungsmodell, das auf einer zufälligen Gesamtstruktur basiert (unter Verwendung des randomForest-Pakets in R). Ich möchte es so einrichten, dass Endbenutzer ein Element angeben können, für das eine Vorhersage generiert werden soll, und es wird eine Klassifizierungswahrscheinlichkeit ausgegeben. Bisher kein Problem.

Aber es wäre nützlich / cool, so etwas wie ein Diagramm mit variabler Wichtigkeit ausgeben zu können, aber für das spezifische Element, das vorhergesagt wird, nicht für das Trainingsset. Etwas wie:

Es wird vorausgesagt, dass Gegenstand X ein Hund ist (73% wahrscheinlich),
weil:
Beine = 4
Atem = schlechtes
Fell = kurzes
Futter = böse

Du verstehst, worum es geht. Gibt es eine Standardmethode oder zumindest eine vertretbare Methode, um diese Informationen aus einem trainierten Zufallswald zu extrahieren? Wenn ja, hat jemand Code, der dies für das randomForest-Paket erledigt?


Etwas Komplexität ... Sie können sich vorstellen, wie oft die Legs-Variable Teil des Entscheidungspfads war. Aber würden Sie das nur für Bäume tun, die die Mehrheit der Antworten vorhergesagt haben, oder für alle? Oder der Unterschied?
Harlan

Und alle mPrädiktoren nacheinander zu ändern und zu sehen, wie der Wald anders vorhersagt, scheint ziemlich teuer. Es muss einen besseren Weg geben.
Harlan

Mein erster Gedanke war, mich zu fragen, wie sich das, was Sie tun möchten, von der variablen Bedeutung der Trainingsdaten unterscheidet. Wollen Sie damit sagen, dass angesichts der anderen Werte die Empfindlichkeit der Vorhersage für Beine = 4 gegenüber Beinen = 2 oder Beinen = 0 war? Haben Sie sich die partielle Plotfunktion im Randomforest-Paket angesehen?
B_Miner

Die variable Wichtigkeit wird normalerweise abhängig vom gesamten Trainingssatz (oder der angenommenen Population oder etwas anderem) definiert. Was ich aber möchte, ist die variable Bedeutung für ein einzelnes vorhergesagtes Element. Stellen Sie sich einen Fall vor, in dem der Wald aus sehr einseitigen Entscheidungsbäumen besteht. Testinstanz 1 könnte durch 1 oder sehr wenige Entscheidungsknoten erklärt werden, während Testinstanz 2 durch einen viel größeren Satz von Entscheidungsknoten erklärt werden könnte. Ich möchte eine sehr einfache, vom Menschen interpretierbare Version davon, wie eine Reihe von Entscheidungen, deren Top 5 ich liefern kann. Für einen einzelnen Entscheidungsbaum habe ich sie einfach vorgelesen.
Harlan

Antworten:


3

Die erste Idee besteht darin, die Knock-out-Strategie anhand der variablen Wichtigkeit nachzuahmen und zu testen, wie das Mischen der einzelnen Attribute das Vertrauen der Gesamtstruktur in die Objektklassifizierung beeinträchtigt (bei OOB und offensichtlich mit einigen Wiederholungen). Dies erfordert eine gewisse Codierung, ist aber sicherlich erreichbar.

Ich halte es jedoch für eine schlechte Idee - das Ergebnis wird wahrscheinlich höllisch variabel sein (ohne die Auswirkung der Mittelwertbildung über Objekte zu stabilisieren), laut (bei nicht so sicheren Objekten könnten die Unsinnattribute große Auswirkungen haben) und schwer zu erreichen sein interpretieren (zwei oder mehr kooperative Attributregeln führen wahrscheinlich zu zufälligen Auswirkungen der einzelnen beitragenden Attribute).

Um Ihnen keine negative Antwort zu geben, möchte ich lieber versuchen, die Näherungsmatrix und die möglichen Archetypen zu betrachten, die sich daraus ergeben - dies scheint viel stabiler und unkomplizierter zu sein.


Der Punkt kooperative Regeln / korrelierte Prädiktoren ist eine ausgezeichnete Kritik. Damit dies funktioniert, kann es erforderlich sein, die RF auf eine Art vorreduzierten Satz von Variablen zu trainieren oder eine Art Bestrafungsstrategie zu integrieren, damit sich die RF auf eine Teilmenge von Prädiktoren konzentriert.
Harlan

0

Ich würde es mit dem Kalkgerüst versuchen .

Es funktioniert mit vielen Modellen (einschließlich zufälliger Gesamtstruktur). Es kann zur lokalen Interpretation (dh zur Erklärung einer einzelnen Vorhersage) oder zur globalen Interpretation (dh zur Erklärung eines ganzen Modells) verwendet werden.

Zitat aus dem Asbtract

In dieser Arbeit schlagen wir LIME vor, eine neuartige Erklärungstechnik, die die Vorhersagen eines Klassifikators auf interpretierbare und getreue Weise erklärt, indem ein interpretierbares Modell lokal um die Vorhersage herum gelernt wird. Wir schlagen auch eine Methode zur Erklärung von Modellen vor, indem repräsentative individuelle Vorhersagen und ihre Erklärungen nicht redundant dargestellt werden, wobei die Aufgabe als submodulares Optimierungsproblem definiert wird.

Es hat Pakete sowohl für R als auch für Python und viele Beispiele, wenn Sie es googeln.

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.