El Machine Learning es la práctica de programación de computadoras para aprender de los datos. En el ejemplo de arriba, el programa fácilmente podrá determinar si lo dado es importante o si es “spam” (correo electrónico no deseado). En el Machine Learning, los datos son conocidos como conjuntos de capacitación o ejemplos.
¿Por qué Machine Learning?
Asumamos que quisieras escribir el programa filtro sin usar métodos de Machine Learning. En este caso, tendrás que seguir los siguientes pasos:
Al principio, echarías un vistazo a lo cómo se ven los correos electrónicos no deseados. Podrías seleccionarlos por las palabras o frases que usan, como “tarjeta de debido”, “gratis”, y muchas más, y además de patrones que son usados en los nombres de los remitentes o en el cuerpo del correo.
.Segundo, escribirías un algoritmo para detectar los patrones que hayas visto, y luego el software indicaría los correo electrónicos como “no deseado” si un numero de esos patrones es encontrado.
Finalmente, probarías el programa, y reharías los primeros dos pasos hasta que los resultados sean suficientemente buenos.
Porque el programa no es software, contienen una lista muy larga de reglas que son difíciles de mantener. Pero si desarrollas el mismo software usando AA (Machine Learning), podrás mantenerlo adecuadamente.
Adicionalmente, los remitentes de los correos electrónicos pueden cambiar las plantillas de los correos para que una palabra como “4You” ahora sea “para ti”, ya que sus correos han sido determinados como “no deseados”. Los programas que usan técnicas tradicionales necesitarían ser actualizados, lo que significa que, si hubiese otros cambios, necesitarías actualizar tus códigos otra vez, otra vez, y otra vez.
Por otro lado, un programa que usa técnicas de AA automáticamente detectarán estos cambios hechos por los usuarios, y comenzará a indicarlos como “no deseados” sin la necesidad de que lo hagas manualmente.
Además, podemos usar AA para resolver problemas que son muy complejos los softwares que no usan AA. Por ejemplo, reconocimiento de discurso, cuando tú dices “uno” o “dos”, el programa debería poder distinguir la diferencia. Entonces, para esta tarea, deberás desarrollar un algoritmo que mide el sonudo.
Al final, el Machine Learning nos ayudará a aprender, y los algoritmos del Machine Learning nos puede ayudar a ver lo que hemos aprendidos.
¿Cuándo debemos usar Machine Learning?
- Cuando tengas un problema que requiera de largas listas de reglas para encontrar la solución. En este caso, las técnicas de Machine Learning pueden simplificar tu código y mejorar el desempeño.
- Problemas muy complejos para los que no haya solución con un enfoque tradicional.
- Ambientes no estables: softwares con Machine Learning se pueden adaptar a nuevos datos.
Tipos de Sistemas de Machine Learning
Hay diferentes tipos de sistemas de Machine Learning. Podemos dividirlos en categorías dependiendo si:
- Han sido capacitados con humanos o no
- Supervisado
- Sin supervisión
- Semi-supervisado
- Machine Learning de Refuerzo
- Si pueden aprender de forma incrementada
- Si pueden trabajar simplemente combinando nuevos puntos de datos, o si pueden detectar nuevos patrones en los datos, y luego construirán un modelo
Machine Learning Supervisado y Sin Supervisión
Podemos clasificar los sistemas de Machine Learning de acuerdo al tipo y a la cantidad de supervisión humana durante la capacitación. Podrás encontrar 4 categorías principales, como hemos explicado antes.
Machine Learning Supervisado
Machine Learning sin Supervisión
Machine Learning Semi-Supervisado
Machine Learning de Refuerzo
Machine Learning Supervisado
En este tipo de sistema de Machine Learning los datos con que tu alimentas el algoritmo, con la solución deseada, son referidos como “labels” (etiquetas).
El Machine Learning supervisado agrupa tareas de clasificación. El programa de arriba es un buen ejemplo de esto porque ha sido capacitado con muchos correos electrónicos al mismo tiempo que sus clases
Otro ejemplo es predecir un valor numérico como el precio de un apartamento, dados un numero de características (ubicación, número de habitaciones, instalaciones), llamados predictores; este tipo de tarea es llamado regresión.
Debes tener en cuenta que algunos algoritmos de regresión puden ser usados para clasificación también, y viceversa.
Los Algoritmos Supervisados Mas Importantes
K-nearest neighbors (KNN, vecinos más cercanos K)
Red Neural
Máquinas de soporte de vectores
Regresión logística
Arboles de decisiones y bosques aleatorios
Machine Learning No Supervisado
En este tipo de sistemas de Machine Learning, puedes suponer que los datos están sin etiqueta.
Los Más Importantes Algoritmos del Machine Learning No Supervisado
Agrupamiento (Clustering): Medios k, análisis de agrupamiento jerárquico
Machine Learning de Asociación de Regla: Eclat y A priori
Visualización y Reducción de Dimensionalidad: Núcleo PCA, distribuido de t PCA.
Como ejemplo, supongamos que tienes muchos datos en el uso visitante de uno de nuestros algoritmos para detecar grupos con visitantes similares. Podría encontrar que el 65% de tus visitantes son masculinos a quienes les encanta ver películas en las noches, mientras que el 30% ve obras en las noches; en este caso, usando un algoritmo de agrupamiento, dividirá cada grupo en sub grupos.