Eu concordo com o mbq. Existe uma boa razão para você fazer isso no Python? Caso contrário, eu também usaria o cavalo de batalha R como back-end.
Joris Meys
a única razão é que eu usei R muito poucas vezes por ano ou mais atrás e python Eu estou usando todos os dias ...
Andre Holzner
2
Rpy é uma dependência realmente desagradável. O R tem um conjunto enorme de recursos e, portanto, é bom poder cavá-los usando o Rpy, mas se você precisar compartilhar esse trabalho, poderá estar com problemas, mesmo que seja em computadores diferentes de um mesmo laboratório, se o seu laboratório estiver em um ambiente de computação heterogêneo. Isso se deve ao fato de o Rpy depender de ter as versões secundárias corretas do Python, numpy e R. Por exemplo, ele continua sendo quebrado nas principais distribuições do Linux.
Gael Varoquaux 5/02
3
As respostas aqui parecem desatualizadas - parecem vir do momento em que o scikit.learn estava no início. Acho que os leitores e o site se beneficiariam se alguém com conhecimento colocasse uma resposta atualizada.
Pere
Respostas:
5
Resposta atualizada
A paisagem mudou muito e a resposta é clara hoje em dia:
O scikit-learn é a biblioteca em python e possui vários ótimos algoritmos para árvores de decisão aprimoradas
a "melhor" árvore de decisão aprimorada em python é a implementação do XGBoost .
Atualização 1
Enquanto isso, o LightGBM , embora ainda seja "novo", parece ser igualmente bom ou até melhor que o XGBoost
Você pode usar a biblioteca de árvore de decisão R usando Rpy (http://rpy.sourceforge.net/). Verifique também o artigo "construindo árvores de decisão usando python" (http: //onlamp.com/pub/a/python/2 ...).
Tive um bom sucesso com os alunos baseados em árvores no Milk: Machine Learning Toolkit for Python . Parece estar em desenvolvimento ativo, mas a documentação era um pouco esparsa quando eu a estava usando. A suíte de testes (github.com/luispedro/milk/blob/master/tests/test_adaboost.py) contém um "tronco aprimorado", o que pode fazer você avançar rapidamente:
Eu desenvolvo leite. Se algum de vocês tiver algum problema, entre em contato por e-mail (lpc em cmu dot edu). Os relatórios de erros geralmente são corrigidos em menos de 24 horas.
Luispedro
Enquanto isso, adicionei um pouco mais de documentação no adaboost: packages.python.org/milk/adaboost.html, para que o comentário acima possa ser menos válido do que era antes.
Luispedro
4
O scikit-learn agora tem boas árvores de regressão (e classificação) e implementações de florestas aleatórias . No entanto, a árvore impulsionada ainda não está incluída. As pessoas estão trabalhando nisso, mas leva um tempo para obter uma implementação eficiente.
Disclaimer: Eu sou um desenvolvedor de scikit-learn.
JBoost é uma biblioteca incrível. Definitivamente não é escrito em Python, no entanto, é um pouco independente da linguagem, porque pode ser executado a partir da linha de comando e, portanto, pode ser "orientado" a partir do Python. Eu usei no passado e gostei muito, principalmente o material de visualização.
Eu tenho o mesmo problema agora: eu codigo no Python diariamente, uso R de vez em quando e preciso de um bom algoritmo de árvore de regressão aprimorado. Embora existam muitos ótimos pacotes Python para análises avançadas, minha pesquisa não encontrou uma boa oferta para esse algoritmo específico. Então, a rota que eu acho que eu vou tomar nas próximas semanas é usar o pacote de GBM em R . Há um bom artigo mostrando questões práticas sobre como usá-lo, que podem ser encontradas aqui . É importante ressaltar que o pacote GBM foi basicamente usado "pronto para uso" na Copa KDD de 2009 . Portanto, provavelmente farei toda a minha modelagem pré e pós em Python e usarei o RPy para ir e voltar no R / GBM.
Eu já experimentei a mesma situação com você, acho que é difícil ajustar a Orange (talvez seja o meu problema). No final, usei o código de Peter Norivig em seu famoso livro, onde ele forneceu uma estrutura de código bem escrita para a árvore, tudo o que você precisa é adicionar um reforço nela. Dessa forma, você pode codificar o que quiser.
Respostas:
Resposta atualizada
A paisagem mudou muito e a resposta é clara hoje em dia:
Atualização 1
fonte
Meu primeiro olhar seria em Orange , que é um aplicativo completo para ML, com um back-end em Python. Veja, por exemplo, orngEnsemble .
Outros projetos promissores são o mlpy e o scikit.learn .
Eu sei que o PyCV inclui vários procedimentos de reforço, mas aparentemente não para a CART. Veja também o MLboost
fonte
Você pode usar a biblioteca de árvore de decisão R usando Rpy (http://rpy.sourceforge.net/). Verifique também o artigo "construindo árvores de decisão usando python" (http: //onlamp.com/pub/a/python/2 ...).
existe também
http://opencv.willowgarage.com/documentation/index.html
http://research.engineering.wustl.edu/~amohan/
fonte
Tive um bom sucesso com os alunos baseados em árvores no Milk: Machine Learning Toolkit for Python . Parece estar em desenvolvimento ativo, mas a documentação era um pouco esparsa quando eu a estava usando. A suíte de testes (github.com/luispedro/milk/blob/master/tests/test_adaboost.py) contém um "tronco aprimorado", o que pode fazer você avançar rapidamente:
fonte
O scikit-learn agora tem boas árvores de regressão (e classificação) e implementações de florestas aleatórias . No entanto, a árvore impulsionada ainda não está incluída. As pessoas estão trabalhando nisso, mas leva um tempo para obter uma implementação eficiente.
Disclaimer: Eu sou um desenvolvedor de scikit-learn.
fonte
JBoost é uma biblioteca incrível. Definitivamente não é escrito em Python, no entanto, é um pouco independente da linguagem, porque pode ser executado a partir da linha de comando e, portanto, pode ser "orientado" a partir do Python. Eu usei no passado e gostei muito, principalmente o material de visualização.
fonte
Eu tenho o mesmo problema agora: eu codigo no Python diariamente, uso R de vez em quando e preciso de um bom algoritmo de árvore de regressão aprimorado. Embora existam muitos ótimos pacotes Python para análises avançadas, minha pesquisa não encontrou uma boa oferta para esse algoritmo específico. Então, a rota que eu acho que eu vou tomar nas próximas semanas é usar o pacote de GBM em R . Há um bom artigo mostrando questões práticas sobre como usá-lo, que podem ser encontradas aqui . É importante ressaltar que o pacote GBM foi basicamente usado "pronto para uso" na Copa KDD de 2009 . Portanto, provavelmente farei toda a minha modelagem pré e pós em Python e usarei o RPy para ir e voltar no R / GBM.
fonte
Eu já experimentei a mesma situação com você, acho que é difícil ajustar a Orange (talvez seja o meu problema). No final, usei o código de Peter Norivig em seu famoso livro, onde ele forneceu uma estrutura de código bem escrita para a árvore, tudo o que você precisa é adicionar um reforço nela. Dessa forma, você pode codificar o que quiser.
fonte
Árvores de decisão - Ada Boosting
Árvores de decisão sem aumento
Árvores de decisão com Ada Boosting
Montagem de modelos e cálculo de precisão
fonte