¿Cuáles son varias cosas que deben considerarse al elegir un algoritmo de aprendizaje automático como SVM, redes neuronales, árboles de decisión, etc.?

Primero, comience con lo que sabe sobre su problema. Indique todas las suposiciones que cree que puede hacer. Indique cuál es la entrada, cuál es la salida.

  • ¿Qué sabes sobre las entradas? ¿Son categóricos, numéricos, mixtos, …? ¿Sabes si son independientes o si tienen interacciones fuertes? ¿Hay alguna posible transformación que pueda tener sentido (normalización, tomar el logaritmo, …). ¿Hay algún valor perdido? Si los hay, ¿qué sabe acerca de los valores faltantes (faltan solo al azar o debido a una causa subyacente)?
  • ¿Qué sabes sobre los resultados? ¿Qué tipo de salida es? ¿Sabes si una clase es mucho más probable que otras?
  • ¿Qué sabes sobre el tipo de modelo esperado? ¿Qué tan complejo espera que sea el modelo? ¿Hay alguna suposición que sabes que puedes hacer?

Luego, piense en lo que quiere de su modelo.

  • ¿Quieres garantías teóricas? No todos los modelos tienen garantías, como límites de error comprobables, pero en la práctica puede que no le interesen estos.
  • ¿Tiene una función de pérdida específica que desea usar? Algunos algoritmos pueden tomar funciones de pérdida arbitrarias, algunos algoritmos funcionan mejor con funciones de pérdida específicas.
  • ¿Qué tan probable crees que podría ser el sobreajuste? ¿Tiene suficientes datos para realizar una validación cruzada 10 veces?

Además, considere qué tipo de flujo de datos tiene. Lo más probable es que tenga un conjunto de datos que esté disponible por completo, pero puede ser que solo obtenga un único punto de datos (o un número dado de puntos de datos) a la vez (aprendizaje en línea) o que su algoritmo pueda elegir los datos señala que quiere etiquetas para (aprendizaje activo). Esto influirá en los algoritmos específicos que necesita usar.