Eventos

[Azure Machine Learning] Criterios para la selección de algoritmos de aprendizaje

Puede que existan algunas consideraciones que debamos tener en cuenta para seleccionar el "mejor" algoritmo, pero la verdad es de que no hay forma de saberlo hasta que empecemos a evaluar y comparar modelos construidos con diferentes de ellos.

Para que logremos construir un buen modelo predictivo, no es suficiente con hacer una lista de comprobación de lo que tenemos a la mano, es menester ir construyendo hasta obtener un modelo que nos ofrezca un equilibrio entre la precisión ("precision") y la exhaustividad ("recall"), que son conceptos que ahondaremos más adelante. Dejando lo anterior claro empecemos con algunos criterios:

Naturaleza del problema

Como tratamos en una anterior publicación. Este primer considerando nos invita a identificar correctamente que tipo de problema estamos intentando resolver para limitar el rango de posibles algoritmos a utilizar.

Número y estructura de las características de entrada

Existen algoritmos que trabajan mejor con más características (columnas) que otros, algoritmos que necesitan una gran cantidad de datos (filas) para poder trabajar adecuadamente y algoritmos que incluso se traban cuando existen una gran cantidad de características.

Fuente: https://scikit-learn.org/stable/tutorial/machine_learning_map/index.html

Complejidad del modelo

Los algoritmos de aprendizaje más simples hacen uso de líneas para ajustar los datos: los algoritmos de regresión lineal suponen que las tendencias de datos siguen una línea recta y los algoritmos de clasificación lineal suponen que las clases pueden estar separadas mediante una línea recta. Estas suposiciones no son tan malas para algunos problemas, pero en otros podrían causar un sub-ajuste (underfitting).

Límite de clase no lineal: la dependencia de un algoritmo de clasificación lineal se traduciría en baja precisión.

Datos con tendencia no lineal: el uso de un método de regresión lineal generaría errores mucho mayores que los necesarios.

En general, mientras más complejo es un algoritmo de aprendizaje, mayor precisión se puede obtener, pero mucha precisión sobre los datos de entrenamiento también podría causar un sobre-ajuste (overfitting).

Velocidad de entrenamiento

El tiempo de entrenamiento requerido para construir un modelo predictivo es muy variado, algunos algoritmos son más sensibles a la cantidad de puntos de datos que otros, mientras que otros soportan muchos hiperparámetros y son más complejos. Si el tiempo es limitado, esto puede determinar la elección del algoritmo.

Uso de memoria o recursos de computo

Dependiendo a la complejidad, la cantidad de datos suministrados y diversos factores, cada algoritmo usará una diferente cantidad de recursos. Esto podría ser decisivo para la elección de un algoritmo, incluso si trabajamos en Azure Machine Learning hay que tener en cuenta los posibles límites que podrían existir en cuanto al servicio y el tipo de suscripción vigente.

Número de hiperparámetros

Los hiperparámetros son números que afectan al comportamiento del algoritmo, como la tolerancia a errores o la cantidad de iteraciones, o bien opciones de variantes de comportamiento del algoritmo. Mientras más hiperparámetros tenga un algoritmo, mayor exploración de prueba y error deberemos hacer para asegurarnos de encontrar la mejor combinación.

La ventaja es que tener muchos parámetros normalmente indica que un algoritmo tiene mayor flexibilidad. A menudo, puede lograr una precisión muy alta siempre y cuando se encuentre la combinación correcta de configuraciones de parámetros.

Fuente: https://docs.microsoft.com/en-us/azure/machine-learning/studio/algorithm-choice

No hay comentarios.:

Publicar un comentario

Epicalsoft — Superheroic Software Development Blog Designed by Templateism.com Copyright © 2014

Con tecnología de Blogger.