Wie gebe ich die Regressionsvorhersage aus jedem Baum in einer zufälligen Gesamtstruktur in Python aus? scikit-learn?

8

Ich bin neu in der Scikit-Learning- und der Random-Forest-Regression und habe mich gefragt, ob es eine einfache Möglichkeit gibt, die Vorhersagen von jedem Baum in einer zufälligen Gesamtstruktur zusätzlich zur kombinierten Vorhersage zu erhalten. Ich möchte alle Vorhersagen in einer Liste ausgeben und nicht den gesamten Baum anzeigen. Ich weiß, dass ich die Blattindizes mit der Methode apply ermitteln kann, aber ich bin mir nicht sicher, wie ich das verwenden kann, um den Wert aus dem Blatt zu erhalten. Jede Hilfe wird geschätzt.

Bearbeiten: Hier ist, was ich bisher von Kommentaren habe. Es war mir vorher nicht klar, dass die Bäume im Attribut estimators_ aufgerufen werden könnten, aber es scheint, dass die Vorhersage-Methode für jeden Baum verwendet werden kann, der dieses Attribut verwendet. Ist dies der beste Weg, dies zu tun?

%Vor%     
chunky 16.12.2013, 16:26
quelle

2 Antworten

4

Chunky, ich benutze Sklearn ein gutes Stück in Kaggle Contests und ich bin mir ziemlich sicher, dass das, was du da oben hast, das Beste ist, was du tun kannst. Wie Sie bereits erwähnt haben, gibt predent () die Vorhersage für die gesamte RF zurück, jedoch nicht für ihre Komponentenbäume. Es kann eine Matrix zurückgeben, aber nur für den Fall, dass mehrere Ziele gemeinsam gelernt werden. In diesem Fall gibt es eine Vorhersage pro Ziel zurück, es gibt keine Vorhersagen für jeden Baum zurück. Sie können die einzelnen Baumvorhersagen in Rs zufälliger Gesamtstruktur abrufen, indem Sie predict.all = True verwenden, aber sklearn hat das nicht. Wenn Sie apply () verwenden, erhalten Sie eine Matrix von Blatt-Indizes, und dann müssten Sie immer noch über die Bäume iterieren, um herauszufinden, was die Vorhersage für diese Baum / Blatt-Kombination war. Ich denke, was du hast, ist so gut wie es geht.

    
Dthal 19.12.2013 06:02
quelle
0

Ich bin nicht 100% sicher, was Sie genau wollen, aber es gibt andere Methoden in Scikit lernt Random Forest Regressor , der höchstwahrscheinlich zurückgibt, was Sie wollen, insbesondere sagen Sie Methode voraus! Diese Methode gibt ein Array der vorhergesagten Werte zurück. Worauf du dich dabei bezogen hast, ist das Ergebnis -Methode, die einfach die predict -Methode verwendet, um den Koeffizienten der R-Quadrat-Determinante zurückzugeben.

    
Ryan Saxe 16.12.2013 17:17
quelle