0Pricing
Python Academy · Lección

La API de scikit-learn: fit, transform y predict

Comprenda la interfaz de estimadores y el flujo de trabajo de división entre entrenamiento y prueba.

La API de scikit-learn: fit, transform y predict es una lección gratuita de Python Academy en CoddyKit. Esta es la lección 1 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 Python Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Python Academy incluye 4 lecciones en total.

¿Qué es scikit-learn?

scikit-learn es la biblioteca de referencia de Python para el aprendizaje automático clásico. Proporciona una API coherente: todos los estimadores tienen fit() y la mayoría dispone de predict() o transform().

from sklearn.linear_model import LinearRegression
import numpy as np

X = np.array([[1],[2],[3],[4],[5]])
y = np.array([2, 4, 6, 8, 10])

model = LinearRegression().fit(X, y)
print(model.predict([[6]]))   # [12.]

División entre entrenamiento y prueba

Divida siempre los datos antes de entrenar para evaluar hasta qué punto el modelo generaliza a datos que no ha visto.

from sklearn.model_selection import train_test_split
import numpy as np

X = np.random.rand(100, 5)
y = (X[:,0] > 0.5).astype(int)

X_train, X_test, y_train, y_test = train_test_split(
    X, y, test_size=0.2, random_state=42
)
print(X_train.shape, X_test.shape)   # (80,5) (20,5)

fit(): entrenamiento

estimator.fit(X, y) entrena el modelo con X (características) e y (etiquetas). En los métodos no supervisados, solo se pasa X.

from sklearn.linear_model import LogisticRegression
from sklearn.datasets import make_classification

X, y = make_classification(n_samples=200, random_state=0)
model = LogisticRegression()
model.fit(X, y)
print("Trained:", model.classes_)

predict() y predict_proba()

predict(X) devuelve las etiquetas de clase; predict_proba(X) devuelve las probabilidades de clase para los clasificadores.

from sklearn.linear_model import LogisticRegression
from sklearn.datasets import make_classification

X, y = make_classification(random_state=0)
model = LogisticRegression().fit(X, y)

print(model.predict(X[:5]))          # [0 1 0 ...]
print(model.predict_proba(X[:2]))    # [[0.7 0.3] ...]

Transformadores: fit y transform

Los transformadores (escaladores, codificadores) tienen fit(X) + transform(X). Ajústelos siempre solo con los datos de entrenamiento y, después, transforme tanto los datos de entrenamiento como los de prueba.

from sklearn.preprocessing import StandardScaler
import numpy as np

X_train = np.array([[1,2],[3,4],[5,6]])
X_test  = np.array([[2,3],[4,5]])

scaler = StandardScaler()
X_train_s = scaler.fit_transform(X_train)   # fit + transform
X_test_s  = scaler.transform(X_test)        # transform only (using train stats)

Pipeline

Un Pipeline encadena transformadores y un estimador en un único objeto. Evita la fuga de datos al aplicar correctamente las transformaciones dentro de la validación cruzada.

from sklearn.pipeline import Pipeline
from sklearn.preprocessing import StandardScaler
from sklearn.svm import SVC

pipe = Pipeline([
    ("scaler", StandardScaler()),
    ("clf", SVC())
])
pipe.fit(X_train, y_train)
print(pipe.score(X_test, y_test))

Exactitud y otras métricas

Use accuracy_score, f1_score y classification_report para evaluar clasificadores.

from sklearn.metrics import accuracy_score, classification_report

y_pred = model.predict(X_test)
print(accuracy_score(y_test, y_pred))
print(classification_report(y_test, y_pred))

Validación cruzada

cross_val_score evalúa un modelo mediante validación cruzada de k particiones sin que tenga que dividir los datos manualmente.

from sklearn.model_selection import cross_val_score
from sklearn.linear_model import LogisticRegression
from sklearn.datasets import make_classification

X, y = make_classification(random_state=0)
scores = cross_val_score(LogisticRegression(), X, y, cv=5)
print(f"CV scores: {scores.mean():.3f} ± {scores.std():.3f}")

Ajuste de hiperparámetros con GridSearchCV

GridSearchCV busca exhaustivamente en una cuadrícula de parámetros mediante validación cruzada para encontrar los mejores hiperparámetros.

from sklearn.model_selection import GridSearchCV
from sklearn.svm import SVC
from sklearn.datasets import make_classification

X, y = make_classification(random_state=0)
param_grid = {"C": [0.1, 1, 10], "kernel": ["rbf", "linear"]}
gs = GridSearchCV(SVC(), param_grid, cv=5)
gs.fit(X, y)
print(gs.best_params_, gs.best_score_)

Preprocesamiento: LabelEncoder y OneHotEncoder

Codifique las etiquetas categóricas con LabelEncoder y las características categóricas con OneHotEncoder o ColumnTransformer.

from sklearn.preprocessing import LabelEncoder, OneHotEncoder
import numpy as np

le = LabelEncoder()
print(le.fit_transform(["cat","dog","cat","fish"]))   # [0 1 0 2]

ohe = OneHotEncoder(sparse_output=False)
print(ohe.fit_transform([["red"],["green"],["blue"]]))

Guardado y carga de modelos

Conserve los modelos entrenados con joblib (es más rápido que pickle para matrices de NumPy).

import joblib
from sklearn.linear_model import LogisticRegression
from sklearn.datasets import make_classification

X, y = make_classification(random_state=0)
model = LogisticRegression().fit(X, y)

joblib.dump(model, "model.joblib")
loaded = joblib.load("model.joblib")
print(loaded.predict(X[:3]))

Comprobación rápida

¿Por qué debe llamar a scaler.fit() solo con los datos de entrenamiento y no con los datos de prueba?

Repaso

La API uniforme de scikit-learn: fit() entrena, predict() realiza inferencias y transform() preprocesa. Use Pipeline para encadenar pasos. Divida los datos con train_test_split, evalúe con cross_val_score y ajuste los hiperparámetros con GridSearchCV.

Preguntas frecuentes

¿La lección «La API de scikit-learn: fit, transform y predict» es gratis?

Sí — el texto completo de «La API de scikit-learn: fit, transform y predict» 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 Python Academy, actualiza a CoddyKit PRO. El curso de Python Academy incluye 4 lecciones en total.

¿Qué aprenderé en «La API de scikit-learn: fit, transform y predict»?

Comprenda la interfaz de estimadores y el flujo de trabajo de división entre entrenamiento y prueba. Practicas Python Academy 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 Python Academy?

No se requiere experiencia previa. Python Academy 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 1 de 4.

¿Cuánto tiempo toma la lección «La API de scikit-learn: fit, transform y predict»?

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 Python Academy?

Sí. Cada lección de Python Academy 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. La API de scikit-learn: fit, transform y predict
  2. Modelos lineales: regresión y clasificación
  3. Modelos basados en árboles: árboles de decisión y bosques aleatorios
  4. Evaluación de modelos y validación cruzada
← Volver a Python Academy