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.
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.
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.
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.
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 red elástica.
2. Ejecute la celda de código.
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.
- 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.
- 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.
- Al igual que LSTAT
, NOX
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.