Ich bin mit mbq einverstanden. Gibt es einen sehr guten Grund, warum Sie das in Python tun müssen? Ansonsten würde ich das Arbeitstier R auch als Backend verwenden.
Joris Meys
Der einzige Grund ist, dass ich R nur sehr wenige Male im Jahr oder so verwendet habe und Python ich jeden Tag benutze ...
Andre Holzner
2
RPY ist eine wirklich üble Abhängigkeit. R verfügt über eine Vielzahl von Funktionen, und daher ist es schön, sie mit Rpy durchsuchen zu können. Wenn Sie diese Funktionen jedoch gemeinsam nutzen müssen, kann dies zu Problemen führen, auch wenn sie sich auf mehreren Computern desselben Labors befinden. Wenn sich Ihr Labor in einer heterogenen Computerumgebung befindet. Dies liegt an der Tatsache, dass Rpy davon abhängt, die richtigen Nebenversionen von Python, numpy und R zu haben. Beispielsweise ist es in den großen Linux-Distributionen immer wieder kaputt.
Gael Varoquaux
3
Die Antworten hier scheinen veraltet zu sein - sie scheinen aus der Zeit zu stammen, als scikit.learn noch am Anfang stand. Ich denke, Leser und die Site würden davon profitieren, wenn jemand, der sich auskennt, eine aktualisierte Antwort geben würde.
Pere
Antworten:
5
Aktualisierte Antwort
Die Landschaft hat sich sehr verändert und die Antwort ist heutzutage klar:
scikit-learn ist die Bibliothek in Python und verfügt über mehrere großartige Algorithmen für beschleunigte Entscheidungsbäume
Der "beste" geboostete Entscheidungsbaum in Python ist die XGBoost- Implementierung.
Update 1
Währenddessen scheint LightGBM , obwohl es noch ziemlich "neu" ist, gleich gut oder sogar besser als XGBoost zu sein
Sie können die R-Entscheidungsbaumbibliothek mit Rpy (http://rpy.sourceforge.net/) verwenden. Lesen Sie auch den Artikel "Erstellen von Entscheidungsbäumen mit Python" (http: //onlamp.com/pub/a/python/2 ...).
Ich hatte gute Erfolge mit den baumbasierten Lernende in der Milch: Machine Learning Toolkit für Python . Es scheint sich in der aktiven Entwicklung zu befinden, aber die Dokumentation war etwas spärlich, als ich es verwendete. Die Testsuite (github.com/luispedro/milk/blob/master/tests/test_adaboost.py) enthält jedoch einen "Boosted Stump", der Sie ziemlich schnell zum Laufen bringen könnte:
Ich entwickle Milch. Wenn einer von Ihnen Probleme hat, lassen Sie es mich bitte per E-Mail wissen (lpc bei cmu dot edu). Fehlerberichte werden in der Regel in weniger als 24 Stunden behoben.
Luispedro
In der Zwischenzeit habe ich etwas mehr Dokumentation zu adaboost hinzugefügt: packages.python.org/milk/adaboost.html, sodass der obige Kommentar möglicherweise weniger gültig ist als zuvor.
Luispedro
4
Das Scikit-Learn hat jetzt gute Implementierungen für Regressions- (und Klassifizierungs-) Bäume und zufällige Wälder . Boosted Tree ist jedoch immer noch nicht enthalten. Die Leute arbeiten daran, aber es dauert eine Weile, bis eine effiziente Implementierung erreicht ist.
Haftungsausschluss: Ich bin ein Scikit-Learn-Entwickler.
JBoost ist eine großartige Bibliothek. Es ist definitiv nicht in Python geschrieben, aber es ist etwas sprachunabhängig, weil es von der Kommandozeile ausgeführt werden kann und so von Python "gesteuert" werden kann. Ich habe es in der Vergangenheit benutzt und mochte es sehr, besonders das Visualisierungsmaterial.
Ich habe im Moment das gleiche Problem: Ich codiere täglich in Python, verwende ab und zu R und benötige einen guten Algorithmus für verstärkte Regressionsbäume. Obwohl es viele großartige Python-Pakete für erweiterte Analyse gibt, hat meine Suche kein gutes Angebot für diesen bestimmten Algorithmus gefunden. Der Weg, den ich in den kommenden Wochen einschlagen werde, ist also, das GBM-Paket in R zu verwenden . Es gibt ein gutes Papier, das praktische Probleme bei der Verwendung zeigt und hier zu finden ist . Wichtig ist, dass das GBM-Paket im KDD-Cup 2009 grundsätzlich "von der Stange" verwendet wurde . Also werde ich wahrscheinlich alle meine Vor- und Nachmodelle in Python erstellen und RPy verwenden, um mit R / GBM hin und her zu gehen.
Ich habe die ähnliche Situation bei Ihnen erlebt. Ich finde, Orange ist schwer einzustellen (vielleicht ist es mein Problem). Am Ende habe ich Peter Norivigs Code für sein berühmtes Buch verwendet. Dort hat er ein gut geschriebenes Code-Framework für Tree bereitgestellt. Alles, was Sie brauchen, ist das Hinzufügen von Boosting. Auf diese Weise können Sie alles programmieren, was Sie möchten.
Antworten:
Aktualisierte Antwort
Die Landschaft hat sich sehr verändert und die Antwort ist heutzutage klar:
Update 1
quelle
Mein erster Blick wäre Orange , eine voll funktionsfähige App für ML, mit einem Backend in Python. Siehe zB orngEnsemble .
Weitere vielversprechende Projekte sind mlpy und scikit.learn .
Ich weiß, dass PyCV mehrere Boosting-Verfahren beinhaltet, aber anscheinend nicht für CART. Schauen Sie sich auch MLboost an
quelle
Sie können die R-Entscheidungsbaumbibliothek mit Rpy (http://rpy.sourceforge.net/) verwenden. Lesen Sie auch den Artikel "Erstellen von Entscheidungsbäumen mit Python" (http: //onlamp.com/pub/a/python/2 ...).
Es gibt auch
http://opencv.willowgarage.com/documentation/index.html
http://research.engineering.wustl.edu/~amohan/
quelle
Ich hatte gute Erfolge mit den baumbasierten Lernende in der Milch: Machine Learning Toolkit für Python . Es scheint sich in der aktiven Entwicklung zu befinden, aber die Dokumentation war etwas spärlich, als ich es verwendete. Die Testsuite (github.com/luispedro/milk/blob/master/tests/test_adaboost.py) enthält jedoch einen "Boosted Stump", der Sie ziemlich schnell zum Laufen bringen könnte:
quelle
Das Scikit-Learn hat jetzt gute Implementierungen für Regressions- (und Klassifizierungs-) Bäume und zufällige Wälder . Boosted Tree ist jedoch immer noch nicht enthalten. Die Leute arbeiten daran, aber es dauert eine Weile, bis eine effiziente Implementierung erreicht ist.
Haftungsausschluss: Ich bin ein Scikit-Learn-Entwickler.
quelle
JBoost ist eine großartige Bibliothek. Es ist definitiv nicht in Python geschrieben, aber es ist etwas sprachunabhängig, weil es von der Kommandozeile ausgeführt werden kann und so von Python "gesteuert" werden kann. Ich habe es in der Vergangenheit benutzt und mochte es sehr, besonders das Visualisierungsmaterial.
quelle
Ich habe im Moment das gleiche Problem: Ich codiere täglich in Python, verwende ab und zu R und benötige einen guten Algorithmus für verstärkte Regressionsbäume. Obwohl es viele großartige Python-Pakete für erweiterte Analyse gibt, hat meine Suche kein gutes Angebot für diesen bestimmten Algorithmus gefunden. Der Weg, den ich in den kommenden Wochen einschlagen werde, ist also, das GBM-Paket in R zu verwenden . Es gibt ein gutes Papier, das praktische Probleme bei der Verwendung zeigt und hier zu finden ist . Wichtig ist, dass das GBM-Paket im KDD-Cup 2009 grundsätzlich "von der Stange" verwendet wurde . Also werde ich wahrscheinlich alle meine Vor- und Nachmodelle in Python erstellen und RPy verwenden, um mit R / GBM hin und her zu gehen.
quelle
Ich habe die ähnliche Situation bei Ihnen erlebt. Ich finde, Orange ist schwer einzustellen (vielleicht ist es mein Problem). Am Ende habe ich Peter Norivigs Code für sein berühmtes Buch verwendet. Dort hat er ein gut geschriebenes Code-Framework für Tree bereitgestellt. Alles, was Sie brauchen, ist das Hinzufügen von Boosting. Auf diese Weise können Sie alles programmieren, was Sie möchten.
quelle
Entscheidungsbäume - Ada Boosting
Entscheidungsbäume ohne Boosting
Entscheidungsbäume mit Ada Boosting
Modelle anpassen und Genauigkeit berechnen
quelle