Machine Learning Resumen 1 2 3 4 5
Machine Learning Resumen 1 2 3 4 5
Machine Learning Resumen 1 2 3 4 5
El machine learning o aprendizaje automático es una disciplina científica del ámbito de la inteligencia
artificial que se encarga de generar algoritmos que tienen la capacidad de aprender automáticamente. Aprender en este
contexto quiere decir identificar patrones complejos de millones de datos. La máquina que realmente logra aprender
es un algoritmo que revisa los datos y es capaz de predecir comportamientos futuros. Automáticamente, también en
este contexto, implica que estos sistemas se mejoran de forma autónoma con el tiempo, sin intervención humana.
Esto nos sirve para que no tengamos que programarlos de manera explícita, es decir no se necesita estar en
una computadora pensando todas las cosas que pueden pasar para hacer un programa, simplemente se alimenta un
algoritmo con una gran cantidad de datos y que el algoritmo aprenda y sepa hacer que hacer en cada ocasión.
Debido a las facilidades de acceso a las nuevas tecnologías, y las herramientas que simplifican la generación
y obtención de datos, la cantidad de información que es generada actualmente en las empresas se está incrementando
de forma exponencial. Extraer información valiosa de ellos supone una ventaja competitiva que no se puede
menospreciar. Como es bien sabido existen un sin fin de empresas y organismos que han apostado por invertir en
tecnologías big data y ahora estamos mucho más preparados para manejar esas grandes cantidades de datos, por lo
cual la pregunta es ¿Cómo los podemos explotar? Pues machine learning es una de las apuestas en el mercado actual.
A medida que crece en popularidad y resultados, el sacar partido a partir de los datos, es una tarea cada vez
más simple. Por lo cual, al tener datos bien estructurados, o limpios, para luego incrustarlos en las tecnologías más
adecuadas y seleccionar los análisis propicios, es posible generar modelos de comportamiento para analizar datos de
mayor volumen y complejidad. El resultado final son predicciones de un alto valor que permitirán tomar mejores
decisiones y así desarrollar planes de trabajo enfocados a metas puntuales.
El reto de sacar partido de los datos se ha simplificado enormemente. El machine learning de hoy no es como
antes. Esto quiere decir que con datos de calidad, tecnologías adecuadas y análisis propicios es posible actualmente
crear modelos de comportamiento para analizar datos de gran volumen y complejidad. El resultado: predicciones de
alto valor para tomar mejores decisiones y desarrollar mejores acciones de negocio. Además, la capacidad de computo
ha crecido demasiado y también hace peso a la hora de apostar por el machine learning.
El siguiente es un ejemplo de Machine Learning aplicado a una empresa. Una empresa de telefonía necesita
saber qué clientes están en “peligro” de darse de baja de sus servicios para tomar cartas en el asunto y evitarlo. La
pregunta es…
¿Cómo van a lograrlo? Al ser una empresa que tiene muchos años en el mercado tiene todos los datos de los
clientes, pero actualmente solo los tienen ahí en las bases de datos sin sacarle mucho provecho a toda esa gran
información. Es con estos mismos datos con los que la empresa va a saber que clientes están por darse de baja y tomar
acciones al respecto. Aquí es donde entra machine learning
El histórico de datos de la cantidad de clientes, organizada de una forma adecuada y tratados por paquetes,
producen una base de datos que tiene la posibilidad de aprovecharse para predecir comportamientos a futuro,
seleccionar aquellos métodos que mejoran la probabilidad de alcance de las metas del negocio y evitar las prácticas
que son nocivas para el mismo.
Esa cantidad ingente de datos son imposibles de analizar por una persona para sacar conclusiones y menos
todavía para hacer predicciones. Los algoritmos en cambio sí pueden detectar patrones de comportamiento contando
con las variables que le proporcionamos y descubrir cuáles son las que han llevado, en este caso, a darse de baja como
cliente. Actualmente, este es solo uno, de los miles usos que le podemos dar al machine learning.
Estos son algunos ejemplos más:
• Mejores horarios para ofrecer productos y servicios
• Detectar intrusiones en sistemas
1
¿Qué es Machine learning?
Aprendizaje supervisado
El aprendizaje supervisado tenemos un conocimiento anterior que nos ayudara a entender los datos cuando lleguen.
Así podremos tomar decisiones o hacer predicciones. Ejemplo de ello son los sistemas anti spam y diagnosticar
enfermedades.
Es cuando entrenamos un algorit mo de machine learning dándole las preguntas y las respuestas. A las preguntas les
vamos a llamar características y a las respuestas las vamos a llamar etiquetas. Dentro del aprendizaje supervisado
tenemos 2 clases de algoritmos o entrenamientos: Regresión y Clasificación
Aprendizaje no supervisado
En el aprendizaje no supervisado no tiene una experiencia previa para analizar datos. En esta categoría se buscan más
los patrones. Dentro de este grupo se clasificarían los análisis de científicos de datos. Lo único con que alimentamos
a los algoritmos de este tipo son las características, no las etiquetas. Lo que se busca en este aprendizaje es que el
algoritmo agrupe la información o data según sus características.
En la siguiente imagen podemos ver más claro un poco el flujo de lo que llamamos los principios de machine learning.
Los datos llegan al modelo que previamente seleccionamos y se hace la predicción y el proceso se repite:
En la programación tradicional, tenemos un problema y usamos como entrada unos datos, un programa que
implementamos y a través de la ejecución del ordenador tenemos una salida. Con machine learning las entradas son los
datos y la salida que ya conocemos a partir de esos datos, es decir las respuestas a nuestras preguntas. La ejecución en la
computadora, la ejecución del modelo, el aprendizaje que se va produciendo, es lo que nos sirve como programa y
salidas a su vez.
2
¿Qué es Machine learning?
Programación Tradicional
Como ya se mencionó en el curso los algoritmos de machine learning se dividen en aprendizaje supervisado y no
supervisado. Vamos a revisarlos con más detalle aquí.
Aprendizaje supervisado
1. Classification o clasificación
El objetivo de este tipo de problemas es predecir una categoría de una nueva observación.
Basados en observaciones anteriores de como el input o valores de entrada son mapeados con el output o valores de
salida la clasificación trata de estimar un clasificador que puede generar un output o valores de salida de cualquier input
o valores de entrada. Un clasificador debe poder etiquetar un dato no visto o conocido con una clase.
El output o valores de salida siempre con cualitativos. Las posibles aplicaciones de clasificación son muy variadas por
ejemplo después de realizar un conjunto de exanimaciones clínicas que están relacionadas los signos vitales con las
enfermedades tu pudieras predecir si un nuevo paciente con un informe de signos vitales no visto sufre alguna
enfermedad y su posible tratamiento. Las clases en este ejemplo son enfermo y no enfermo.
Otro ejemplo de clasificación es clasificar un conjunto de imágenes de animales en gatos, perros y caballos una vez tu
entrenaste a tu modelo con un montón de imágenes de la cual tu sabes cual animal es. Las clases en este ejemplo son
gatos, perros y caballos.
2. Regression o regression
Este es un tipo de problema de machine learning que intenta predecir una línea continua o valor acreditado de un input o
valor de entrada basada en información previa. Las variables de entrada son llamadas predictors y el output se llama
response o respuesta.
En algún sentido regresión es muy similar a clasificación donde estas tratando de estimar una función que mapea el input
(entrada) con el output (salidas) basado en observaciones anteriores pero esta vez tu estas tratando de estimar el valor
actual, no solo la clase de una observación.
3
¿Qué es Machine learning?
Un ejemplo muy claro es que tenemos un dataset (conjunto de datos) de un grupo de personas, que tiene la altura y el
peso de cada una, preguntas validas serian ¿si existe una relación entre la altura y el peso? ¿Puedes predecir la altura de
una nueva persona conociendo su peso? Estas preguntas pueden ser contestadas al realizar una regresión sobre los datos.
Aprendizaje no supervisado
En clustering o agrupación estamos tratando de agrupas objetos que son similares en clusters o grupos asegurándonos
que los clusters no son similares entre ellos.
Podemos tomar de nuevo el ejemplo del grupo de imágenes de animales, en el caso de clustering tú no sabes cuales
animales están ahí pero clustering agrupara imágenes similares en clusters.
Crear una sección llamada: Herramientas de machine learning y añadir el siguiente contenido:
Python se ha vuelto en un lenguaje de programación muy utilizado para las matemáticas, la ciencia y las estadísticas
debido a su fácil implementación y la gran cantidad de librerías disponibles para cualquier aplicación.
Scikit learn fue construido con algunos de los paquetes con los que ya se cuenta en Python
• NumPy, SciPy, Matplotlib – para trabajos de matemáticas y ciencia. Este kit está disponible bajo licencia BSD
y está listo para ser usado.
• Proyecto: http://scikit-learn.org/stable/
• GitHub: https://github.com/scikit-learn/scikit-learn
4
¿Qué es Machine learning?
Shogun
Probablemente uno de los más antiguos. Se creó en 1999 y fue escrito en C++.
Gracias a la librería SWIG, se puede utilizar en lenguajes como Java, Python, C#, Ruby, R, Lua, Octave y Matlab.
• Proyecto: http://www.shogun-toolbox.org/
• GitHub: https://github.com/shogun-toolbox/shogun
Mahout
Corre sobre y fuera de Hadoop. Algunos de los algoritmos soportan el alto desempeño de Spark en vez del cada vez
menos utilizado MapReduce.
• Proyecto: http://www.shogun-toolbox.org/
5
¿Qué es Machine learning?
MLlib (Spark)
Apache tiene su propia librería de machine learning para Sparl y Hadoop, MLlib está diseñado para correr con
velocidad y en ambientes escalables. Como siempre es esperado en proyectos Apache, java es el lenguaje
primario para trabajar con MLlib pero también es posible conectarse con Python y Scala.
• Proyecto: https://spark.apache.org/mllib/
H20
Los algoritmos H20 son mas bien para correr en procesos de negocios – Fraudes, tendencias, predicciones- en
vez de voz, imagen o análisis. Puede interactuar solo, corriendo en YARN, MapReduce, o en instancias de
Amazon EC2.
• Proyecto: https://www.h2o.ai/h2o/
• GitHub: https://github.com/h2oai/h2o-2
6
¿Qué es Machine learning?
Cloudera Oryx
Es otro proyecto de machine learning, diseñado para Hadoop, es cortesía de los creadores de Cloudera
Hadoop distribution. Oryx está diseñado para ser distribuido en streams de datos en tiempo real.
GoLearn
El lenguaje de Google, Go, ha estado en el Mercado por cerca de 5 años. GoLearn fue creado para compensar
la falta de librerías de machine learning en Go.
Proyecto: GoLearn
• GitHub: https://github.com/sjwhitworth/golearn
WEKA
Es un producto de la universidad de Waikato, Nueva Zelanda, que colecciona una serie de algoritmos de machine
learning en Java para Data Mining.
• Proyecto: https://spark.apache.org/mllib/https://spark.apache.org/mllib/