Particionando árvores em R: party vs. rpart


15

Já faz um tempo desde que eu olhei para particionar árvores. A última vez que fiz esse tipo de coisa, eu gosto de festa no R (criada por Hothorn). A idéia de inferência condicional via amostragem faz sentido para mim. Mas a rpart também teve apelo.

No aplicativo atual (não posso fornecer detalhes, mas envolve tentar determinar quem irá para a cadeia entre uma grande amostra de detidos) não posso usar métodos avançados como florestas aleatórias, ensacamento, reforço etc. - preciso de uma explicação fácil regra.

Eu também gostaria de ter algum controle manual sobre quais nós se dividem, conforme recomendado em Zhang & Singer (2010) Particionamento recursivo e aplicativos . O freeware que acompanha esse livro permite isso, mas, de outra forma, é bastante primitivo na entrada do usuário.

Alguma recomendação ou sugestão?

Respostas:


8

Concordo com o @Iterator que a metodologia é mais fácil de explicar para a rpart. No entanto, se você estiver procurando regras facilmente explicáveis, a parte (sem árvores ensacadas) não perde nada em relação à explicação da previsão - você ainda tem uma única árvore. Se você também estiver interessado em examinar os fatores determinantes da variável resultado (e não apenas o poder preditivo puro), eu ainda acho que essa é a melhor maneira - explicando que uma árvore de decisão (como a rpart) pode ser bastante tendenciosa na maneira como seleciona quais variáveis ​​são importantes e como ele cria divisões. A Parte usa testes de permutação e determina estatisticamente quais variáveis ​​são mais importantes e como as divisões são feitas. Portanto, em vez de inclinar-se a inclinar-se para variáveis ​​categóricas com muitos níveis, como o rpart, por exemplo, o partido usa testes estatísticos para encontrar a melhor estrutura.


11
Boa resposta. Acho que você encontrou uma boa razão para a festa ser melhor para um público avançado e por que é uma boa ideia educar a platéia para ajudá-los a aceitar o uso da festa.
Repetidor

4

[Nota: veja a atualização 1. abaixo.] Acho que a metodologia para rparté muito mais fácil de explicar do que party. Este último, no entanto, é muito mais sofisticado e provavelmente dará melhores modelos. A maneira como explico às vezes partyé falar disso como base para a produção de modelos lineares locais (ou GLM). Eu construo isso apontando que os resultados pararpart são constantes em todos os elementos que caem no nó da folha, ou seja, na caixa / região delimitada pelas divisões. Mesmo que haja melhorias através de modelos locais, você não recebe nada além de uma previsão constante.

Em contraste, party desenvolve as divisões para otimizar potencialmente os modelos para as regiões. Na verdade, ele está usando um critério diferente da otimização do modelo, mas é necessário avaliar sua própria capacidade de explicar a diferença para determinar se você pode explicá-la bem. Os artigos para ele são bastante acessíveis para um pesquisador, mas podem ser bastante desafiadores para alguém que não está disposto a considerar métodos mais simples, como florestas aleatórias, reforço etc. Matematicamente, acho queparty é mais sofisticado ... No entanto, os modelos CART são mais fáceis de explique, tanto em termos de metodologia quanto de resultados, e estes são um trampolim decente para a introdução de modelos baseados em árvores mais sofisticados.

Em resumo, eu diria que você tem que ter rpartclareza e pode usar partypara precisão / desempenho, mas eu não apresentaria partysem a introdução rpart.


Atualização 1. Baseei minha resposta no meu entendimento de partycomo era um ano ou dois atrás. Ele cresceu bastante, mas eu modificaria minha resposta para dizer que ainda recomendaria rpartpor sua brevidade e legado, caso "não-sofisticado" seja um critério importante para seu cliente / colaborador. No entanto, eu tentaria migrar para o uso de mais funcionalidades party, depois de apresentar alguém rpart. É melhor começar pequeno, com funções de perda, critérios de divisão etc., em um contexto simples, antes de introduzir um pacote e uma metodologia que envolvam conceitos muito mais envolvidos.


2
Eu acho que você está confundindo um pouco sobre o que o partypacote pode fazer. A partyfunção pura cria apenas uma única árvore simples, como rparta votação majoritária nas folhas. A mobfunção partyé o que constrói árvores com modelos mais complexos nas folhas (e escolhe os splits baseado em instabilidade parâmetro.)
Shea Parkes

11
@SheaParkes Você está certo. Já faz um tempo, e não tenho certeza se usei apenas mobou se o restante do pacote cresceu bastante - não me lembro de ter visto florestas aleatórias antes, por exemplo. Vou revisar minha resposta ...
Iterator 08/02

2
E, na verdade, eu tinha esquecido um pouco também. É ctreefazer uma única árvore, cforestfazer uma floresta aleatória e mobfazer as folhas baseadas no modelo. E para sua informação, cforest é divertido, mas terrivelmente lento para prever.
Shea Parkes

Vou olhar para a multidão , acho que não existia da última vez que usei a festa . As aplicações florestais não são para mim, desta vez.
Peter Flom - Restabelece Monica

@ PeterFlom Eu acho que mobpode estar lá desde o começo, ou pelo menos veio depois ctree, suponho. Existe desde 2009 ou antes. Enfim, isso mostra que todos nós podemos aprender algo novo no SE. :)
Iterator
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.