El algoritmo KNN y que alfajor serias
Si solo viniste para saber que alfajor sos, hace click aquí, te llevara al test, si queres saber mas, te recomendamos que pases por ahí, sigas las instrucciones y después retomes esta lectura, ¡Suerte!
Si viviste las antiguas épocas de facebook (épocas de pet society y no de los grupos de compra-venta) seguramente alguna vez te topaste con algún tipo de predictor que según algunos de tus gustos te decía que tan cercano a X objeto te pareces, como por ejemplo, una fruta, un auto, etc. Por lo general esos test tenían pocos resultados posibles, y su funcionamiento era muy básico. Por ejemplo si el test es "¿En que casa de Hogwarts estarías?", como habían 4 resultados posibles, las preguntas tenían 4 respuestas posibles, una que correspondía a cada casa, para el resultado final se sumaban las respuestas de cada una y se veía cual tenia más. A nosotros no nos gusta ese sistema por que es poco escalable y súper evidente, así que lo llevamos a otro nivel.
¿Entonces como lo hicieron? ¿Magia?
Para explicarlo de manera sencilla, nuestro test lo hicimos mediante un algoritmo denominado KNN (los k vecinos cercanos por sus siglas en ingles, sí, exacto, parecido a un barrio privado). Es un algoritmo del tipo de aprendizaje automático denominado supervisado, que se utiliza para predecir categorías; el objetivo de este, es poner una etiqueta basándose solamente en como son los vecinos de ese dato, en otras palabras funciona a base del "Dime con quien andas, y te diré quien eres..." (el algoritmo más pre-juicioso que existe).
Es de los algoritmos de clasificación más sencillos que hay, lo cual hace que, entendiéndolo bien y con un poco de maña, se pueda aplicarlo en excel.
Volviendo al test, para determinar que tipo de alfajor eres, realizamos una serie de preguntas, unas divertidas más que otras, para determinar en que zona de los alfajores se encuentran los datos que has ingresado, de esa forma podemos encontrar cual es tu alfajor vecino más cercano y decirte que pareces a un Guaymallen de fruta o a un Jorgito.
¿Como funciona KNN?
Podemos ver que hay zonas bien definidas para cada tipo de golosina. por lo que si nosotros solo conocemos el precio y cantidad de azúcar de una golosina, pero no sabemos que es, podemos agregarla en el gráfico y ver en que zona esta.
¿En que mas se utiliza este tipo de aprendizaje automático?
Es muy útil para varios campos profesionales, como en áreas de la salud, análisis para imágenes satelitales, finanzas, ciencias políticas, reconocimiento de algunas plantas y de vides, hasta puede ser aplicado en ambientes políticos complejos para clasificar los potenciales votantes de un posible candidato.
¿Qué tipo de alfajor sos?
Bueno ya esta, ahora si, a lo que vinieron, Alfajores. Explicaremos paso a paso (como la receta para hacer el alfajor) como hicimos este proceso.
Para todo el programa utilizamos el lenguaje Python, en Jupyter Notebooks, si no conoces de programación no te preocupes, te explicaremos paso a paso que fue lo que hicimos. Si conoces del tema, abajo esta nuestro código fuente.
Modelo de alfajor
Primeramente debimos modelar matemáticamente lo que es un alfajor, en otras palabras, ¿que características tiene un alfajor? Ademas del nombre y una pequeña descripción, le dimos 6 parámetros:
- Precio
- Rareza
- Popularidad
- Tamaño
- Pesadez
- Romanticismo
Cabe destacar que en nuestro caso buscamos atributos que de cierta forma puedan compartir los alfajores con las personas, por mas que tengan connotaciones distintas como lo que es ser "pesado" para una persona y un alfajor.
Preguntas Usuario
- ¿Eres una persona que se considere sociable o que tiene muchos amigos?
- ¿Te consideras una persona deportista?
- ¿Sos una persona romántica?
- ¿Que tanto te gustan los dulces?
- ¿Cuales son tus citas favoritas?
- ¿Gastas mucho o poco en ropa?
- ¿Cuánto medís?
- Etc...
Base de datos
Luego teníamos que tener alfajores para comparar, creamos la base de datos de alfajores, lo que fue una parte bastante engorrosa, no tomamos datos precisos de información nutricional de estos, ni de bases de datos de kioskos, ni nada de eso, utilizamos un método mucho más preciso e infalible, nuestro criterio.
Generamos una clase con los respectivos atributos (lo pueden ver arriba, en el link del test, si ponen para mostrar el código), para luego insertarlo en una lista que sea legible y comparable con los valores de entrada del usuario y, además, utilizable para el predictor.
Limpieza de datos
KNN
Problemas
Conclusiones
Este post tiene segunda parte
¿Ganas de mas?
¿Necesitas ayuda?
Podes hacer preguntas aca abajo en los comentarios o en nuestros perfiles de linkedin que puedes encontrar en este link.
Si estas buscando ayuda en proyectos grandes, nos podes contratar por medio de nuestra consultora haciendo click en este link
. Hacemos ingenieria electromecanica, civil, desarrollo de software y varias cosas mas.
Comentarios
Publicar un comentario