Árboles de decisión vs. Redes neuronales

20

Estoy implementando una estructura de aprendizaje automático para tratar de predecir el fraude en sistemas financieros como bancos, etc. Esto significa que hay muchos datos diferentes que pueden usarse para entrenar el modelo, por ejemplo. número de tarjeta, nombre del titular de la tarjeta, cantidad, país, etc.

Tengo problemas para decidir qué estructura es la mejor para este problema. Tengo algo de experiencia con los árboles de decisión, pero actualmente he comenzado a preguntarme si una red neuronal sería mejor para este tipo de problema. Además, si cualquier otro método sería mejor, no dude en iluminarme.

¿Cuáles son los pros y los contras de cada estructura y qué estructura sería la mejor para este problema?

Tampoco estoy seguro de este hecho, pero creo que los árboles de decisión tienen una gran ventaja sobre las redes neuronales en términos de velocidad de ejecución. Esto es importante porque la velocidad también es un factor clave en este proyecto.

Topo
fuente

Respuestas:

24

Hay muchas diferencias entre estos dos, pero en términos prácticos, hay tres cosas principales a tener en cuenta: velocidad, interpretabilidad y precisión.

Árboles de decisión

  • Debería ser más rápido una vez entrenado (aunque ambos algoritmos pueden entrenarse lentamente dependiendo del algoritmo exacto y la cantidad / dimensionalidad de los datos). Esto se debe a que un árbol de decisión inherentemente "desecha" las características de entrada que no encuentra útiles, mientras que una red neuronal las usará todas a menos que haga alguna selección de características como un paso de preprocesamiento.
  • Si es importante entender lo que está haciendo el modelo, los árboles son muy interpretables.
  • Solo las funciones del modelo que son divisiones paralelas a los ejes de los datos, lo que puede no ser el caso.
  • Probablemente desee asegurarse de podar el árbol para evitar un ajuste excesivo.

Redes neuronales

  • Más lento (tanto para entrenamiento como para clasificación), y menos interpretable.
  • Si sus datos llegan a una secuencia, puede hacer actualizaciones incrementales con descenso de gradiente estocástico (a diferencia de los árboles de decisión, que utilizan algoritmos de aprendizaje por lotes inherentemente).
  • Puede modelar funciones más arbitrarias (interacciones no lineales, etc.) y, por lo tanto, puede ser más preciso, siempre que haya suficientes datos de entrenamiento. Pero también puede ser propenso al sobreajuste.

Es posible que desee intentar implementar ambos y ejecutar algunos experimentos en sus datos para ver cuál es mejor y comparar los tiempos de ejecución. O bien, puede usar algo como la GUI de Weka con una muestra representativa de sus datos para probar ambos métodos.

También puede ser que el uso de algoritmos de "embolsado" o "refuerzo" con árboles de decisión mejorará la precisión al tiempo que se mantiene la simplicidad y la velocidad. Pero en resumen, si la velocidad y la capacidad de interpretación son realmente importantes, entonces los árboles probablemente sean el lugar por donde comenzar. De lo contrario, depende y tendrás algo de exploración empírica que hacer.

rebaba
fuente
Parece saber un poco sobre esto, ¿tiene alguna experiencia con redes bayesianas u otros métodos de aprendizaje automático que puedan ayudar con este problema?
Topo
1
No he jugado mucho con redes Bayesianas completas, principalmente Bayes ingenuas y modelos temáticos. Nunca he trabajado en problemas de detección de fraude, pero los ingenuos Bayes o la regresión logística también podrían ser enfoques razonables aquí.
rebaba