UD00 · Notebook 1 — Bienvenida al entorno Python para IA¶
Este notebook comprueba que tu entorno de trabajo funciona y hace un primer contacto con las bibliotecas que usaremos durante todo el curso: numpy, pandas, matplotlib, scikit-learn, scikit-fuzzy, nltk, spaCy, torch y experta.
Puedes ejecutarlo en el contenedor de prácticas de la UD00 (taller 2) o en Google Colab.
Objetivos¶
- Comprobar que el entorno (local o Docker) tiene las bibliotecas del curso.
- Hacer un primer ejemplo con arrays (numpy), tablas (pandas) y gráficas (matplotlib).
- Entrenar un clasificador simple con scikit-learn.
- Guardar el notebook resuelto y entregarlo en Moodle.
import sys
print("Python", sys.version.split()[0])
import numpy
import pandas
import matplotlib
import sklearn
import skfuzzy
import nltk
import spacy
import torch
print("numpy", numpy.__version__)
print("pandas", pandas.__version__)
print("matplotlib", matplotlib.__version__)
print("scikit-learn", sklearn.__version__)
print("scikit-fuzzy", skfuzzy.__version__)
print("nltk", nltk.__version__)
print("spacy", spacy.__version__)
print("torch", torch.__version__)
1. Arrays con numpy¶
Un array es una estructura eficiente para trabajar con datos numéricos. Es la base de casi todas las librerías de IA.
import numpy as np
temperaturas = np.array([21.0, 22.5, 19.0, 24.0, 23.0])
print("Temperaturas:", temperaturas)
print("Media:", temperaturas.mean())
print("Máximo:", temperaturas.max())
cuadrados = np.arange(1, 6) ** 2
print("Cuadrados:", cuadrados)
2. Tablas con pandas¶
Un DataFrame es una tabla con filas y columnas. Es la forma estándar de manejar datos en IA (veremos la DataFrame en todas las unidades).
import pandas as pd
datos = pd.DataFrame({
"día": ["lun", "mar", "mié", "jue", "vie"],
"temperatura": [21.0, 22.5, 19.0, 24.0, 23.0],
"ventas": [120, 135, 98, 152, 141],
})
datos
print(datos.describe())
print()
print("Ventas medias por día par/impar:")
print(datos.groupby(datos["día"].str.len()).ventas.mean())
3. Gráfica con matplotlib¶
Visualizar los datos es el primer paso de cualquier análisis. La gráfica debe llevar título y etiquetas.
import matplotlib.pyplot as plt
plt.figure(figsize=(6, 3))
plt.plot(datos["día"], datos["temperatura"], marker="o")
plt.title("Temperatura de la semana")
plt.xlabel("Día")
plt.ylabel("Temperatura (°C)")
plt.grid(True)
plt.show()
4. Primer modelo con scikit-learn¶
Entrenamos un clasificador sencillo: dado un punto (x, y), predecir si está por encima o por debajo de la línea y = x. Es un ejemplo de aprendizaje supervisado, que veremos con detalle en la UD02.
import numpy as np
from sklearn.tree import DecisionTreeClassifier
rng = np.random.default_rng(42)
X = rng.uniform(-2, 2, size=(200, 2))
y = (X[:, 1] > X[:, 0]).astype(int)
# Sin limitar la profundidad: el árbol crece hasta memorizar los datos de entrenamiento
modelo = DecisionTreeClassifier(random_state=42)
modelo.fit(X, y)
print("Precisión:", modelo.score(X, y))
print("Predicción para (0.5, 1.0):", modelo.predict([[0.5, 1.0]]))
5. Actividad¶
Responde en celdas Markdown del propio notebook:
- ¿Qué bibliotecas faltaban en tu entorno (si alguna)? ¿Cómo las instalarías?
- Añade a la tabla
datosuna columnahumedadcon valores inventados y pinta la temperatura y la humedad en la misma gráfica con dos ejes. - ¿Qué significa que el modelo anterior tiene precisión 1.0 sobre los mismos datos con los que se entrenó? ¿Es una buena medida del rendimiento? (Pista: en la UD02 hablaremos de sobreajuste.)
Entrega: guarda este notebook con tus respuestas y súbelo a Moodle. Se marca como hecho / no hecho: no lleva nota, pero es la prueba de que tu entorno funciona, y es requisito para las prácticas de las unidades siguientes.
print("¡Entorno de IA listo!")
Volver al material de la unidad
- Teoría de la UD00 — presentación y curso rápido de Docker
- Ejercicios de la unidad
- Taller 1 — Verificación del entorno y primer contenedor
- Taller 2 — Contenedor de prácticas de IA
Los enlaces son absolutos a propósito: este notebook también se abre en Colab y se descarga, donde las rutas relativas no funcionarían.