GAM captura los patrones no lineales de cada variable (que la regresión lineal no puede capturar) y los suma (como la regresión lineal).

Tradicionalemente, las no-linearidades son caputuras por binning o polinomios. Pero GAM las captura automaticamnte (mediante splines).

Lo mejor de GAM es la explicabilidad de cada variable mediante gráficos de PDP (Partial Dependency Plot):

Parámetros a tener en cuenta para optimizar:

  • n_splines: Número de trozos para componer y juntar. (25 por defecto)
  • lam: Término de penalización. (0.6 por defecto)
  • constraints: Monotonically constraint. (“none” por defcto)

Instalar pyGAM:

pip install pygam

Ejemplo:

from pygam import LinearGAM    # Para regresión
from pygam import LogisticGAM  # Para clasificación

x = df[['var1', 'var2', 'var3']]
y = df[target_var]

gam = LogisticGAM().fit(x, y)

Referencias