Tipos de Modelos de Machine Learning

En la actualidad existe gran interés de la comunidad técnica y no técnica sobre el aprendizaje automático y sus aplicaciones. Una forma de entender en qué tipos de problemas puede ayudarnos el ML, es entender los tipos de modelos que existen. En esta entrada, analizamos dos tipos de clasificaciones de modelos que nos ayudarán a entender cuáles son las posibilidades que tenemos para resolver problemas con ML. Los modelos que exploraremos son:

  1. Modelos Supervisados vs Modelos No Supervisados

  2. Modelos en Batch vs Modelos en Línea

Modelos Supervisados

En un modelo supervisado, la persona que entrena en modelo se encarga de dar ejemplos de lo que desea conocer. Por ejemplo, si desea conocer la probabilidad de que un evento Y ocurra, dado una serie de características observadas, en inglés llamadas features. Así pues, tenemos modelos que pueden realizar inferencias acerca del mundo, tendiendo como base una serie de datos de eventos pasados. Ejemplos de estos modelos nos pueden ayudar a predecir valores futuros, conocidos como forecasting; o bien, definir la probabilidad de que un cliente deje de serlo, conocido como churn. En general, cuando queremos predecir la ocurrencia de un evento o el valor de una variable, tomando como base datos históricos. Este tipo de modelos quizás son los más simples, pero a la vez existen aplicaciones prácticas importantes de éstos.

Modelos No Supervisados

Este tipo de modelos nos ayuda a detectar relaciones no evidentes de un conjunto de datos. Por ejemplo, si tenemos una base de clientes, y queremos categorizarlos, una forma simple sería agruparlos por si son clientes sin hijos o con hijos. Sin embargo, las características que definen un cliente van más allá de los datos demográficos, y en ocasiones sus comportamientos nos pueden dar información valiosa. Por ejemplo, si un cliente ha regresado 3 veces en nuestro negocio, o el tipo de productos que compran, nos daría información más valiosa que saber si el cliente tiene hijos o no. Sin embargo, analizar todas las características del sujeto en este caso es impráctico. Por lo que se recurre a modelos que ayudan al analista a detectar características similares y no evidentes entre los clientes. Esto se conoce como clustering. Una vez definidas las categorías de los clientes, es posible usar otro tipo de modelos de personalización o inclusive, aplicar modelos supervisados, para inferir qué tan probable este cliente dejará de serlo.

Modelos en Batch

En este caso nos referimos a qué tan seguido nos tenemos que preocupar de volver a re entrenar el modelo. Si el problema que deseamos resolver no cambia rápidamente con respecto al tiempo, aplicar un modelo en batch puede ser una buena solución. Por ejemplo, imaginemos que deseamos predecir la comida que se va a comer en una Región de un país, para optimizar la cadena de suministro de una tienda. Muy probablemente esta información se mantendrá estable con respecto al tiempo, debido a que la gastronomía es parte de la cultura de una Región. Sin embargo, como el mundo cambia con el tiempo, la eficacia de este modelo caerá conforme al tiempo. En este caso, se tendrá que re entrenar el modelo cada determinado tiempo, para ajustarse a los nuevos gustos de la población. Este re entrenamiento tiene un costo computacional importante, y por tanto económico.

Modelos En Línea

Pensemos en el caso de una plataforma de Streaming de Video. Estas plataformas nos dan recomendaciones personalizadas de contenido relevante a nuestros gustos. En este caso, hacer un re entrenamiento desde cero cada semana o mes no sería práctico, debido a que el cliente abandonaría la plataforma al no descubrir nuevo contenido relevante. En este escenario, un modelo en línea se re entrena constantemente a partir de los eventos que recibe de los clientes. Otra ventaja es que es más económico re entrenar el modelo con una pequeña cantidad de datos, también conocidos como micro-batches, que hacerlo desde cero, tomando como base toda la información histórica.