Hola ingeniero, científico, nerd o friki! Algo me dice que este artículo solamente va a ser leído por gente medio rara :p ¿Que por qué lo digo? Bueno porque hoy vamos a hablar del machine learning conocido en Latam y España como aprendizaje automático.
La finalidad de este artículo no es que te conviertas en experto en el aprendizaje automático, sino que puedas entender hacía donde va el estudio del machine learning, si ya estudiaste un poco del tema en libros o en clase, seguramente estés un poco agobiado por la complejidad del tema.
Esto es lo que vas a aprender
Definición de machine learning
No dejes que las definiciones de machine learning te confundan, la mayoría son meros formalismos para un tema que llega a ser más practico de lo que te imaginas. Te vas a encontrar muchas definiciones en Internet hechas por científicos locos y hasta por matemáticos, pero te lo voy a poner así:
El machine learning no es otra cosa que hacer que las maquinas ejecuten acciones sin que tengas que programar el acto, es decir, que a partir de lo que este sucediendo en el ambiente, la maquina o computadora pueda tomar la decisión de hacer tal o cual cosa.
Si quieres entender a lo que me refiero (y además pasar un buen rato) sin tantas complicaciones, te recomiendo ver una película que habla sobre como las maquinas pueden aprender, durante toda la película se toca el tema de cómo una maquina toma decisiones, a partir de las cosas que va aprendiendo, me refiero a «Chappie» (está muy exagerada, pero el punto ahí está).
Explicación nada formal del aprendizaje automático
Los matemáticos y científicos hacen cada vez más y más difícil el aprendizaje de temas que llegan a ser muy útiles (todos quieren parecer muy inteligentes). Cuando comencé a estudiar este tema, me sentía profundamente confundido, y es que según yo, era bueno en matemáticas, pero siempre desprecié el área de la probabilidad y estadística porque no les veía ningún uso practico.
En parte porque no me importaba en lo absoluto saber de que lado iba a caer la moneda si Pepito la lanzaba tres veces, dado que su hermana estaba embarazada, estos «ejemplos» y «ejercicios» no sirven para nada.
En su forma más básica, se trata de hacer que las maquinas aprendan, no te confundas, para que puedan aprender es necesario darles información, a esos datos se les llama «datos de entrenamiento», una vez que lo entrenas puedes clasificar tus datos.
Para que entiendas lo que te quiero decir imagina lo siguiente: tienes un amigo llamado Juan. Juan nunca hace ejercicio, todos los días consume refresco, nunca come verduras, toma mucho café y siempre cena tarde, lo anterior le ha ocasionado sobrepeso y diabetes… Si sigues los mismos hábitos que juan, ¿Qué crees que te va a pasar a ti? Exacto, te va a dar diabetes.
Por ejemplo si una persona tiene cáncer y quieres saber si es benigno, a partir del tamaño del tumor y de la edad del paciente puedes saberlo, si le haces un estudio a esa persona y comparas los resultados con otras mil personas que tuvieron cáncer, es posible determinar si el tumor es maligno. ¿Cómo? Muy fácil, si el tumor tiene las mismas características que otros 200 pacientes, y esos pacientes resultaron con cáncer maligno, pues es muy probable que el de ese paciente también lo sea.
Ejemplo vago del machine learning
Durante alguna parte en mi vida de emprendedor tuve que dedicarme a las ventas, y te puedo decir que ha sido una de las experiencias más duras por las que he pasado, pero aprendí mucho, y después de pensar durante más de 2 minutos qué ejemplo te podía mostrar, elegí uno que me hubiera facilitado mucho la vida de conocer un poquito de machine learning.
Supongamos que tienes un negocio de bienes raíces, como bien sabes, en este tipo de negocios el proceso de venta es mucho más largo que si vendieras una tostadora o un libro, por lo que los vendedores pueden tardar semanas procurando al prospecto, tú previamente has vendido más de 50 casas y ademas les has hecho un cuestionario con el que puedes saber una serie de datos que te ayudan a saber el estatus de la persona.
Aprendizaje automático for dummies
Imaginemos que una persona «interesada» en realizar una compra llega a tu tienda, y como no nos gusta perder tiempo, queremos saber rápidamente si es un preguntón.
Después de realizar el cuestionario sus respuestas son del tipo, tengo 30 años (adulto), con ingresos medios, obvio no es estudiante y su crédito es regular, rápidamente te vas a la tabla revisas si alguno coincide (el id 3 coincide) y si lo hace puedes estar seguro que las probabilidades de que cierres el trato son mayores, incluso pudieras tener un plan de acción para cada tipo de comprador, dependiendo las características de la tabla.
Bueno, esto que acabamos de hacer de forma «manual» es posible automatizarlo con el algoritmo de Naive Bayes (en machine learning hay muchos más), no necesitas tener una tabla con 50,000 datos, sino que la información que tienes te permite entrenar al algoritmo para que determine si la persona te va a comprar o no.
Es decir que respondiendo cuatro preguntas hacemos unos cálculos con la información de la tabla, que nos arrojan como resultado la probabilidad de que esa persona se convierta en tu cliente. Se trata de simplemente entrenar a la maquina con la información que tienes, para después asignarle una clasificación, en el ejemplo dicha clasificación es si la persona te compra o no
¿Qué se necesita para comenzar?
No te voy a mentir, el machine learning no es un tema fácil, y más cuando no tienes una preparación previa.
Para entenderlo es necesaria una preparación (a nivel medio avanzada) en probabilidad y estadística, y si lo que quieres es hacer aplicaciones, pues tienes que saber programar sí o sí.
Soy de la idea de que se aprende mejor haciendo, por lo que te recomiendo que aprendas a programar a través del desarrollo de algoritmos, hay mucha documentación sobre esto en Internet, los lenguajes de programación más populares en este tema son python y matlab.