Generalized Additive Model (GAM)
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)