Fui contratado por una empresa de comercio electrónico para crear modelos de inteligencia artificial que les ayuden a comprender mejor a sus clientes.
Estos modelos se utilizarán para saber cuánto costará el envío de un producto, ver si un cliente comprarán y los agrupará en gustos similares.
Pero, ¿cómo funcionan estos algoritmos? ¿Con uno solo podremos hacer todas estas funciones? ¿Tenemos que entrenar cada algoritmo?
En todos los casos queremos enseñar a la máquina a trabajar con nuestros datos. Por ejemplo, para calcular el precio de envío de un producto. El flete puede diferir según la tarifa de facturación por la distancia y la cantidad de productos.
Esta tarifa no tiene un valor fijo, depende de otros factores del mercado como el precio del combustible, impuestos sobre los productos, entre otras cosas. De todos modos, cuando un usuario pide calcular el envío, debemos poder estimar un valor.
Pero, ¿cómo podemos estimar el envío si la tarifa puede cambiar? Incluso con la tarifa cambiando su valor, podemos usar valores de fletes pasados como una forma de estimar fletes futuros. Es decir, podemos tener un modelo, un algoritmo de inteligencia artificial, que estimará el flete por nosotros.
Para eso, simplemente debemos entrenar el algoritmo con las tarifas de flete antiguas, enseñarle cómo se calcularon. Cuando se calcula un nuevo flete, puede usar estos datos para averiguar el valor que queremos.
En este caso, le estamos enseñando a la máquina cómo trabajar con nuestros datos, por lo que estamos supervisando el aprendizaje automático. Por lo tanto, decimos que este algoritmo es un algoritmo de aprendizaje supervisado.
En el aprendizaje supervisado pasamos todos los datos para entrenar el modelo. Es decir, pasamos los datos y los resultados. Basado en esto, el algoritmo descubre una manera de trabajar con los datos.
Vimos que podemos usar este tipo de algoritmos para predecir el precio del envío, pero todavía tenemos que clasificar a los clientes y agruparlos por sus gustos, ¿cómo podemos hacer eso?
Tenemos que averiguar si un cliente va a comprar un producto en el sitio o no. Para esto, podemos usar alguna información como por ejemplo, si vino de un enlace externo, de un correo electrónico o un anuncio, si miró la descripción de otro producto, si tiene un registro.
Podemos usar los datos de acceso de los usuarios para entrenar el modelo para clasificar si el usuario puede comprar o no. Podemos tomar estos datos y decirle a nuestro algoritmo: mira, este usuario vino de un enlace externo, no miró la descripción, tiene registro y compró el producto.
Este otro, en cambio, no vino de un enlace externo, miro la descripción, no tenia registro y compro el producto. Para cada uno de los comportamientos en el sitio, entrenamos a la máquina con los datos y los resultados. Cuando un nuevo usuario accede a la página, podemos decirle al modelo cuál fue su comportamiento.
Así, el modelo es capaz de predecir si este nuevo usuario comprará o no. En este caso, al igual que con el envío, estamos pasando los datos y los resultados para entrenar nuestro algoritmo. Sin embargo, a diferencia de los demás, no estamos tratando de predecir un valor, sino una clasificación.
Estamos tratando de clasificar a un usuario basándonos en si va a comprar o no. Entonces, este tipo de algoritmo, que también es un algoritmo de aprendizaje supervisado, se llama algoritmo de clasificación.
Mientras que al algoritmo para calcular el flete se llama algoritmo de regresión. Estos dos tipos de algoritmos son los más conocidos y los más utilizados, algoritmos para el aprendizaje supervisado.
Todos estos algoritmos, como el aprendizaje automático en general, utilizan funciones matemáticas para entrenar los modelos. En nuestro primer ejemplo, podemos usar, la regresión lineal, mientras que para la clasificación, podemos usar el algoritmo de Naive Bayes.
¡Genial! Vimos cómo resolver dos de nuestros problemas. Ahora, descubramos cómo podemos agrupar a los clientes.
Mirando los algoritmos que conocemos, podríamos pensar que crear grupos de clientes es un problema de clasificación. De hecho, podemos aplicar la clasificación para crear grupos para nosotros, pero ¿qué grupos tendríamos?
¿Grupos de clientes que compran productos electrónicos? ¿Grupo de clientes hasta cuarenta años? ¿Grupo de clientes de cierta región? Podemos usar estos criterios para enviar correos electrónicos especiales a cada uno de ellos, pero ¿será que esto es todo lo que ellos tienen en común?
Cabe la posibilidad de que tal vez no todos los clientes que compran productos electrónicos o los clientes que viven en una determinada región tengan gustos similares.
Pero entonces, ¿cómo podemos agrupar a los clientes? Vimos que podemos ordenar nuestros datos, pero esto podría generar grupos que no se acerquen mucho a lo que queremos. ¿Qué sucede si, en lugar de que nosotros creemos los grupos, le decimos al modelo que agrupe los datos de la manera que mejor le parezca?
Así, a través del algoritmo implementado, el modelo asocia un dato con otro y crea los grupos.
A diferencia de la clasificación, solo estamos pasando los datos y no los resultados al modelo. Es decir, no estamos supervisando el aprendizaje, por lo que decimos que este es un algoritmo de aprendizaje no supervisado.
A diferencia del aprendizaje supervisado, en este tipo de aprendizaje no pasamos los resultados para enseñar el algoritmo. El algoritmo en sí toma el conjunto de datos y descubre cómo trabajar con ellos. Los tipos de algoritmos más utilizados en este tipo de aprendizaje son el agrupamiento o análisis de grupos y las reglas de asociación. Un ejemplo es los K-Means o K-medias.
Además de este tipo de algoritmos, también existen los llamados aprendizaje por refuerzo. En él la máquina interactúa con el entorno.
Esta interacción genera retroalimentación positiva o negativa. Si es un feedback positivo, la máquina registra que puede volver a realizar esa acción, en caso de ser un feedback negativo, el modelo sabe que no puede volver a realizarla. Esa fue una breve introducción sobre el tema del aprendizaje automático. Para cada conjunto de datos, podemos aplicar diferentes algoritmos y modelos para lograr los mejores resultados.
Aquí en Alura Latam tenemos la formación Machine Learning. En ella, aprenderás los algoritmos de clasificación y los algoritmos no supervisados. Sobre procesamiento de lenguaje natural, validación y optimización de modelos. Además de sistemas de recomendación y redes neuronales.
Yuri Matheus
Yuri es desarrollador e instructor. Es estudiante de Sistemas de Información en la FIAP y se formó como Técnico en Computación en el Senac SP. Su enfoque está en las plataformas Java y Python y otras áreas como la arquitectura de software y el aprendizaje automático. Yuri también trabaja como editor de contenido en el blog de Alura, donde escribe principalmente sobre Redes, Docker, Linux, Java y Python.
Cursos de Programación, Front End, Data Science, Innovación y Gestión.
Luri es nuestra inteligencia artificial que resuelve dudas, da ejemplos prácticos y ayuda a profundizar aún más durante las clases. Puedes conversar con Luri hasta 100 mensajes por semana
Paga en moneda local en los siguientes países
Cursos de Programación, Front End, Data Science, Innovación y Gestión.
Luri es nuestra inteligencia artificial que resuelve dudas, da ejemplos prácticos y ayuda a profundizar aún más durante las clases. Puedes conversar con Luri hasta 100 mensajes por semana
Paga en moneda local en los siguientes países
Puedes realizar el pago de tus planes en moneda local en los siguientes países:
País | |||||||
---|---|---|---|---|---|---|---|
Plan Semestral |
487.37
BOB |
69289.36
CLP |
307472.10
COP |
65.90
USD |
264.35
PEN |
1435.53
MXN |
2978.57
UYU |
Plan Anual |
738.82
BOB |
105038.04
CLP |
466107.17
COP |
99.90
USD |
400.74
PEN |
2176.17
MXN |
4515.32
UYU |
Acceso a todos
los cursos
Estudia las 24 horas,
dónde y cuándo quieras
Nuevos cursos
cada semana