0Pricing
Learn AI with Python · Lección

Almacenamiento y consulta de resultados de machine learning

Persistencia de predicciones de modelos, registros de experimentos y datos de características en bases de datos relacionales.

Almacenamiento y consulta de resultados de machine learning es una lección gratuita de Learn AI with Python en CoddyKit. Esta es la lección 3 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Learn AI with Python, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Learn AI with Python incluye 4 lecciones en total.

Seguimiento de experimentos de ML

Al entrenar modelos, produce docenas de ejecuciones con configuraciones y puntuaciones diferentes. Sin seguimiento, pierde de vista qué configuración funcionó mejor.

Una pequeña base de datos de experimentos registra cada ejecución para que pueda consultarlas, compararlas y reproducir la mejor.

Diseño de una tabla de experimentos

Un buen esquema registra la identidad de la ejecución, el modelo, los hiperparámetros clave, la métrica y una marca de tiempo. Almacene los hiperparámetros flexibles en una columna de texto JSON.

import sqlite3

conn = sqlite3.connect("experiments.db")
conn.execute("""
CREATE TABLE IF NOT EXISTS runs (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    model TEXT NOT NULL,
    params TEXT,
    accuracy REAL,
    f1 REAL,
    created_at TEXT DEFAULT (datetime("now"))
)
""")
conn.commit()

¿Por qué una marca de tiempo y un ID?

El id autoincremental proporciona a cada ejecución un identificador estable, mientras que created_at permite ordenar las ejecuciones a lo largo del tiempo o encontrar la más reciente.

DEFAULT (datetime("now")) rellena la marca de tiempo automáticamente al insertar.

Registro de una ejecución

Después del entrenamiento, inserte los resultados. Serialice el diccionario de hiperparámetros en JSON para que el esquema siga siendo flexible entre modelos.

import json, sqlite3

params = {"n_estimators": 200, "max_depth": 8}
conn.execute(
    "INSERT INTO runs (model, params, accuracy, f1) VALUES (?, ?, ?, ?)",
    ("random_forest", json.dumps(params), 0.913, 0.902),
)
conn.commit()

Un asistente log_run reutilizable

Envolvamos la inserción en una función que pueda llamar al final de cada script de entrenamiento. Un registro coherente es lo que permite realizar comparaciones posteriormente.

def log_run(conn, model, params, accuracy, f1):
    conn.execute(
        "INSERT INTO runs (model, params, accuracy, f1) VALUES (?, ?, ?, ?)",
        (model, json.dumps(params), accuracy, f1),
    )
    conn.commit()

Selección de las mejores ejecuciones

Encuentre sus mejores modelos ordenando por la métrica. ORDER BY accuracy DESC junto con LIMIT devuelve los modelos líderes.

cur = conn.execute(
    "SELECT model, accuracy, f1 FROM runs ORDER BY accuracy DESC LIMIT 5"
)
for row in cur.fetchall():
    print(row)

Filtrado por modelo o umbral

Reduzca las comparaciones con WHERE: seleccione solo una familia de modelos o solo las ejecuciones que superen una puntuación objetivo.

cur = conn.execute(
    "SELECT model, accuracy FROM runs WHERE model = ? AND accuracy > ? ORDER BY accuracy DESC",
    ("random_forest", 0.90),
)
print(cur.fetchall())

Agregación de varias ejecuciones

Las funciones de agregación de SQL resumen muchas ejecuciones a la vez: obtenga el mejor resultado, el promedio y el recuento por modelo con GROUP BY.

cur = conn.execute("""
SELECT model,
       COUNT(*) AS n,
       MAX(accuracy) AS best,
       AVG(accuracy) AS mean
FROM runs
GROUP BY model
ORDER BY best DESC
""")
print(cur.fetchall())

Carga de resultados en pandas

Para realizar una comparación más completa, cargue la tabla en un DataFrame y analícela con pandas: ordene, cree tablas dinámicas y genere gráficos.

import pandas as pd
from sqlalchemy import create_engine

engine = create_engine("sqlite:///experiments.db")
df = pd.read_sql("SELECT * FROM runs", engine)
print(df.sort_values("accuracy", ascending=False).head())

Comparación de experimentos en pandas

Expanda los parámetros JSON en columnas para correlacionar los hiperparámetros con la métrica; esto es precisamente lo que orientará su próximo experimento.

import json, pandas as pd

params_df = df["params"].apply(json.loads).apply(pd.Series)
full = pd.concat([df, params_df], axis=1)
print(full.groupby("max_depth")["accuracy"].mean())

Reproducción del mejor modelo

Como cada ejecución almacenó sus hiperparámetros, reproducir el mejor modelo consiste simplemente en leer su fila y volver a instanciarlo con esos parámetros.

best = df.sort_values("accuracy", ascending=False).iloc[0]
import json
best_params = json.loads(best["params"])
print("Reproduce", best["model"], "with", best_params)

Comprobación rápida: mejores ejecuciones

Desea obtener las cinco ejecuciones con mayor precisión de la tabla.

Repaso: almacenamiento y consulta de resultados de ML

Ha creado un flujo de trabajo para el seguimiento de experimentos:

  • Una tabla runs con el modelo, los parámetros JSON, las métricas y la marca de tiempo
  • Un helper log_run para registrar cada ejecución del entrenamiento
  • ORDER BY ... DESC LIMIT para encontrar las mejores ejecuciones y WHERE para filtrar
  • GROUP BY para realizar agregaciones y pandas para comparaciones más detalladas
  • Almacenar los parámetros permite reproducir el modelo ganador

Siguiente: bases de datos vectoriales para búsquedas mediante embeddings.

Preguntas frecuentes

¿La lección «Almacenamiento y consulta de resultados de machine learning» es gratis?

Sí — el texto completo de «Almacenamiento y consulta de resultados de machine learning» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Learn AI with Python, actualiza a CoddyKit PRO. El curso de Learn AI with Python incluye 4 lecciones en total.

¿Qué aprenderé en «Almacenamiento y consulta de resultados de machine learning»?

Persistencia de predicciones de modelos, registros de experimentos y datos de características en bases de datos relacionales. Practicas Learn AI with Python con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Learn AI with Python?

No se requiere experiencia previa. Learn AI with Python en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 3 de 4.

¿Cuánto tiempo toma la lección «Almacenamiento y consulta de resultados de machine learning»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Learn AI with Python?

Sí. Cada lección de Learn AI with Python incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. SQLite con el módulo sqlite3 de Python
  2. Integración de Pandas y SQL
  3. Almacenamiento y consulta de resultados de machine learning
  4. Introducción a las bases de datos vectoriales
← Volver a Learn AI with Python