Ir al contenido
  1. Posts/

SplineTransformer de Scikit-Learn: Dominando Datos No Lineales

··306 palabras·2 mins·

📈 SplineTransformer: Cuando la Recta No Alcanza
#

La regresión lineal es perfecta… hasta que los datos tienen curvas. Y la regresión polinomial de alto grado se vuelve loca en los bordes. Splines son la solución intermedia ideal.

🔍 El Problema con los Polinomios
#

El Fenómeno de Runge: los polinomios de alto grado se “disparan” en los extremos del conjunto de datos. Un punto raro al final puede arruinar toda la curva.

✂️ ¿Qué son los Splines?
#

En lugar de ajustar una ecuación compleja a todos los datos, los splines dividen los datos en segmentos en puntos llamados nodos (knots). Cada segmento tiene su propio polinomio simple, y todos están cosidos sin costuras visibles.

Ventajas clave:

  • 🎯 Control local – lo que pasa en un segmento no afecta al resto
  • 🧵 Suavidad garantizada – las uniones son perfectamente continuas
  • 🏗️ Estabilidad – no se descontrolan en los bordes

🐍 Implementación en Python
#

from sklearn.preprocessing import SplineTransformer
from sklearn.linear_model import Ridge
from sklearn.pipeline import make_pipeline

model = make_pipeline(
    SplineTransformer(n_knots=8, degree=3, extrapolation='constant'),
    Ridge(alpha=0.1)
)
model.fit(X, y)

🎛️ Parámetros clave
#

ParámetroUso
n_knotsCantidad de nodos (más = más flexible)
degreeSuavidad: 1=lineal, 3=cúbico (default)
extrapolation='periodic'Para datos cíclicos (hora del día, mes)
knots='quantile'Si los datos están agrupados

💡 Explicación en pocas palabras
#

Imaginate que tenés que dibujar una curva suave que pasa por muchos puntos. En vez de usar una sola regla curvada que se dobla demasiado, usás muchas reglas pequeñas unidas en los extremos. Eso son los splines: suaves, precisos y sin dramas en los bordes.

Más información en el link 👇

También publicado en LinkedIn.
Juan Pedro Bretti Mandarano
Autor
Juan Pedro Bretti Mandarano