Ir al contenido principal

Diagrama de temas

    • 7.2 Regularizar modelos de regresión

      • Función de costo

        Para encontrar el mejor ajuste posible para un modelo de regresión, necesita una manera de determinar los valores para los parámetros del modelo (θi) que conducirán a este mejor ajuste. Esto implica evaluar el rendimiento del modelo en los datos de entrenamiento. En lugar de evaluar qué tan bien el modelo hace las estimaciones, en la regresión, es más común evaluar qué tan mal estima, en otras palabras, su costo.

        Una función de costo intenta cuantificar el error entre los valores estimados y los valores de entrenamiento etiquetados reales. Lo hace calculando la diferencia entre los dos. En otras palabras, el modelo de aprendizaje automático identifica lo malo que es para estimar la relación entre las variables independientes y dependientes (x e y). Una parte importante del proceso de aprendizaje es el acto de minimizar esta función de costo mediante la determinación de los parámetros óptimos del modelo. La ecuación normal, por ejemplo, es un método para minimizar la función de costo. Además, las próximas técnicas de regularización incorporan la función de costo en su intento de mejorar el rendimiento.

      • Regularización

        Uno de los métodos que puede utilizar para ajustar un modelo de regresión es la regularización. Regularización es la técnica de simplificar un modelo de aprendizaje automático mediante la restricción de sus parámetros, lo que ayuda al modelo a evitar el sobreajuste a los datos de entrenamiento. Esto normalmente implica forzar uno o más parámetros del modelo para incluir solo valores dentro de un intervalo pequeño o forzar los parámetros a 0. Esto ayuda a minimizar el efecto de los valores atípicos en el modelo.

        En un modelo de aprendizaje automático, puede controlar la cantidad de regularización estableciendo el hiperparámetro λ (lambda). A medida que aumente el valor de λ, será menos probable que el modelo se sobreajuste a los datos de entrenamiento. Esto se debe a que usted está disminuyendo la varianza en el modelo. Sin embargo, la disminución de la varianza aumenta el sesgo, por lo que debe tener cuidado de no hacer λ demasiado grande. Esto no se ajustaría lo adecuado al modelo, lo que le impediría realizar estimaciones útiles en los datos de entrenamiento.

        Un método común para seleccionar un valor λ es utilizar la validación cruzada para muestrear aleatoriamente los datos varias veces para un valor λ y, a continuación, repetir el proceso para valores λ diferentes. A continuación, puede elegir el valor λ que mejor minimice el error total.

        Notaλ es la letra griega lambda.


        Figura 1. Un modelo lineal sin regularización (línea azul oscuro sólido) frente a con regularización (línea negra discontinua). El primero se ajusta mejor a los datos de entrenamiento, pero el segundo se generaliza mejor a los nuevos datos.

      • Técnicas de regularización

        La regularización simplifica un modelo aplicando el hiperparámetro λ de restricción. Más específicamente, este hiperparámetro forma parte de un término que se agrega a la función de costo. Este término penaliza el modelo si sus valores de parámetro son demasiado altos y, por lo tanto, mantiene los valores de parámetro pequeños. En realidad, hay varias técnicas para aplicar la regularización a un modelo, cada una de las cuales utiliza un término de regularización diferente. Las siguientes son tres técnicas de regularización que han encontrado el mayor éxito.

        Técnica de regularización Descripción
        Regresión de cresta

        Utiliza una función matemática llamada norma l2 para implementar su término de regularización. La norma l2 es la suma de coeficientes cuadrados, y el objetivo es minimizarla. Esto ayuda a mantener los pesos de los parámetros del modelo pequeños, lo que reduce el sobreajuste.

        La regresión de cresta es adecuada en conjuntos de datos con un gran número de características, cada una de las cual tiene al menos cierta potencia de estimación. Esto se debe a que la regresión de cresta ayuda a reducir el sobreajuste sin eliminar realmente ninguna de las características por completo.

        Regresión de lazo

        Utiliza la norma l1 para implementar su término de regularización. La norma ℓ1 fuerza los coeficientes de las características menos relevantes a 0, en otras palabras, eliminándolos del modelo. Al igual que con la regresión de cresta, esto ayuda al modelo a evitar el sobreajuste a los datos de entrenamiento.

        A diferencia de la regresión de cresta, la regresión de lazo es adecuada en conjuntos de datos que solo tienen un número pequeño o moderado de características que tienen una potencia de estimación moderada. La regresión de lazo es capaz de eliminar el resto de las entidades que no tienen un efecto significativo en los datos, lo que puede conducir a un mejor rendimiento del modelo que mantenerlos y reducirlos, como en la regresión de cresta.

        Regresión de red elástica

        Utiliza un promedio ponderado de la regresión de cresta y lazo como parte de su término de regularización. Es, por lo tanto, un intento de aprovechar lo mejor de las normas l1 y l 2. Junto con λ, la regresión de red elástica también utiliza el hiperparámetro α de relación. El valor α especifica qué técnica de regresión ejerce más influencia sobre el resultado, donde los valores más cercanos a 0 favorecen la regresión de cresta y los valores más cercanos a 1 favorecen la regresión de lazo.

        Al igual que la regresión de lazo, la regresión de red elástica tiende a funcionar bien cuando solo hay un número pequeño a moderado de características que son realmente relevantes (aunque, dependiendo de α, también puede ser igual a la regresión de cresta). La regresión neta elástica suele ser preferible, ya que la regresión de lazo puede no funcionar de forma óptima cuando el número de entidades supera con creces al número de ejemplos de entrenamiento. Del mismo modo, la regresión neta elástica tiende a funcionar mejor en situaciones donde varias entidades presentan una alta correlación. La regresión de cresta pura puede seguir siendo ideal si la eliminación de incluso un pequeño número de entidades podría perjudicar la habilidad de estimación del modelo.


        Notaα es la letra griega alfa.

        En la mayoría de los casos, independientemente de la técnica específica que elija, es una buena idea aplicar al menos alguna forma de regularización mientras se entrena un modelo de regresión lineal. Sin embargo, solo debe realizar la regularización durante el entrenamiento; al evaluar el rendimiento del modelo después del entrenamiento, no debe utilizar el hiperparámetro de regularización.
        Colinealidad

        La regresión de cresta aborda el problema de la colinealidad, en el que dos entidades exhiben una relación lineal, en otras palabras, las entidades están exactamente o muy estrechamente relacionadas en términos de cómo influyen en la variable dependiente. La colinealidad, por lo tanto, hace que sea difícil determinar cómo cada entidad tiene un efecto en la salida de forma independiente. La multicolinealidad se refiere al mismo concepto, pero puede extenderse a más de dos entidades.

        Información adicional

        Para obtener más información sobre la regularización en el aprendizaje automático, consulte este sitio.

      • Generación de un modelo de regresión regularizado


        Archivos de datos

        /home/student/ITSAI/Regression/Regression-Boston.ipynb
        /home/student/ITSAI/Regression/data/boston_train.csv


        Antes de empezar

        Jupyter Notebook está abierto con la pestaña ITSAI/Regresión/ abierta.


        Escenario

        Desea aplicar los modelos de valoración de la casa a algo más que los ejemplos proporcionados en el conjunto de datos del condado de King. También tiene acceso a un conjunto de datos que incluye datos sobre casas en Boston, Massachusetts. Una vez más, desea poder entrenar un modelo para predecir el valor de una casa en esta área dados varios factores. Sin embargo, la regresión lineal simple no es necesariamente la mejor manera de abordar este problema. Desea evitar encontrarse con problemas en los que el modelo se sobreajuste a los datos de entrenamiento, lo que lo hace menos útil para generalizar a nuevos datos. Para ello, ajustará sus modelos aplicando la técnica de regularización. En lugar de elegir arbitrariamente un tipo de regularización, evaluará los tres (cresta, lazo y red elástica) y luego elegirá cuál funciona mejor de acuerdo con sus requisitos.


        -------------------------------------------------------------------------------------------------------------------------------------------------------------

        1.En Jupyter Notebook, seleccione ITSAI/Regression/Regression-Boston.ipynb para abrirlo.


        -------------------------------------------------------------------------------------------------------------------------------------------------------------
        2. Importe las bibliotecas relevantes y cargue el conjunto de datos.
        1. Seleccione la celda de código debajo de Importar bibliotecas de software y cargue el conjunto de datos y examine la lista de código debajo de ella.

        Este código importa las diversas bibliotecas de software que se utilizarán en este programa y carga el conjunto de datos.

        2. Ejecute la celda de código.

        3. Examine el resultado.

        Compruebe que boston_train.csv se cargó con 456 registros.


        -------------------------------------------------------------------------------------------------------------------------------------------------------------
        3. Familiarícese con el conjunto de datos.
        1. Desplácese hacia abajo y vea la celda titulada Familiarizarse con el conjunto de datos y examine la lista de código debajo de ella.

        Este código generará los distintos tipos de datos incluidos en el conjunto de datos y las primeras 10 filas del conjunto de datos.

        2. Ejecute la celda de código.

        3. Examine el resultado.

        El conjunto de entrenamiento incluye 456 filas y 14 columnas.
        La mayoría de las columnas contienen valores flotantes; el resto contienen valores enteros.
        No faltan datos; todas las filas tienen valores para cada columna.
        Cada columna mide algún factor sobre una casa en Boston. Algunos ejemplos son:
        CRIM es la tasa de criminalidad per cápita de la zona.
        CHAS se refiere a la "variable ficticia del río Charles"; si es 1, la tierra limita con el río; si es 0, no lo hace.
        NOX es el nivel de dióxido de nitrógeno (NO2) en la zona. Los niveles altos de NO2 pueden causar problemas de salud.
        RM es el número medio de habitaciones por casa.
        AGE es la proporción de unidades ocupadas construidas antes de 1940.
        DIS es la distancia media ponderada a varios centros de empleo alrededor de Boston.
        TAX es la tasa de impuesto a la propiedad cada $10 000.
        PTRATIO es la proporción de alumnos (estudiantes) por maestros en el distrito escolar.
        LSTAT es el porcentaje de hogares de bajos ingresos en la zona.
        target también se refiere a MEDV; el valor medio de la casa en miles de dólares.


        ------------------------------------------------------------------------------------------------------------------------------------------------------------------------
        4. Examine la distribución de varias características.
        1.Desplácese hacia abajo y vea la celda titulada Examinar la distribución varias características y examine la lista de código que se muestra debajo de ella.

        Este código generará un histograma para cada característica del conjunto de datos.

        2. Ejecute la celda de código.

        3. Examine el resultado.

        Algunos aspectos destacados incluyen:

        La edad de las casas parece estar sesgada, lo que indica que la mayoría de las casas en el conjunto de datos son bastante antiguas.
        La distancia media a los centros de empleo está sesgada a la derecha, lo que indica que la mayoría de las casas están cerca de dichos centros.
        Los niveles de NO2 parecen fluctuar, aunque la mayoría tienden a estar en el extremo inferior.
        El número de habitaciones parece formar una distribución más o menos simétrica.
        El valor medio de la casa (es decir, target) también parece tener una distribución razonablemente simétrica, con quizás algunos valores atípicos altos.

        ------------------------------------------------------------------------------------------------------------------------------------------------------------------------
        5. Examine un resumen general de las estadísticas.
        1. Desplácese hacia abajo y vea la celda titulada Examinar un resumen general de las estadísticas y examine la lista de código debajo de ella.


        Este código generará estadísticas generales para los valores de las columnas en el conjunto de datos.

        2. Ejecute la celda de código.

        3. Examine el resultado.

        Los números apoyan algunas de las conclusiones extraídas anteriormente con los histogramas, además de revelar potencialmente alguna información nueva. Por ejemplo, el valor medio de CRIM es 3,80, pero el máximo es mucho mayor en 88,98. Esto sugiere la presencia de valores atípicos altos. También puede ver que algunas de las variables están en diferentes escalas, como comparar la media relativamente baja de NOX con la media relativamente alta de TAX. Las características de escalado suelen ser beneficiosas para los modelos regularizados, pero en este caso, mantendrá las variables tal cual.

        ------------------------------------------------------------------------------------------------------------------------------------------------------------------------
        6. Busque columnas que se correlacionen con target (valor medio de la casa).
        1. Desplácese hacia abajo y vea la celda titulada Buscar columnas que se correlacionen con target (valor medio de la casa) y examine la lista de código debajo de ella.


        2. Ejecute la celda de código.

        3. Examine el resultado.

        Parece que muchas de estas características tienen al menos alguna correlación con el valor medio de la casa, ya sea positivo o negativo. La correlación más baja es CHAS, la variable categórica que indica si la propiedad de una casa está junto al río Charles. Dado que la correlación parece ser débil y porque la característica es categórica y no numérica (como las otras características), quitará esta característica del entrenamiento al dividir la base de datos.

        ------------------------------------------------------------------------------------------------------------------------------------------------------------------------
        7.Divida los conjuntos de datos.
        1. Desplácese hacia abajo y vea la celda titulada Dividir los conjuntos de datos y examine la lista de código debajo de ella.

        Este código dividirá el conjunto de datos en conjuntos de entrenamiento y de validación y quite las columnas CHAS y target.

        2. Ejecute la celda de código.

        3. Examine el resultado.

        El conjunto de datos de entrenamiento original se dividió en dos: un conjunto para seguir usándolo como conjunto de entrenamiento y otro para usarlo para la validación.

        ------------------------------------------------------------------------------------------------------------------------------------------------------------------------
        8. Entrene un modelo y calcule sus puntuaciones.
        1. Desplácese hacia abajo y vea la celda titulada Entrenar un modelo y calcular sus puntuaciones y examine la lista de código debajo de ella.

        Este código definirá una función que entrenará un modelo y calculará su puntuación.

        2. Ejecute la celda de código.

        3. Examine el resultado.

        Al colocar este código en una función, se puede repetir fácilmente varias veces.

        -------------------------------------------------------------------------------------------------------------------------------------------------------------
        9. Evalúe varios modelos de regresión lineal regularizados.
        1. Desplácese hacia abajo y vea la celda titulada Evaluar varios modelos de regresión lineal regularizados y examine la lista de código que aparece debajo de ella.

        Este código crea otra función que llama a la función model_train() mediante cuatro algoritmos diferentes:
        Regresión lineal simple (sin regularización).
        Regresión de cresta.
        Regresión de lazo.
        Regresión de red elástica.

        2. Ejecute la celda de código.

        3. Examine el resultado.

        Al colocar este código en una función, se puede repetir fácilmente varias veces para la comparación, pasando diferentes hiperparámetros.

        4. En la siguiente celda de código, examine el código.

        Este código llamará a la función model_eval y pasará 1 y 0.5 como hiperparámetros.

        5. Ejecute la celda de código.

        6. Examine el resultado.

        En esta llamada de función, se utiliza un punto inicial arbitrario de 1 como hiperparámetro de regularización.
        Utilizó una penalización de red elástica de 0.5, que no favorece ni la norma ℓ1 ni ℓ2.
        Para estos hiperparámetros, la regresión de cresta tenía la puntuación más alta.
        El lazo y la regresión de red elástica parecen haber tenido un peor desempeño que el modelo lineal simple y no regularizado.
        Reconfigurará estos hiperparámetros para obtener mejores resultados.

        7. En la siguiente celda de código, examine el código.

        Este código llamará a la función model_eval y pasará 0.1 y 0.3 como hiperparámetros.

        8. Ejecute la celda de código.

        9. Examine el resultado.

        En esta llamada de función, cambió el hiperparámetro de regularización a 0.1.
        Cambió la penalización de la red elástica a 0.3, lo que favorece la norma ℓ2 (cresta).
        Para estos hiperparámetros, la regresión de lazo tiene la puntuación más alta, incluso más alta que el modelo de regresión de cresta de la ronda de entrenamiento anterior. La mejora puede ser leve, pero no siempre verá beneficios masivos a través de la regularización.

        -------------------------------------------------------------------------------------------------------------------------------------------------------------
        10. Diagrame líneas de mejor opción para la función RM (número promedio de habitaciones).
        1. Desplácese hacia abajo y vea la celda titulada Diagrame líneas de la mejor acción para la función RM (número promedio de habitaciones) y examine la lista de código que se muestra debajo de ella.

        Este código generará un gráfico que muestra la línea de mejor opción para el modelo de regresión lineal simple, así como el modelo de regresión de lazo.

        2. Ejecute la celda de código.

        3. Examine el resultado.

        Se muestra RM aquí porque tenía una de las correlaciones positivas más fuertes con el valor medio de la vivienda.
        La línea roja es la línea no regularizada de mejor opción, mientras que la línea negra es la línea de opción usando el lazo con los hiperparámetros que se consideraron "lo suficientemente buenos".
        Los puntos azules son las predicciones no regularizadas, mientras que los puntos naranjas son las predicciones regularizadas.
        Como puede ver, la regresión regularizada produjo predicciones ligeramente diferentes con una línea ligeramente diferente de mejor opción, que refleja la evaluación que realizó anteriormente.

        ------------------------------------------------------------------------------------------------------------------------------------------------------------------------
        11. Diagrame líneas de la mejor acción para las características LSTAT y NOX.
        1. Desplácese hacia abajo y vea la celda titulada Diagramar líneas de la mejor acción para las características LSTAT y NOX y examine la lista de código que se muestra debajo de ella.

        Este código generará un gráfico que muestra la línea de mejor opción para la variable LSTAT, que es el porcentaje de hogares de bajos ingresos en el área alrededor de la casa de ejemplo.

        2. Ejecute la celda de código.

        3. Examine el resultado.

        LSTAT tiene una fuerte correlación negativa con el valor medio de la vivienda.
        Como se mencionó anteriormente, la línea roja es la línea no regularizada de mejor opción, mientras que la línea negra es la línea de opción usando la regularización de lazo.
        Como se mencionó anteriormente, los puntos azules son las predicciones no regularizadas, mientras que los puntos naranjas son las predicciones regularizadas.
        Nuevamente, el modelo regularizado produjo predicciones ligeramente diferentes y una línea ligeramente diferente de mejor ajuste para esta variable en comparación con el modelo no regularizado.

        4. En la siguiente celda de código, examine el código.

        Este código generará un gráfico que muestra la línea de mejor opción para la variable NOX, que es el nivel de dióxido de nitrógeno (NO2) en el área.

        5. Ejecute la celda de código.

        6. Examine el resultado.

        Al igual que LSTATNOX tiene una correlación negativa con el valor medio de la casa, aunque la correlación es notablemente más débil ya que los puntos se extienden mucho más.
        Las líneas regularizadas y no regularizadas de mejor opción divergen más en este gráfico que en los demás, lo que tiene sentido dada la mayor dispersión de valores.