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?
fonte
[Nota: veja a atualização 1. abaixo.] Acho que a metodologia para
rpart
é muito mais fácil de explicar do queparty
. Este último, no entanto, é muito mais sofisticado e provavelmente dará melhores modelos. A maneira como explico às vezesparty
é 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
rpart
clareza e pode usarparty
para precisão / desempenho, mas eu não apresentariaparty
sem a introduçãorpart
.Atualização 1. Baseei minha resposta no meu entendimento de
party
como era um ano ou dois atrás. Ele cresceu bastante, mas eu modificaria minha resposta para dizer que ainda recomendariarpart
por 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 funcionalidadesparty
, depois de apresentar alguémrpart
. É 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.fonte
party
pacote pode fazer. Aparty
função pura cria apenas uma única árvore simples, comorpart
a votação majoritária nas folhas. Amob
funçãoparty
é o que constrói árvores com modelos mais complexos nas folhas (e escolhe os splits baseado em instabilidade parâmetro.)mob
ou se o restante do pacote cresceu bastante - não me lembro de ter visto florestas aleatórias antes, por exemplo. Vou revisar minha resposta ...ctree
fazer uma única árvore,cforest
fazer uma floresta aleatória emob
fazer as folhas baseadas no modelo. E para sua informação, cforest é divertido, mas terrivelmente lento para prever.mob
pode estar lá desde o começo, ou pelo menos veio depoisctree
, suponho. Existe desde 2009 ou antes. Enfim, isso mostra que todos nós podemos aprender algo novo no SE. :)