La regularización es una técnica vital en machine learning, diseñada para reducir la complejidad de un modelo al penalizar aquellas variables que aporten menos información. Al aplicar estas penalizaciones, se busca que el modelo no dependa excesivamente de las variables irrelevantes, mejorando así su capacidad de generalización. Visualmente, esto permite a los algoritmos ajustar mejor las predicciones frente a la diversidad de datos en el mundo real.
¿Cómo funciona la regularización?
La técnica de regularización introduce un sesgo en el modelo que ayuda a reducir la varianza de los datos. En un contexto de machine learning, esto implica alterar el comportamiento del modelo para que sea menos ajustado a los datos de entrenamiento y tenga un mejor desempeño con datos no vistos. Esta conceptualización se refleja en la gráfica donde se observa cómo un modelo más regularizado ofrece mejores resultados en una variedad de datos.
Para implementar la regularización, se introduce el concepto de pérdida o "loss", que mide qué tan alejadas están las predicciones de los datos reales. Una menor pérdida indica un mejor modelo. Es crucial evaluar esta pérdida en conjuntos de validación para evitar que el modelo se ajuste excesivamente a los datos de entrenamiento, fenómeno conocido como overfitting.
¿Cuáles son los tipos de regularización más comunes?
En la literatura sobre machine learning, existen principalmente tres tipos de regularización:
Regularización L1 (Lasso): Elimina las características menos relevantes al penalizarlas severamente, lo que provoca que algunos coeficientes se vuelvan cero. Esto es útil para modelos con muchas variables, donde algunas no contribuyen significativamente.
# Ejemplo de fórmula simplificadaminimization_L1 = loss +lambda*sum(abs(coef))
Regularización L2 (Ridge): Similar a L1, pero en lugar de eliminar por completo las variables, las penaliza haciendo que su impacto sea mínimo, manteniendo así cierta información que podría ser útil a largo plazo.
# Ejemplo de fórmula simplificadaminimization_L2 = loss +lambda*sum(coef **2)
Regularización Elastic Net: Combina las ventajas de L1 y L2, permitiendo mayor flexibilidad al integrar ambas penalizaciones en una sola función. Es especialmente útil cuando se enfrenta a problemas complejos con características correlacionadas.
¿Cuándo usar cada tipo de regularización?
Elegir el tipo de regularización adecuado depende del escenario específico y del conjunto de características:
L1 (Lasso): Es recomendable cuando se tiene un conjunto de características reducido y no tan correlacionado directamente con la variable objetivo. Ayuda a simplificar el modelo eliminando factores irrelevantes.
L2 (Ridge): Es efectiva cuando se cuenta con muchos factores que podrían influir directamente en la variable a predecir. Permite conservar una mayor cantidad de información útil al aplicar penalizaciones moderadas.
Elastic Net: Útil en situaciones donde se quiera capitalizar en lo mejor de ambas regularizaciones. Si enfrentamos un conjunto de datos con correlaciones fuertes y muchas características, Elastic Net proporciona un balance eficiente.
Si el tema te ha interesado, te invito a seguir aprendiendo y experimentando con estas técnicas. La regularización ofrece potentes herramientas para mejorar tus modelos y los resultados pueden ser sorprendentes. Además, si tienes alguna consulta, no dudes en compartirla, estamos aquí para ayudarte.
Estoy segura que como yo, otros estudiantes lo llevamos todo tan claro en este curso que no tenemos preguntas.
Excelente profesor, explicaciones claras y concisas!
Estamos de acuerdo, el profesor aporta mucha claridad, sin embargo estemos de acuerdo tambien en que el tema es denso
La verdad, pienso lo contrario. Siento que este curso es un resumen de lo que se ha visto en otros cursos
Como complemento dejo algunas notas del curso de Redes neuronales con Keras y Scikit-Learn.
En estos casos, L(X, w) vienen siendo las métricas de pérdida y w son los pesos de la red neuronal.
¿Qué es la regularización y cómo aplicarla?
Esta técnica consiste en disminuir la complejidad de nuestro modelo a través de una penalización aplicada a sus variables más irrelevantes.
Como podemos apreciar en la gráfica 1, hay un sub ajuste, ya que la linea roja se acopla muy bien para los datos de prueba, pero no para los datos de entrenamiento. La linea roja en los datos de prueba da una mala generalización, una mala aproximación.
Entonces, la regularización consiste en introducir un poco de sesgo para introducir la varianza de los datos.
Pero para poder aplicar regularización necesitamos un termino adicional el concepto de perdida. El concepto de perdida nos dice que tan lejos están nuestras predicciones de los datos reales, esto quiere decir que entre menor sea la perdida mejor será nuestro modelo.
Como podemos ver en la gráfica que la perdida tiende a disminuir, porque en algún momento van a ser vistos, van a ser operados y el modelo va a tender a ajustarse a esos datos de entrenamiento, pero lo que tenemos que mirar es cómo se va a comportar en el mundo real. En el conjunto de validación o pruebas es muy normal que nuestra perdida comience a disminuir porque hay una buena generalización, pero llega un punto donde nuevos valores comienza a introducirse donde esa perdida vuelve a comenzar a subir ese es el punto donde en general se considera que comienza a haber sobreajuste. Es la perdida la medida que vamos a utilizar para poder utilizar la regularización.
¿Cuántos tipos de regularización existen?
L1 Lasso: Reducir la complejidad a través de eliminación de features que no aportan demasiado al modelo.
Penaliza a los features que aporta poca información volviéndolos cero, eliminado el ruido que producen en el modelo.
L2 Ridge: Reducir la complejidad disminuyendo el impacto de ciertos features a nuestro modelo.
Penaliza los features poco relevantes, pero no los vuelve cero. Solamente limita la información que aportan a nuestro modelo.
ElasticNet: Es una combinación de las dos anteriores.
Lasso vs Ridge.
1.- No hay un campeón definitivo para todos los problemas.
2.- Si hay pocos features que se relacionen directamente con la variable a predecir: Probar Lasso.
3.- Si hay varios features relacionados con la variable a predecir: Probar Ridge.
Buen aporte, gracias por compartir
NICE!
amigo estas hablando de la norma. norma L2,
L2: Distancia euclidiana (raíz de la suma de cuadrados de los elementos)
La norma se usa en machine learning para encontrar errores.
La norma L0: devuelve la cantidad de elementos diferentes de 0 del vector.
La norma L1: devuelve la suma de los valores absolutos de los elementos del vector.
La norma L2: La magnitud del vector desde su origen.
La norma infinito: devuelve el valor absoluto más grande del vector
Un aporte adicional que nohe visto se explique de forma amplia en Platzi, las normas se usan para determinar el modulo de regularización en la construcción de un modelo. La regularización se usa para castigar la complejidad de un modelo y evitar overfitting, las más comunes son L2 para simplicidad y L1 para esparcidad.
PCA:
Combinábamos variables creando así variables artificiales.
Regularización:
Se penaliza a las variables que aportan menos información.
Ambas buscan disminuir la complejidad del modelo.
Gracias por el aporte 👍
En este video explican como funciona cada regularización analizando de forma grafica cada una de las funciones. Espero sea de utilidad
Ridge and Lasso Regression: L1 and L2 Regularization:
PCA es mucho mas fuerte dejándome con solo las features mas importantes, por lo que si no e podido solucionar el overfitting o necesito un modelo que no sea tan complejo y pesado la usaria.
En el caso de la regularización la usaría como método de evitar el overfitting en modeles con muchas features y ninguna es especial mente importante (osea en casos donde pca fallaría).
Si yo parto de un csv con 10 variables(features) originales ¿ el L1_lasso , me podria devolver las 4 (por ejemplo) variables originales que son más relvantes del dataset (csv) ? Esto es muy bueno si es así, me gusta esta info! o estoy equivocado?
Saludos NicoCoco,
De hecho, es lo correcto, al penalizar con la tecnica Lasso las features que aportan menor información tienden multiplicarse por un coeficiente de 0, para eliminar el ruido que producen.
Esta técnica puede ser utilizada en para hacer feature selection
En la funcion Lasso, esa es su principal funcion. Seleccionar las mejores etiquetas q aporten mayor valor a nuestro(s) modelo.
si mi meta predecir el estado de una planta, por medio de datos obtenidos por sensores, ¿cual seria el adecuado?
Yo pienso que depende de qué tantas características sobre-relacionadas hay en tu conjunto de datos.
Me interesa hacer un proyecto así. Si ya estas en marcha y tenes algo que mostrar, sería genial que lo compartas!
Este profesor es excelente.
Excelente clase. Muy instructiva y muy bien explicada.
La regularización en modelos de Machine Learning es una técnica esencial para mejorar la capacidad de generalización de un modelo y evitar que este sobreajuste (overfitting) los datos de entrenamiento.
🧠 ¿Qué es Regularización?
La regularización consiste en agregar una penalización al error del modelo (a la función de pérdida) para evitar que los coeficientes/parametros crezcan demasiado, lo cual podría llevar a un modelo muy ajustado a los datos de entrenamiento pero con mal desempeño en datos nuevos.
🔍 ¿Por qué ocurre el sobreajuste?
El modelo aprende ruido o variaciones irrelevantes del dataset.
Tiene demasiados parámetros o alta complejidad.
Insuficiente cantidad de datos o sin limpieza adecuada.
📦 Tipos de Regularización más comunes
1. L1 – Lasso (Least Absolute Shrinkage and Selection Operator)
Agrega la suma de los valores absolutos de los coeficientes.
Favorece la selección de características (algunos coeficientes se vuelven 0).
Redes neuronales (técnicas como Dropout también son formas de regularización)
SVM (el parámetro C controla la regularización)
🧪 Ejemplo en Scikit-learn: Regresión Ridge
from sklearn.linear_model import Ridge
from sklearn.datasets import load_boston
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error
X, y = load_boston(return_X_y=True)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
ridge = Ridge(alpha=1.0) # alpha es lambda (parámetro de regularización)
ridge.fit(X_train, y_train)
y_pred = ridge.predict(X_test)
print("MSE:", mean_squared_error(y_test, y_pred))
Nota: Si alpha=0, no hay regularización y el modelo se comporta como una regresión lineal estándar.
📌 ¿Qué controla la fuerza de la regularización?
El hiperparámetro λ (lambda) o alpha en scikit-learn.
Un valor alto de lambda = más regularización (modelo más simple).
Un valor bajo = menos regularización (modelo más complejo).
✅ Beneficios de Regularizar
Reduce el overfitting.
Mejora la estabilidad del modelo.
Hace que el modelo sea más interpretables (en el caso de L1).
¿Quieres...?
¿Comparar visualmente L1 y L2 en regresión?
¿Hacer validación cruzada para seleccionar el mejor alpha?
¿Aplicar regularización en clasificación con regresión logística?
La principal diferencia entre Lasso (regularización L1) y Ridge (regularización L2) radica en cómo penalizan los coeficientes del modelo. Lasso puede llevar a que algunos coeficientes se eliminen completamente (sean cero), lo que permite realizar selección de variables. Por otro lado, Ridge penaliza los coeficientes, pero no los elimina, lo que significa que todos los atributos se mantienen pero con valores más pequeños. Ambos métodos ayudan a prevenir el sobreajuste, pero se seleccionan según la cantidad de características irrelevantes en el modelo.
Solo puede ser usada en modelos de regresión o puede ser usado en problemas de clasificación.???
regresión logística aplica igual
Yo tengo un profesor que el en sus modelos le gusta usar la regularización L2 Ridge Siendo que el modelo conlleva datos y si uno le quita la mina de oro puede que tengamos algunas fallas.
Con esto me dijo que L1 solo lo utiliza en modelos pequeños y L2 lo usa cuando hace modelos mas grandes y conserva la información que es muy importante.
Espero les sirva mi comentario.!!
Lo que pasa es que al usar modelos con datos mas grandes suelen a su misma vez haber mas features entonces por eso sale que si el modelo es mas complejo el l2 es mejor ya que no elimina directamente el peso de la variable sino que disminuye su valor generando que no aprenda dos veces lo mismo , mientras que el L1 , aproxima su valor a 0 lo mas que puede haciendo que el modelo no cuente con x variable , entonces depende el caso que tengas
Se puede aplicar la regularización para variables categoricas?
Como se aplicaria en casos para un problema de regressión con variables categóricas o para un problema de clasificación?
cuando el profesor dice la palabra penalizar a que se refiere??
A disminuir el peso asociado a las features que menos valor aportan en la regresión, o en su caso volverlas cero, depende la regularización que uses.