Machine Learning es un tema importante en estos momentos y todo el mundo est谩 tratando de conseguir cualquier forma que pueda obtener sobre el tema. Con la cantidad de informaci贸n que existe, en ocasiones nos podemos sentir abrumado. Por lo tanto, ac谩 te muestro los 6 pasos m谩s importantes que debes considerar al momento de desarrollar un proyecto de Machine Learning.

Hay muchas cosas a considerar mientras se construye un sistema de Machine Learning. Pero a menudo sucede que nosotros, solo nos preocupamos por ciertas partes del proyecto.

La mayor铆a de las veces se trata de modelos, pero en realidad, el 茅xito o el fracaso de un proyecto de Machine Learning depende de muchos otros factores, ya que no es solamente crear modelos, es esencial entender lo que sucede antes de entrenar un modelo y despu茅s de entrenarlo e implementarlo en producci贸n.

aprende f谩cilmente inteligencia artificial - newsletter

Ac谩 explicaremos lo que involucra crear un proyecto de Machine Learning de extremo a extremo.

Definici贸n del problema

Esta puede ser la parte m谩s crucial de todo el ejercicio. Entonces, 驴c贸mo definir un problema para Machine Learning?

Eso depende de muchos factores. Entre todos los elementos que consideramos el primero debe ser entender c贸mo beneficiar谩 al negocio. Ese es el santo grial de cualquier proyecto de Machine Learning. Si tu proyecto no ayuda a las empresas, no lo podr谩s implementarlo. As铆 de simple.

Una vez que se tiene una idea y se determina la compatibilidad del negocio, es necesario definir una m茅trica de 茅xito. Ahora, 驴c贸mo es el 茅xito? Puede ser un 90% de precisi贸n o un 95% o un 99% de precisi贸n.

Inclusive, puedes estar contento con una precisi贸n de predicci贸n del 70%, ya que un humano promedio no superar谩 esa precisi贸n nunca y, mientras tanto, tu puedes automatizar el proceso.

Debes tener cuidado, en este momento no se deben establecer metas elevados. Es el momento de ser l贸gico y sensato acerca de c贸mo cada cambio en la precisi贸n del 1 por ciento podr铆a afectar el 茅xito.

Por ejemplo, para un problema de predicci贸n de clic o una aplicaci贸n que prediga fraudes, un aumento del 1% de precisi贸n aumentar谩 el resultado final del negocio en comparaci贸n con un aumento del 1% de precisi贸n para una aplicaci贸n que prediga los sentimientos.

Datos

Hay varias preguntas que debes responder en el momento de la adquisici贸n de datos y la creaci贸n de datos para el modelo de Machine Learning.

La pregunta m谩s importante que hay que responder aqu铆 es 驴si el modelo necesita trabajar en tiempo real?

Si ese es el caso, no se puede utilizar ciertos sistemas de almacenamiento de datos, ya que tales sistemas pudr铆an introducir mucha latencia y son m谩s adecuados para el procesamiento por lotes fuera de l铆nea.

Otras preguntas que se deben responder son las siguientes:

驴El modelo necesita ser entrenado en tiempo real?

Si el rendimiento del modelo de Machine Learning disminuye con el tiempo, es posible que desees considerar el entrenamiento en tiempo real. La capacitaci贸n en tiempo real podr铆a ser beneficiosa para la mayor铆a de los sistemas de predicci贸n de los clics, ya que las tendencias de internet cambian con bastante rapidez.

驴Existen algunas inconsistencias entre los datos de las pruebas y los de entrenamiento?, o en pocas palabras, 驴sospechas que los datos de producci贸n provienen de una distribuci贸n diferente de los datos de formaci贸n?

Por ejemplo, en un entrenamiento en tiempo real para un problema de predicci贸n de clics, le muestras al usuario el anuncio y 茅l no hace clic, 驴es un ejemplo de fracaso? Tal vez el usuario hace clic t铆picamente despu茅s de 10 minutos. Pero ya has creado los datos y entrenado tu modelo en eso.

Hay muchos factores que debes considerar al preparar los datos para tus modelos. Necesitas hacer preguntas y pensar en el proceso de principio a fin para tener 茅xito en esta etapa.

Evaluaci贸n

驴C贸mo evaluaremos el desempe帽o de nuestro modelo?

Lo importante ac谩 es la separaci贸n de los datos en entrenamiento y prueba.

Frecuentemente haciendo un conjunto de datos de entrenamiento y prueba, por muestreo, nos olvidamos de una suposici贸n impl铆cita, los datos rara vez se encuentran distribuidos de forma independiente e id茅ntica.

En t茅rminos sencillos, nuestra suposici贸n de que cada punto de datos es independiente entre s铆 y proviene de la misma distribuci贸n es, en el mejor de los casos, defectuosa, si no totalmente incorrecta.

Para una empresa de internet, un punto de datos de 2007 es muy diferente a un punto de datos que viene en 2020. No provienen de la misma distribuci贸n debido a muchos factores, la velocidad de internet es lo m谩s importante.

Si tiene un problema de predicci贸n de gato vs perro, es adecuado utilizar el muestreo aleatorio, pero, en la mayor铆a de los modelos de Machine Learning, la tarea es predecir el futuro.

Puedes pensar en dividir los datos usando la variable de tiempo en lugar de tomar muestras al azar de los datos.

Por ejemplo, para el problema de predicci贸n de clics puedes tener todos los datos anteriores hasta el mes pasado como datos de entrenamiento y datos del mes pasado como validaci贸n.

Lo siguiente que tendr谩s que pensar es en el modelo de l铆nea de base.

Digamos que usamos el error cuadr谩tico medio como m茅trica de evaluaci贸n para nuestros modelos de series temporales. Evaluamos el modelo en el equipo de prueba, y el error cuadr谩tico medio result贸 ser de 4,8. 驴Es un buen error? 驴C贸mo lo sabemos? Necesitamos una base de referencia de error cuadr谩tico medio.

Esto podr铆a provenir de un modelo actualmente empleado para la misma tarea o usando alg煤n modelo simple. Para el modelo de series de tiempo, una l铆nea de base es utilizar la predicci贸n del 煤ltimo d铆a, es decir, predecir el n煤mero del d铆a anterior. Para los modelos de clasificaci贸n del procesamiento del lenguaje natural se puede utilizar las m茅tricas de evaluaci贸n, como precisi贸n, F1, entre otros.

Tambi茅n debes pensar en c贸mo vas a romper la evaluaci贸n en m煤ltiples grupos para que tu modelo no induzca sesgos innecesarios. En el 2018, Amazon apareci贸 en las noticias por una herramienta secreta de reclutamiento de inteligencia artificial que mostraba prejuicios contra las mujeres.

Para salvar nuestro modelo de Machine Learning de tales inconsistencias, necesitamos evaluar nuestro modelo de diferentes grupos. Tal vez nuestro modelo no es tan preciso para las mujeres como lo es para los hombres porque hay mucho menos mujeres en los datos de entrenamiento. O tal vez un modelo que predice si un producto va a ser comprado o no, funciona bastante bien para una categor铆a de producto espec铆fica y no para otras categor铆as de productos.

Tener en cuenta estas cosas de antemano y pensar precisamente en lo que podr铆a fallar con un enfoque de evaluaci贸n en particular es algo que definitivamente podr铆a ayudarnos a dise帽ar un buen sistema de Machine Learning.

Caracter铆sticas

Las buenas caracter铆sticas son la columna vertebral de cualquier modelo de Machine Learning. Y a menudo la parte en la que parar铆as m谩s tiempo. Esta es la parte que se puede afinar para obtener el m谩ximo rendimiento del modelo.

Una buena creaci贸n de caracter铆sticas a menudo requiere conocimiento del dominio, creatividad y mucho tiempo.

Adem谩s, el ejercicio de creaci贸n de la caracter铆stica puede cambiar para diferentes modelos. La comprensi贸n de varios m茅todos para la selecci贸n de caracter铆sticas es un tema bastante importante dentro de Machine Learning, por lo que es adecuado implementarlo y evaluar los resultados obtenidos para al final obtener las caracter铆sticas m谩s adecuadas para construir el modelo.

Modelado

Ahora viene la parte que m谩s nos importa. Es la pieza que terminamos entregando al final del proyecto. Y esta es la parte para la que hemos dedicado todas esas horas a la adquisici贸n y limpieza de datos, a la creaci贸n de caracter铆sticas y dem谩s. Entonces, 驴qu茅 necesitamos pensar mientras creamos un modelo?

La primera pregunta que tenemos que hacernos es que si el modelo necesita ser interpretable. Hay muchos casos de uso en los que la empresa puede querer un modelo interpretable.聽 Uno de estos casos de uso es cuando queremos hacer un modelo de atribuci贸n, aqu铆 definimos el efecto de varios flujos de publicidad, TV, radio, peri贸dicos, etc, sobre los ingresos. En tales casos, es esencial comprender la respuesta de cada flujo de publicidad.

Experimentaci贸n

Ahora ya has creado tu modelo.

Funciona mejor el modelo construido que la l铆nea base con la que se comenz贸. Ahora, 驴c贸mo debemos seguir adelante?

Tenemos dos opciones:

  • Entrar en un bucle interminable para mejorar a煤n m谩s nuestro modelo.
  • Probar nuestro modelo en entornos de producci贸n, obtener m谩s informaci贸n sobre lo que podr铆a salir mal y continuar mejorando nuestro modelo con una integraci贸n continua.

Lo ideal es ejecutar la opci贸n 2, implementar el modelo construido a irlo mejorando poco a poco.

Una cosa que tambi茅n es importante destacar es la integraci贸n continua. Si el nuevo modelo funciona mejor que el modelo existente, 驴por qu茅 no desplegarlo en la producci贸n en lugar de correr tras ganancias incrementales?

Para probar la validez de esta suposici贸n, que el nuevo modelo es mejor al modelo existente, puedes configurar una prueba A/B. Algunos usuarios, grupos de prueba, ven tu modelo mientras que algunos usuarios, control, ven las predicciones del modelo anterior.

Siempre debes tratar de minimizar el tiempo para el primer experimento en l铆nea del modelo. Esto no solo genera valor, sino que tambi茅n te permite entender las deficiencias del modelo con la retroalimentaci贸n en tiempo real que luego puedes trabajar.

Nada es simple en Machine Learning y, por supuesto, nada debe ser asumido. Siempre debes ser critico de cualquier decisi贸n que hayas tomado mientras construyes un proyecto de Machine Learning. Una simple decisi贸n puede ser la diferencia entre el 茅xito o el fracaso de tu proyecto.

Con esto finalizamos la explicaci贸n. Ya tienes los pasos de c贸mo desarrollar un proyecto de Machine Learning, por lo tanto te dejo la siguiente pregunta, 驴Cu谩les de las siguientes afirmaciones crees t煤 que sea cierta?

Opci贸n 1: No es posible trabajar en Machine Learning con datos en tiempo real.

Respuesta Incorrecta. Se puede trabajar en Machine Learning con datos en tiempo real, solamente se debe seleccionar un sistema de almacenamiento de datos adecuado que no haga lento el proceso.

Opci贸n 2: Al momento de desarrollar un modelo tengo que utilizar todas las caracter铆sticas disponibles.

Respuesta Incorrecta. Es recomendable realizar una selecci贸n de caracter铆sticas de esa forma se trabajar谩 con las variables m谩s importantes.

Opci贸n 3: Al momento de evaluar el modelo el resultado de precisi贸n es de 76%, por tanto tengo que desecharlo por completo.

Respuesta Incorrecta. El porcentaje de precisi贸n deber谩 estar acorde con los objetivos establecidos al principio del proyecto, de repente un resultado del 76% es muy bueno para la empresa.

2 comentarios en “6 pasos para construir un proyecto de Machine Learning”

Deja un comentario

Tu direcci贸n de correo electr贸nico no ser谩 publicada.