Arbres de décision vs réseaux de neurones

20

J'implémente une structure d'apprentissage automatique pour essayer de prédire la fraude sur les systèmes financiers comme les banques, etc. Cela signifie qu'il y a beaucoup de données différentes qui peuvent être utilisées pour former le modèle, par exemple. numéro de carte, nom du titulaire de la carte, montant, pays, etc ...

J'ai du mal à décider quelle structure est la meilleure pour ce problème. J'ai une certaine expérience avec les arbres de décision mais actuellement j'ai commencé à me demander si un réseau neuronal serait mieux pour ce genre de problème. Aussi, si une autre méthode serait la meilleure, n'hésitez pas à m'éclairer.

Quels sont les avantages et les inconvénients de chaque structure et quelle structure serait la meilleure pour ce problème?

De plus, je ne suis pas sûr de ce fait, mais je pense que les arbres de décision ont un grand avantage sur les réseaux de neurones en termes de vitesse d'exécution. Ceci est important car la vitesse est également un facteur clé dans ce projet.

Topo
la source

Réponses:

24

Il y a beaucoup de différences entre ces deux, mais en termes pratiques, il y a trois choses principales à considérer: la vitesse, l'interprétabilité et la précision.

Arbres de décision

  • Devrait être plus rapide une fois formé (bien que les deux algorithmes puissent s'entraîner lentement en fonction de l'algorithme exact et de la quantité / dimensionnalité des données). En effet, un arbre de décision "élimine" par nature les fonctionnalités d'entrée qu'il ne trouve pas utiles, alors qu'un réseau de neurones les utilisera toutes sauf si vous effectuez une sélection de fonctionnalités comme étape de prétraitement.
  • S'il est important de comprendre ce que fait le modèle, les arbres sont très interprétables.
  • Seules les fonctions de modèle qui sont des séparations axe-parallèle des données, ce qui peut ne pas être le cas.
  • Vous voudrez probablement être sûr de tailler l'arbre pour éviter un sur-ajustement.

Filets neuronaux

  • Plus lent (à la fois pour la formation et la classification) et moins interprétable.
  • Si vos données arrivent dans un flux, vous pouvez effectuer des mises à jour incrémentielles avec une descente de gradient stochastique (contrairement aux arbres de décision, qui utilisent intrinsèquement des algorithmes d'apprentissage par lots).
  • Peut modéliser des fonctions plus arbitraires (interactions non linéaires, etc.) et peut donc être plus précis, à condition qu'il y ait suffisamment de données d'entraînement. Mais elle peut également être sujette à un ajustement excessif.

Vous voudrez peut-être essayer d'implémenter les deux et d'exécuter des expériences sur vos données pour voir laquelle est la meilleure et comparer les temps d'exécution. Ou, vous pouvez utiliser quelque chose comme le GUI Weka illuminé avec un échantillon représentatif de vos données pour tester les deux méthodes.

Il se peut également que l'utilisation d'algorithmes de «bagging» ou de «boosting» avec des arbres de décision améliore la précision tout en conservant une certaine simplicité et vitesse. Mais en bref, si la vitesse et l'interprétabilité sont vraiment importantes, alors les arbres sont probablement par où commencer. Sinon, cela dépend et vous aurez une exploration empirique à faire.

bavure
la source
Vous semblez en savoir un peu plus, avez-vous une expérience avec les réseaux bayésiens ou d'autres méthodes d'apprentissage automatique qui pourraient aider à résoudre ce problème?
Topo
1
Je n'ai pas beaucoup travaillé avec des réseaux bayésiens complets, principalement des Bayes naïfs et des modèles de sujets. Je n'ai jamais travaillé sur des problèmes de détection de fraude, mais les Bayes naïfs ou la régression logistique pourraient également être des approches raisonnables ici.
bavure le