Estoy de acuerdo con mbq. ¿Hay una muy buena razón por la que tienes que hacer eso en Python? De lo contrario, también usaría el caballo de batalla R como back-end.
Joris Meys
La única razón es que he usado R muy pocas veces hace un año más o menos y Python estoy usando todos los días ...
Andre Holzner
2
Rpy es una dependencia realmente desagradable. R tiene un gran conjunto de características y, por lo tanto, es bueno poder cavar en ellas usando Rpy, pero si tiene que compartir ese trabajo, podría estar en problemas, incluso si se trata de diferentes computadoras de un mismo laboratorio, si su laboratorio se encuentra en un entorno informático heterogéneo. Esto se debe al hecho de que Rpy depende de tener las versiones menores correctas de Python, numpy y R. Por ejemplo, se sigue rompiendo en las principales distribuciones de Linux.
Gael Varoquaux
3
Las respuestas aquí parecen anticuadas: parecen provenir del momento en que scikit.learn estaba en sus comienzos. Creo que los lectores y el sitio se beneficiarían si alguien bien informado respondiera de manera actualizada.
Pere
Respuestas:
5
Respuesta actualizada
El panorama ha cambiado mucho y la respuesta es clara hoy en día:
scikit-learn es el biblioteca en python y tiene varios algoritmos geniales para árboles de decisión potenciados
El "mejor" árbol de decisión impulsado en Python es la implementación de XGBoost .
Actualización 1
Mientras tanto, LightGBM , aunque todavía es bastante "nuevo", parece ser igual de bueno o incluso mejor que XGBoost
Puede usar la biblioteca del árbol de decisiones R usando Rpy (http://rpy.sourceforge.net/). Consulte también el artículo "creación de árboles de decisión utilizando python" (http: //onlamp.com/pub/a/python/2 ...).
Tuve un gran éxito con los alumnos basados en árboles en Milk: Machine Learning Toolkit for Python . Parece estar en desarrollo activo, pero la documentación era un poco escasa cuando la estaba usando. Sin embargo, el conjunto de pruebas (github.com/luispedro/milk/blob/master/tests/test_adaboost.py) contiene un "tocón reforzado", que podría ayudarlo a comenzar con bastante rapidez:
Yo desarrollo la leche. Si alguno de ustedes tiene algún problema, hágamelo saber por correo electrónico (lpc en cmu dot edu). Los informes de errores generalmente se arreglan en menos de 24 horas.
luispedro
Mientras tanto, agregué un poco más de documentación sobre adaboost: packages.python.org/milk/adaboost.html, por lo que el comentario anterior podría ser menos válido de lo que era antes.
luispedro
4
El scikit-learn ahora tiene buenos árboles de regresión (y clasificación) e implementaciones aleatorias de bosques . Sin embargo, el árbol impulsado aún no está incluido. La gente está trabajando en ello, pero lleva un tiempo lograr una implementación eficiente.
Descargo de responsabilidad: soy un desarrollador de scikit-learn.
JBoost es una biblioteca impresionante. Definitivamente no está escrito en Python, sin embargo, es algo agnóstico al lenguaje, ya que puede ejecutarse desde la línea de comando y así puede "manejarse" desde Python. Lo he usado en el pasado y me ha gustado mucho, particularmente las cosas de visualización.
Tengo el mismo problema ahora: codifico en Python a diario, uso R de vez en cuando y necesito un buen algoritmo de árbol de regresión mejorado. Si bien hay muchos paquetes excelentes de Python para análisis avanzados, mi búsqueda no ha encontrado una buena oferta para este algoritmo en particular. Por lo tanto, la ruta Creo que voy a tomar en las próximas semanas es utilizar el paquete de GBM en I . Hay un buen documento que muestra problemas prácticos con su uso que se pueden encontrar aquí . Es importante destacar que el paquete GBM se usó básicamente "listo para usar" en la Copa KDD 2009 . Entonces, probablemente haré todo mi modelado previo y posterior en Python y usaré RPy para ir y venir con R / GBM.
He experimentado una situación similar con usted, me parece que Orange es difícil de ajustar (tal vez sea mi problema). Al final, utilicé el código de Peter Norivig para su famoso libro, allí proporcionó un marco de código bien escrito para el árbol, todo lo que necesita es agregar impulso en él. De esta manera, puede codificar lo que quiera.
Respuestas:
Respuesta actualizada
El panorama ha cambiado mucho y la respuesta es clara hoy en día:
Actualización 1
fuente
Mi primer vistazo sería en Orange , que es una aplicación con todas las funciones para ML, con un backend en Python. Ver, por ejemplo, orngEnsemble .
Otros proyectos prometedores son mlpy y scikit.learn .
Sé que PyCV incluye varios procedimientos de refuerzo , pero aparentemente no para CART. Echa un vistazo también a MLboost
fuente
Puede usar la biblioteca del árbol de decisiones R usando Rpy (http://rpy.sourceforge.net/). Consulte también el artículo "creación de árboles de decisión utilizando python" (http: //onlamp.com/pub/a/python/2 ...).
también hay
http://opencv.willowgarage.com/documentation/index.html
http://research.engineering.wustl.edu/~amohan/
fuente
Tuve un gran éxito con los alumnos basados en árboles en Milk: Machine Learning Toolkit for Python . Parece estar en desarrollo activo, pero la documentación era un poco escasa cuando la estaba usando. Sin embargo, el conjunto de pruebas (github.com/luispedro/milk/blob/master/tests/test_adaboost.py) contiene un "tocón reforzado", que podría ayudarlo a comenzar con bastante rapidez:
fuente
El scikit-learn ahora tiene buenos árboles de regresión (y clasificación) e implementaciones aleatorias de bosques . Sin embargo, el árbol impulsado aún no está incluido. La gente está trabajando en ello, pero lleva un tiempo lograr una implementación eficiente.
Descargo de responsabilidad: soy un desarrollador de scikit-learn.
fuente
JBoost es una biblioteca impresionante. Definitivamente no está escrito en Python, sin embargo, es algo agnóstico al lenguaje, ya que puede ejecutarse desde la línea de comando y así puede "manejarse" desde Python. Lo he usado en el pasado y me ha gustado mucho, particularmente las cosas de visualización.
fuente
Tengo el mismo problema ahora: codifico en Python a diario, uso R de vez en cuando y necesito un buen algoritmo de árbol de regresión mejorado. Si bien hay muchos paquetes excelentes de Python para análisis avanzados, mi búsqueda no ha encontrado una buena oferta para este algoritmo en particular. Por lo tanto, la ruta Creo que voy a tomar en las próximas semanas es utilizar el paquete de GBM en I . Hay un buen documento que muestra problemas prácticos con su uso que se pueden encontrar aquí . Es importante destacar que el paquete GBM se usó básicamente "listo para usar" en la Copa KDD 2009 . Entonces, probablemente haré todo mi modelado previo y posterior en Python y usaré RPy para ir y venir con R / GBM.
fuente
He experimentado una situación similar con usted, me parece que Orange es difícil de ajustar (tal vez sea mi problema). Al final, utilicé el código de Peter Norivig para su famoso libro, allí proporcionó un marco de código bien escrito para el árbol, todo lo que necesita es agregar impulso en él. De esta manera, puede codificar lo que quiera.
fuente
Árboles de decisión - Ada Boosting
Árboles de decisión sin refuerzo
Árboles de decisión con Ada Boosting
Modelos de ajuste y cálculo de precisión
fuente