Muestra las diferencias entre dos versiones de la página.
Ambos lados, revisión anterior Revisión previa Próxima revisión | Revisión previa | ||
clase:iabd:pia:1eval:tema03 [2024/11/23 21:00] admin [Mini-proyecto] |
clase:iabd:pia:1eval:tema03 [2024/11/27 10:24] (actual) admin [Mini-proyecto] |
||
---|---|---|---|
Línea 1590: | Línea 1590: | ||
Realiza lo siguiente: | Realiza lo siguiente: | ||
* Crea una array de numpy en base a los datos. | * Crea una array de numpy en base a los datos. | ||
- | * Obtén | + | * Obtén |
- | * Obtén | + | * Obtén |
Línea 1619: | Línea 1619: | ||
</ | </ | ||
- | * Modifica la función '' | + | * Modifica la función '' |
* Modifica la función de activación de la última capa para que sea la función de activación '' | * Modifica la función de activación de la última capa para que sea la función de activación '' | ||
- | * Crea una red neuronal y entrenala con la siguientes capas '' | + | |
+ | | ||
+ | * Capas: | ||
+ | * Épocas: 5000 | ||
+ | |||
+ | <note tip> | ||
+ | En el resto de pasos, si no decimos lo contrario se entrenarán las redes con 5000 épocas. | ||
+ | </ | ||
==== Paso 3 ==== | ==== Paso 3 ==== | ||
Línea 1633: | Línea 1640: | ||
Para ello: | Para ello: | ||
- | * Crea un array con los datos de entrada a predecir '' | + | * Crea un array con los datos de entrada a predecir '' |
- | * Crea un array con los datos de salida verdaderos '' | + | * Crea un array con los datos de salida verdaderos '' |
* Usando el modelo predice las salidas predichas y llámalo '' | * Usando el modelo predice las salidas predichas y llámalo '' | ||
- | * Resta el valor de '' | + | * Resta el valor de '' |
* Une los 4 arrays es una matriz donde cada columna sea cada uno de los arrays y llámala '' | * Une los 4 arrays es una matriz donde cada columna sea cada uno de los arrays y llámala '' | ||
* Muestra el array con la función '' | * Muestra el array con la función '' | ||
Línea 1688: | Línea 1695: | ||
==== Paso 8 ==== | ==== Paso 8 ==== | ||
- | * Modifica la función '' | + | * Modifica la función |
* Crea una red neuronal y entrenala con la siguientes capas '' | * Crea una red neuronal y entrenala con la siguientes capas '' | ||
* Muestra el //Error cuadrático medio// y el // Coeficiente de determinación// | * Muestra el //Error cuadrático medio// y el // Coeficiente de determinación// | ||
Línea 1713: | Línea 1720: | ||
<sxh base> | <sxh base> | ||
- | Nombre | + | Nombre |
- | | + | |
- | -------- | + | -------- |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | + | ||
</ | </ | ||
- | Deberás volver a modificar la función '' | + | Deberás volver a modificar la función '' |
Línea 1755: | Línea 1760: | ||
<sxh base> | <sxh base> | ||
- | Nombre | + | Nombre |
- | | + | |
- | -------- | + | -------- |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
</ | </ | ||
Línea 1777: | Línea 1782: | ||
A modo de resumen de todo el mini projecto, vuelve a hacer el ejercicio anterior pero ahora poniendo las últimas versiones de todo el código que has usado. | A modo de resumen de todo el mini projecto, vuelve a hacer el ejercicio anterior pero ahora poniendo las últimas versiones de todo el código que has usado. | ||
+ | ==== Paso 12 ==== | ||
+ | Ahora vamos a hacer otro mini proyecto usando como base todo el código que hemos creado. | ||
+ | |||
+ | El problema a resolver es averiguar el precio,en miles de dolares, de una casa en la ciudad de Boston (target o //Y//). Este es un clásico problema de Machine Learning. Las características (features o //X//) del problema son: | ||
+ | |||
+ | - **Criminalidad per cápita**: Representa la tasa de criminalidad por persona en la ciudad. Un valor más alto indica una mayor tasa de criminalidad. | ||
+ | - **Porcentaje de terrenos residenciales**: | ||
+ | - **Porcentaje de terrenos no comerciales**: | ||
+ | - **Proximidad al río Charles**: Es una variable binaria (0 o 1) que indica si la vivienda está cerca (1) o no cerca (0) del río Charles. | ||
+ | - **Concentración de óxidos de nitrógeno**: | ||
+ | - **Número promedio de habitaciones**: | ||
+ | - **Proporción de viviendas construidas antes de 1940**: Representa el porcentaje de viviendas en la zona que fueron construidas antes de 1940. Los valores más altos indican un mayor envejecimiento de la infraestructura. | ||
+ | - **Distancia a los centros de empleo de Boston**: Es una medida ponderada de la distancia desde una ubicación hasta los centros de empleo más importantes de la ciudad de Boston. Un valor más bajo indica que la vivienda está cerca de centros laborales importantes. | ||
+ | - **Accesibilidad a carreteras radiales**: Representa la accesibilidad a las principales carreteras radiales de Boston. Un valor más alto indica una mejor conectividad con las carreteras importantes. | ||
+ | - **Impuesto sobre la propiedad**: | ||
+ | - **Proporción de estudiantes por maestro**: Representa la proporción de estudiantes por cada maestro en las escuelas locales. Un valor más bajo indica mejores condiciones en las escuelas, con más maestros por cada estudiante. | ||
+ | - **Proporción de población negra**: Esta variable mide la proporción de la población de raza negra en la zona. Es calculada como 1000 * (proporción de población negra)^2. | ||
+ | - **Porcentaje de población de bajo estatus socioeconómico**: | ||
+ | |||
+ | Con el código que has creado , busca la mejor red neuronal para que dado las características de un casa prediga el precio en miles de dólares de dicha casa | ||
+ | |||
+ | Los datos se obtienen de la siguiente forma: | ||
+ | |||
+ | <sxh python> | ||
+ | from sklearn.model_selection import train_test_split | ||
+ | from sklearn.datasets import fetch_openml | ||
+ | |||
+ | def get_datos(): | ||
+ | boston=fetch_openml(name=" | ||
+ | x=np.array(boston.data).astype(np.float32) | ||
+ | y=np.array(boston.target).astype(np.float32) | ||
+ | |||
+ | x_entrenamiento, | ||
+ | |||
+ | return x_entrenamiento, | ||
+ | </ | ||
+ | |||
+ | Las redes a probar son: | ||
+ | <sxh python> | ||
+ | redes_neuronales=[ | ||
+ | [[20, | ||
+ | [[20, | ||
+ | [[20, | ||
+ | [[20, | ||
+ | [[20, | ||
+ | [[20, | ||
+ | [[20, | ||
+ | [[20, | ||
+ | [[20, | ||
+ | [[20, | ||
+ | [[20, | ||
+ | [[20, | ||
+ | [[20, | ||
+ | [[20, | ||
+ | [[20, | ||
+ | ] | ||
+ | </ | ||
+ | |||
+ | |||
+ | <sxh base> | ||
+ | Nombre | ||
+ | | ||
+ | -------- | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | 10 [20, 40, 80, 40, 20, 1] | ||
+ | 11 [20, 40, 80, 40, 20, 1] | ||
+ | 12 [20, 40, 80, 40, 20, 1] | ||
+ | 13 [20, 40, 80, 160, 80, 40, 20, 1] 1000 relu 3.40859 | ||
+ | 14 [20, 40, 80, 160, 80, 40, 20, 1] 1000 selu 2.96527 | ||
+ | 15 [20, 40, 80, 160, 80, 40, 20, 1] 1000 tanh | ||
+ | |||
+ | </ | ||
+ | |||
+ | <note important> | ||