Regressão (não) linear na árvore de decisão foliar

8

É comum ter uma técnica de regressão diferente nas folhas de uma árvore de regressão (por exemplo, regressão linear)? Eu tenho procurado por ele na última hora, mas tudo o que encontro são implementações que têm um valor constante nas folhas das árvores. Existe uma razão pela qual isso é / não é comum?

marqram
fonte

Respostas:

5

MARS faz isso

Eu acho que não é mais popular é que grande parte da robustez dos conjuntos de modelos no estilo de árvore de decisão vem do fato de eles sempre preverem valores constantes no intervalo que viram.

Os valores extremos nos dados geralmente são agrupados com os valores normais mais altos / mais baixos nos dados da última folha e não causam previsões estranhas ou descartam coeficientes.

Eles também não sofrem de problemas com multicolinearidade e modelos lineares.

Você pode resolver esses problemas em uma implementação, mas é provavelmente mais fácil e mais robusto adicionar apenas mais árvores em um conjunto via reforço ou ensacamento, até obter a suavidade necessária.

Ryan Bressler
fonte
5

Houve muita pesquisa sobre esse tópico nas últimas décadas, começando com os esforços pioneiros de Ciampi, seguidos pelo GUIA de Loh e depois também pelas árvores funcionais do Gama ou pela abordagem de particionamento recursivo baseado em modelos por nós. Uma boa visão geral é dada na resposta do @ Momo a esta pergunta: Vantagem dos GLMs nos nós terminais de uma árvore de regressão?

O software correspondente é menos utilizado do que as árvores de ajuste constante simples, como você observa. Parte da razão para isso é presumivelmente mais difícil de escrever - mas também mais difícil de usar. Requer apenas mais especificações do que um simples modelo CART. Mas o software está disponível (como apontado anteriormente aqui por @marqram ou @Momo em: algoritmo de árvore de regressão com modelos de regressão linear em cada folha ). Pacotes de software importantes incluem:

  • No conjunto Weka existem M5P(M5 ') para respostas contínuas, LMT(árvores de modelo logístico) para respostas binárias e FT(árvores funcionais) para respostas categóricas. Consulte http://www.cs.waikato.ac.nz/~ml/weka/ para obter mais detalhes. As duas primeiras funções também são facilmente interface através do pacote de R RWeka.

  • A implementação do Loh's GUIDE está disponível em formato binário, sem nenhum custo (mas sem código fonte) em http://www.stat.wisc.edu/~loh/guide.html . Permite modificar os detalhes do método por uma ampla variedade de opções de controle.

  • Nosso algoritmo MOB (particionamento recursivo baseado em MOdel) está disponível no pacote R partykit(sucessor da partyimplementação). A mob()função fornece uma estrutura geral, permitindo especificar novos modelos que podem ser facilmente ajustados nos nós / folhas da árvore. Interfaces de conveniência lmtree()e glmtree()que combinam mob()com lm()e glm()estão diretamente disponíveis e ilustradas em vignette("mob", package = "partykit"). Mas outros plugins também podem ser definidos. Por exemplo, em /programming/37037445/using-mob-trees-partykit-package-with-nls-model mob() é combinado com nls(). Mas também existem "mafiosos" para vários modelos psicométricos (in psychotree) e para regressão beta (in betareg).

Achim Zeileis
fonte
3

Encontrei um método que faz exatamente isso (uma árvore de decisão, onde as folhas contêm uma regressão linear em vez de um valor médio). Eles são chamados de árvores modelo [1] e um exemplo é o algoritmo M5P [2] da weka. No M5P, uma regressão linear é em cada folha.

Edit: Encontrei outro pacote / modelo que faz algo semelhante e parece fornecer resultados muito bons para meus conjuntos de dados: cubist. Uma implementação em R é dada pelo pacote cubista [3]. O Cubist adiciona um conjunto aprimorado ao M5P e o que ele chama de 'correções baseadas em instância'.

[1]: Torgo, L. Modelos funcionais para folhas de árvore de regressão. Em Anais da 14ª Conferência Internacional sobre Aprendizado de Máquina, pp. 385–393. Morgan Kaufmann, 1997.

[2]: M5P http://weka.sourceforge.net/doc.dev/weka/classifiers/trees/M5P.html

[3]: Modelo cubista Cubista: modelagem de regressão baseada em regras e instâncias https://cran.r-project.org/web/packages/Cubist/index.html

marqram
fonte