Árvores de decisão vs. redes neurais

20

Estou implementando uma estrutura de aprendizado de máquina para tentar prever fraudes em sistemas financeiros como bancos, etc. Isso significa que existem muitos dados diferentes que podem ser usados ​​para treinar o modelo, por exemplo. número do cartão, nome do titular do cartão, valor, país, etc.

Estou tendo problemas para decidir qual estrutura é a melhor para esse problema. Tenho alguma experiência com árvores de decisão, mas atualmente comecei a questionar se uma rede neural seria melhor para esse tipo de problema. Além disso, se qualquer outro método for o melhor, sinta-se à vontade para me esclarecer.

Quais são os prós e os contras de cada estrutura e qual seria a melhor para esse problema?

Também não tenho certeza sobre esse fato, mas acho que as árvores de decisão têm uma grande vantagem sobre as redes neurais em termos de velocidade de execução. Isso é importante porque a velocidade também é um fator-chave neste projeto.

Topo
fonte

Respostas:

24

Existem muitas diferenças entre esses dois, mas em termos práticos, há três coisas principais a serem consideradas: velocidade, interpretabilidade e precisão.

Árvores de decisão

  • Deve ser mais rápido depois de treinado (embora ambos os algoritmos possam treinar lentamente, dependendo do algoritmo exato e da quantidade / dimensionalidade dos dados). Isso ocorre porque uma árvore de decisão "descarta" inerentemente os recursos de entrada que não considera úteis, enquanto uma rede neural os usará todos, a menos que você faça alguma seleção de recursos como uma etapa de pré-processamento.
  • Se é importante entender o que o modelo está fazendo, as árvores são muito interpretáveis.
  • Somente funções de modelo que são divisões paralelas ao eixo dos dados, o que pode não ser o caso.
  • Você provavelmente quer podar a árvore para evitar o excesso de ajuste.

Redes neurais

  • Mais lento (tanto para treinamento quanto para classificação) e menos interpretável.
  • Se seus dados chegarem em um fluxo, você poderá fazer atualizações incrementais com descida de gradiente estocástico (diferente das árvores de decisão, que usam algoritmos inerentemente de aprendizado em lote).
  • Pode modelar funções mais arbitrárias (interações não lineares etc.) e, portanto, pode ser mais preciso, desde que haja dados de treinamento suficientes. Mas também pode ser propenso a excesso de ajuste.

Convém implementar ambos e executar algumas experiências com seus dados para ver qual é o melhor e comparar os tempos de execução. Ou então, você pode usar algo como a GUI Weka com uma amostra representativa de seus dados para testar os dois métodos.

Também pode ser que o uso de algoritmos de "empacotamento" ou "reforço" com árvores de decisão melhore a precisão, mantendo alguma simplicidade e velocidade. Mas, resumindo, se a velocidade e a interpretabilidade são realmente importantes, é provável que as árvores sejam por onde começar. Caso contrário, isso depende e você terá alguma exploração empírica para fazer.

rebarba
fonte
Você parece saber um pouco sobre isso, você tem alguma experiência com redes bayesianas ou outros métodos de aprendizado de máquina que podem ajudar com esse problema?
Topo
1
Eu não futerei muito com redes Bayesianas completas, principalmente Bayes ingênuas e modelos de tópicos. Nunca trabalhei em problemas de detecção de fraude, mas Bayes ingênuo ou regressão logística também podem ser abordagens razoáveis ​​aqui.
22412 burr #