Tutorial de aprendizaje automático

El aprendizaje automático (Machine Learning) es una rama de la inteligencia artificial (IA) que permite a los sistemas informáticos aprender automáticamente y mejorar su rendimiento utilizando datos y algoritmos.

El aprendizaje automático hace que las máquinas tomen decisiones y predicciones a través de la experiencia (datos).

El aprendizaje automático se ha aplicado ampliamente en muchos campos, incluidos sistemas de recomendación, reconocimiento de imágenes, reconocimiento de voz, análisis financiero, etc.

Por ejemplo, mediante el aprendizaje automático, los automóviles pueden aprender a reconocer señales de tráfico, peatones y obstáculos para lograr la conducción autónoma.


Diferencias entre el aprendizaje automático y la programación tradicional

Programación tradicional Aprendizaje automático
Los programadores escriben reglas explícitas La computadora aprende reglas a partir de los datos
Apto para casos con problemas claros y reglas bien definidas Apto para casos complejos donde las reglas son difíciles de definir
Ejemplo: escribir un programa de calculadora Ejemplo: escribir un programa para detectar correo no deseado


Los tres elementos clave del aprendizaje automático

El aprendizaje automático incluye tres elementos básicos:

1. Datos

Los datos son el combustible del aprendizaje automático; cuantos más datos de mayor calidad se tengan, normalmente mejor puede aprender el modelo.

  • Datos de entrenamiento: datos utilizados para enseñar al modelo
  • Datos de prueba: datos utilizados para verificar el efecto de aprendizaje del modelo
  • Datos reales: nuevos datos que el modelo encuentra en aplicaciones reales

2. Algoritmos

Los algoritmos son los métodos de aprendizaje del aprendizaje automático; diferentes algoritmos son adecuados para diferentes tipos de problemas.

  • Aprendizaje supervisado: aprendizaje con respuestas estándar
  • Aprendizaje no supervisado: sin respuestas estándar, busca patrones por sí mismo
  • Aprendizaje por refuerzo: aprender a través de prueba y error y recompensas

3. Modelo

El modelo es el resultado del aprendizaje, como el conocimiento que adquiere un estudiante.

  • Proceso de entrenamiento: el algoritmo aprende patrones de los datos
  • Proceso de inferencia: usar los patrones aprendidos para hacer predicciones

Ejemplo

A continuación, entenderemos el flujo básico del aprendizaje automático mediante un ejemplo sencillo.

Usaremos Python para crear un modelo simple de regresión lineal para predecir precios de viviendas.

Ejemplo

# Importar las bibliotecas necesarias
import numpy as np
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression
import seaborn as sns

# Establecer el estilo del gráfico para que se vea mejor
sns.set_style("whitegrid")
# -------------------------- Inicio de configuración de fuente china --------------------------
plt.rcParams['font.sans-serif'] = [
    # Windows primero
    'SimHei', 'Microsoft YaHei',
    # macOS primero
    'PingFang SC', 'Heiti TC',
    # Linux primero
    'WenQuanYi Micro Hei', 'DejaVu Sans'
]
# Corregir el problema de que el signo negativo se muestre como un cuadrado
plt.rcParams['axes.unicode_minus'] = False
# -------------------------- Fin de configuración de fuente china --------------------------

# 1. Preparar los datos
# Supongamos que tenemos datos de área de vivienda y sus precios correspondientes
# Área de la vivienda (metros cuadrados)
house_sizes = np.array([50, 60, 70, 80, 90, 100, 110, 120]).reshape(-1, 1)
# Precio de la vivienda (diez mil yuanes)
house_prices = np.array([150, 180, 210, 240, 270, 300, 330, 360])

# 2. Crear y entrenar el modelo
# Crear el modelo de regresión lineal
model = LinearRegression()
# Entrenar el modelo con los datos (aprender la relación entre área y precio)
model.fit(house_sizes, house_prices)

# 3. Usar el modelo para hacer predicciones
# Predecir el precio de una vivienda de 85 metros cuadrados
predicted_price = model.predict([[85]])
print(f"Precio previsto para una vivienda de 85 metros cuadrados: {predicted_price)

# 4. Visualizar los resultados
plt.scatter(house_sizes, house_prices, color='blue', label='Datos reales')
plt.plot(house_sizes, model.predict(house_sizes), color='red', label='Línea de predicción')
plt.scatter([85], predicted_price, color='green', s=100, label='Punto de predicción')
plt.xlabel('Área de la vivienda (metros cuadrados)')
plt.ylabel('Precio de la vivienda (diez mil yuanes)')
plt.title('Prueba de aprendizaje automático de EJEMPLO -- Relación entre área y precio de la vivienda')
plt.legend()
plt.grid(True)
plt.show()

Resultado de la ejecución:

85 平方米的房屋预测价格:255.00 万元

Este ejemplo muestra el flujo básico del aprendizaje automático:

  1. Preparar los datos (área y precio de la vivienda)
  2. Seleccionar el algoritmo (regresión lineal)
  3. Entrenar el modelo (hacer que la computadora aprenda la relación entre área y precio)
  4. Usar el modelo para predecir (predecir el precio de una nueva área)

El gráfico de salida es el siguiente:

Otras extensiones