Capítulo 2: Pruebas de Sistemas de ML
Tipos de pruebas de ML
| Tipo de prueba | Qué prueba | Ejemplo |
|---|---|---|
| Unit | Funciones individuales | Ingeniería de características |
| Data | Calidad de los datos | Esquema, valores nulos |
| Model | Comportamiento del modelo | Predicciones sobre entradas conocidas |
| Integration | De extremo a extremo | API a predicción |
| Performance | Velocidad/uso de recursos | Latencia, memoria |
Ejemplos de pruebas
# tests/test_model.py
import pytest
import numpy as np
class TestModel:
@pytest.fixture
def model(self):
return load_model("models/churn_model.pkl")
def test_prediction_shape(self, model):
X = np.random.randn(10, 15)
predictions = model.predict(X)
assert predictions.shape == (10,)
def test_prediction_range(self, model):
X = np.random.randn(100, 15)
predictions = model.predict_proba(X)
assert np.all(predictions >= 0) and np.all(predictions <= 1)
def test_known_input(self, model):
# High-risk customer features
high_risk = np.array([[0, 100, 365, 0, 1, ...]])
prob = model.predict_proba(high_risk)[0, 1]
assert prob > 0.7, "High-risk customer should have high churn probability"
Siguiente: Capítulo 3: Entrenamiento Continuo