Advertisement
  1. Code
  2. Python

Introducción al aprendizaje automático en Python

Scroll to top
Read Time: 7 min

() translation by (you can also view the original English article)

El aprendizaje automático es el acto de dar a las computadoras la capacidad de aprender sin programarlas explícitamente. Esto se hace dando datos a las computadoras y haciendo que transformen los datos en modelos de decisión que luego se usan para predicciones futuras

En este tutorial, hablaremos sobre el aprendizaje automático y algunos de los conceptos fundamentales que se requieren para comenzar con el aprendizaje automático. También idearemos algunos ejemplos de Python para predecir ciertos elementos o eventos.

Introducción al aprendizaje automático

El aprendizaje automático es un tipo de tecnología que tiene como objetivo aprender de la experiencia. Por ejemplo, como ser humano, puedes aprender a jugar ajedrez simplemente observando a otras personas jugando al ajedrez. De la misma manera, las computadoras se programan proporcionándoles datos de los que aprenden y luego son capaces de predecir los elementos o condiciones futuros.

Digamos, por ejemplo, que desea escribir un programa que pueda determinar si un determinado tipo de fruta es una naranja o un limón. Es posible que le resulte fácil escribir un programa así y le dará los resultados requeridos, pero también puede encontrar que el programa no funciona de manera efectiva para grandes conjuntos de datos. Aquí es donde el aprendizaje automático entra en juego.

Hay varios pasos involucrados en el aprendizaje automático:

  1. Conjunto de datos
  2. filtrado de datos
  3. análisis de los datos
  4. entrenamiento de algoritmo
  5. prueba del algoritmo
  6. usando el algoritmo para predicciones futuras

El aprendizaje automático utiliza diferentes tipos de algoritmos para encontrar patrones, y estos algoritmos se clasifican en dos grupos:

  • aprendizaje supervisado
  • aprendizaje sin supervisión

Aprendizaje supervisado

El aprendizaje supervisado es la ciencia de entrenar una computadora para reconocer elementos al proporcionarle datos de muestra. La computadora aprende de ella y puede predecir los conjuntos de datos futuros en función de los datos aprendidos.

Por ejemplo, puede entrenar a una computadora para filtrar los mensajes de correo basura según la información pasada.

El aprendizaje supervisado se ha utilizado en muchas aplicaciones, p. Facebook, para buscar imágenes basadas en una cierta descripción. Ahora puede buscar imágenes en Facebook con palabras que describan el contenido de la foto. Dado que el sitio de redes sociales ya tiene una base de datos de imágenes subtituladas, puede buscar y combinar la descripción con las características de las fotos con cierto grado de precisión.

Solo hay dos pasos involucrados en el aprendizaje supervisado:

  • formación
  • pruebas

Algunos de los algoritmos de aprendizaje supervisado incluyen:

  • árboles de decisión
  • máquinas de vectores de soporte
  • Naive Bayes
  • k-vecino más cercano
  • regresión lineal

Ejemplo

Vamos a escribir un programa simple para demostrar cómo funciona el aprendizaje supervisado utilizando la biblioteca Sklearn y el lenguaje Python. Sklearn es una biblioteca de aprendizaje automático para el lenguaje de programación Python con una gama de características tales como análisis múltiples, regresión y algoritmos de agrupamiento.

Sklearn también interactúa bien con las bibliotecas NumPy y SciPy.

Instalar Sklearn

La guía de instalación de Sklearn ofrece una forma muy sencilla de instalarlo para múltiples plataformas. Requiere varias dependencias:

  • Python (>= 2.7 o >= 3.3),
  • NumPy (>=1.82)
  • SciPy (>=0.13.3)

Si ya tiene estas dependencias, puede instalar Sklearn de la siguiente manera:

1
pip install -U scikit-learn

Una forma más fácil es simplemente instalar Anaconda. Esto se encarga de todas las dependencias para que no tenga que preocuparse de instalarlas una a una.

Para comprobar si Sklearn se está ejecutando correctamente, simplemente impórtelo desde un intérprete de Python de la siguiente manera:

1
import sklearn

Si no ocurre ningún error, entonces estás listo para ir.

Ahora que hemos terminado con la instalación, volvamos a nuestro problema. Queremos poder diferenciar entre diferentes animales. Entonces, diseñaremos un algoritmo que pueda determinar específicamente si un animal determinado es un caballo o un pollo.

Primero tenemos que recopilar algunos datos de muestra de cada tipo de animal. Algunos datos de muestra se muestran en la tabla a continuación.

Altura (pulgadas) Peso (kg)
Temperatura (Celsius)
Designacion
7
0.6
40 Pollo (0)
7
0.6 41
Pollo (0)
37
0.8 37
Caballo (1)
37
0.8 38
Caballo (1)

Los datos de muestra que hemos obtenido proporcionan algunas de las características comunes de los dos animales y los datos de dos de los animales. Mientras más grande sea la información de muestra, más precisos y menos tendenciosos serán los resultados.

Con este tipo de datos, podemos codificar un algoritmo y entrenarlo para reconocer un animal en función de los valores entrenados y clasificarlo como un caballo o un pollo. Ahora seguiremos adelante y escribiremos el algoritmo que hará el trabajo.

Primero, importe el módulo de árbol desde Sklearn.

1
from sklearn import tree

Define las características que quieres usar para clasificar a los animales.

1
features = [[7, 0.6, 40], [7, 0.6, 41], [37, 600, 37], [37, 600, 38]]

Define la salida que dará cada clasificador. Una gallina estará representada por 0, mientras que un caballo estará representado por 1.

1
#labels = [chicken, chicken, horse, horse]

2
# we use 0 to represent a chicken and 1 to represent a horse

3
labels = [0, 0, 1, 1]

Luego definimos el clasificador que se basará en un árbol de decisión.

1
classifier = tree.DecisionTreeClassifier()

Alimente o ajuste sus datos al clasificador.

1
classifier.fit(features, labels)

El código completo para el algoritmo se muestra a continuación.

1
from sklearn import tree
2
features = [[7, 0.6, 40], [7, 0.6, 41], [37, 600, 37], [37, 600, 38]]
3
#labels = [chicken, chicken, horse, horse]

4
labels = [0, 0, 1, 1]
5
classif = tree.DecisionTreeClassifier()
6
classif.fit(features, labels)

Ahora podemos predecir un conjunto dado de datos. A continuación se explica cómo predecir un animal con una altura de 7 pulgadas, un peso de 0.6 kg y una temperatura de 41:

1
from sklearn import tree
2
features = [[7, 0.6, 40], [7, 0.6, 41], [37, 600, 37], [37, 600, 38]]
3
#labels = [chicken, chicken, horse, horse]

4
labels = [0, 0, 1, 1]
5
classif = tree.DecisionTreeClassifier()
6
classif.fit(features, labels)
7
8
print classif.predict([[7, 0.6, 41]])
9
10
#output

11
# [0]  or a Chicken

A continuación se explica cómo predecir un animal con una altura de 38 pulgadas, un peso de 600 kg y una temperatura de 37.5:

1
from sklearn import tree
2
features = [[7, 0.6, 40], [7, 0.6, 41], [37, 600, 37], [37, 600, 38]]
3
#labels = [chicken, chicken, horse, horse]

4
labels = [0, 0, 1, 1]
5
classif = tree.DecisionTreeClassifier()
6
classif.fit(features, labels)
7
8
print classif.predict([[38, 600, 37.5]])
9
10
# output

11
# [1]  or a Horse

Como puede ver arriba, ha entrenado el algoritmo para aprender todas las características y nombres de los animales, y el conocimiento de estos datos se usa para probar nuevos animales.

Aprendizaje sin supervisión

El aprendizaje no supervisado es cuando entrena su máquina con solo un conjunto de entradas. La máquina podrá entonces encontrar una relación entre los datos de entrada y cualquier otra que desee predecir. A diferencia del aprendizaje supervisado, en el que presenta una máquina con algunos datos para entrenar, el aprendizaje no supervisado pretende hacer que la computadora encuentre patrones o relaciones entre diferentes conjuntos de datos.

El aprendizaje no supervisado se puede subdividir en:

  • agrupamiento
  • asociación

Agrupación: Agrupación significa agrupar datos inherentemente. Por ejemplo, puede clasificar los hábitos de compra de los consumidores y utilizarlos para publicidad al dirigirse a los consumidores en función de sus compras y hábitos de compra.

Asociación: Asociación es donde identifica las reglas que describen grandes conjuntos de sus datos. Este tipo de aprendizaje puede ser aplicable al asociar libros basados ​​en el autor o la categoría, ya sean libros motivacionales, ficticios o educativos.

Algunos de los algoritmos de aprendizaje populares no supervisados ​​incluyen:

  • k-means clustering
  • agrupación jerárquica

El aprendizaje no supervisado será una tecnología importante en el futuro cercano. Esto se debe al hecho de que hay una gran cantidad de datos no filtrados que aún no se han digitalizado.

Conclusión

Espero que este tutorial te haya ayudado a comenzar con el aprendizaje automático. Esto es solo una introducción: el aprendizaje automático tiene mucho que cubrir, y esto es solo una fracción de lo que el aprendizaje automático puede hacer.

Además, no dude en ver lo que tenemos disponible para la venta y para estudiar en el Mercado de Envato, y no dude en hacer cualquier pregunta y brindar sus valiosos comentarios utilizando el siguiente feed.

Su decisión de utilizar un algoritmo de aprendizaje automático supervisado o no supervisado dependerá de varios factores, como la estructura y el tamaño de los datos.

El aprendizaje automático se puede aplicar en casi todas las áreas de nuestras vidas, p. en prevención de fraude, personalización de noticias en los sitios de redes sociales para adaptarse a las preferencias de los usuarios, filtrado de correo electrónico y malware, predicciones meteorológicas e incluso en el sector de comercio electrónico para predecir los hábitos de compra del consumidor.

Advertisement
Did you find this post useful?
Want a weekly email summary?
Subscribe below and we’ll send you a weekly email summary of all new Code tutorials. Never miss out on learning about the next big thing.
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.