Autor
Francisco Guijarro
Catedrático de Universidad (profesor funcionario a tiempo completo)
Universidad Politécnica de Valencia
Las redes neuronales artificiales (del inglés artificial neural networks o ANN) es un paradigma de procesamiento de información inspirado en la forma en que el cerebro procesa la información.
Se compone de una gran cantidad de elementos de procesamiento (neuronas), altamente interconectados, que trabajan al unísono para resolver un problema específico.
Los siguientes elementos definen los modelos de redes neuronales artificiales:
Neuronas (o unidades)
Funciones de activacion
Entrenamiento y aprendizaje de las redes neuronales (Backpropagation)
Descenso de gradiente estocástico
De los dos tipos de redes neuronales artificiales que ofrece SPSS, nosotros nos centraremos en las redes perceptrón multicapa. En el ámbito de la valoración inmobiliaria se obtienen valores similares a los obtenidos con una red neuronal con función de base radial, que es la otra opción ofrecida por el paquete estadístico.
Una de las principales características que definen los modelos de redes neuronales artificiales es la no linealidad, frente a por ejemplo los modelos de regresión lineal.
La comparación entre redes neuronales artificiales y el modelo de regresión es muy interesante, ya que la red neuronal, que se puede aplicar tanto a procesos de clasificación como de regresión, se puede considerar una generalización de los modelos de regresión.
Los modelos de regresión asumen por defecto que la relación entre el precio de los inmuebles y las características de los mismos es lineal y aditiva, mientras que en las redes neuronales estas relaciones pueden ser lineales, no lineales, aditivas y/o multiplicativas.
Entre las múltiples aplicaciones de las redes neuronales artificiales podemos encontrar:
Reconocimiento facial
Reconocimiento de voz
Composición musical
Diagnóstico médico
Traducción automática de textos a otro idioma
Predicción de insolvencia empresarial
Predicción de cotizaciones bursátiles
Predicción de ventas
Análisis sobre concesión de préstamos personales
Análisis de riesgo de pérdida de clientes
Conducción automática de vehículos
Valoración inmobiliaria (pero también para otros fines no necesariamente valorativos)
Una red neuronal artificial toma datos del exterior desde su capa de entrada, los procesa y entrena extrayendo diferentes patrones, para lo que organiza una serie de neuronas en una arquitectura compuesta por una o más capas ocultas.
Fruto del entrenamiento, establece relaciones y patrones entre los datos de entrada y la variable de salida, lo que permite construir funciones para la predicción de nuevos datos de entrada.
En la siguiente figura vemos, además de la capa de entrada para recibir los datos de entrada, dos capas ocultas y una capa de salida.
Las neuronas de las capas ocultas pueden pasar información a cada una de las neuronas de la siguiente capa, o sólo a alguna de ellas.
La capa de entrada permite la introducción de datos en la red. En ella no se realiza ningún procesamiento.
La capa o capas ocultas no son visibles desde el exterior de la red. Reciben la información bien de la capa de entrada, o bien a través de alguna capa oculta intermedia.
La capa de salida es la única visible desde el exterior de la red, y es la encargada de proporcionar la respuesta del modelo.
Figura 1
. Esquema general de una red neuronal artificial
\(~\)
Fases que definen el funcionamiento de las redes neuronales artificiales:
Fase de aprendizaje: consiste en el entrenamiento de la red a través de los datos aportados a la capa de entrada. Básicamene la red irá modificando los pesos que conectan la diferentes neuronas hasta alcanzar una solución estable.
Fase de presentación: donde se proporciona la respuesta del modelo tras finalizar el entrenamiento.
Veamos el funcionamiento básico de una red neuronal a través de un ejemplo de reconocimiento de formas.
El ejemplo se plantea como un problema de clasificación, el de reconocimiento de formas, si bien para el trato de datos inmobiliarios utilizaremos la red neuronal para resolver un problema de regresión.
Problema de clasificación: la variable a predecir es binaria, o contiene un número limitado de valores (categórica).
Problema de regresión: la variable a predecir es numérica.
Existen multitud de tipos de redes neuronales artificiales, dependiendo de la arquitectura de entrenamiento que tengan y el entrenamiento que sigan. En nuestro caso nos centraremos en las redes perceptrón multicapa, por ser una que arroja resultados muy satisfactorios en valoración y viene implementada en la mayor parte de programas que incorporan redes neuronales artificiales.
“En la etapa de aprendizaje, el objetivo que se persigue es hacer mínima la discrepancia o error entre la salida obtenida por la red y la salida deseada por el usuario ante la presentación de un conjunto de patrones denominado grupo de entrenamiento. Por este motivo, se dice que el aprendizaje en las redes backpropagation es de tipo supervisado, debido a el usuario (o supervisor) determina la salida deseada ante la presentación de un determinado patrón de entrada.”
“Para evitar el problema del sobreajuste, es aconsejable utilizar un segundo grupo de datos diferentes a los de entrenamiento, el grupo de validación, que permita controlar el proceso de aprendizaje. Durante el aprendizaje la red va modificando los pesos en función de los datos de entrenamiento y de forma alternada se va obteniendo el error que comete la red ante los datos de validación.”
(Palmer et al., 2001: Tutorial sobre Redes Neuronales Artificiales: El Perceptrón Multicapa)
A la red neuronal se le presenta una serie de objetos a partir de 3 únicas formas: cuadrado, círculo o triángulo. La red neuronal tomará como entrada una de estas formas, la procesará a través de sus capas ocultas, y obtendrá una predicción, debiendo averiguar si el objeto tomado como entrada es un cuadrado, un círculo o un triángulo. Esto es, se trata de un problema de clasificación (no de regresión).
La arquitectura escogida en este caso ha sido la de una capa de entrada, dos capas ocultas (7 y 5 neuronas respectivamente) y un capa de salida.
Otra alternativa podría haber sido escoger una única capa oculta; o tener un número diferente de neuronas en las capas ocultas o las capas de salida.
Figura 2
. Arquitectura de una red neuronal artificial para un problema de clasificación
\(~\)
¿Cómo se determinan las neuronas en la capa de entrada?
Para eso tenemos que conocer la forma en que representamos el objeto que pasamos como entrada a la red. Si es una imagen de \(28 \times 28\) pixels, entonces necesitaremos 784 neuronas en la capa de entrada.
Figura 3
. Arquitectura de una red neuronal artificial para un problema de clasificación
Ejercicio
1
Si utilizáramos una red neuronal para valorar los apartamentos de una ciudad, ¿cuántas neuronas utilizaríamos en la capa de entrada?
\(~\)
En definitiva, hay que buscar las reglas que definen cuándo una figura geométrica es un círculo. De ahí que no sólo sea necesario saber si un píxel está iluminado o no, sino lo que ocurre con los píxels vecinos (conexión entre neuronas).
En la siguiente figura aparece representada la imagen del círculo como una matriz \(28 \times 28\). Cada uno de los pixels se pasa a la correspondiente neurona de la capa de entrada.
Figura 4
. Arquitectura de una red neuronal artificial para un problema de clasificación
\(~\)
Ejercicio
2
Volviendo al ejemplo de reconocimiento de formas, sería posible encontrar una solución muy sencilla para la red. Simplemente indicarle qué neuronas de la capa de entrada deben tomar valor 1 (iluminadas) y cuáles 0 (apagadas). ¿Pero qué ocurre si el círculo fuera más pequeño? ¿Y si siendo más pequeño no estuviera centrado en la imagen, sino desplazado hacia arriba o hacia un lado? ¿QUÉ PASOS SEGUIRÍAS PARA DETECTAR UN CÍRCULO?
\(~\)
En la siguiente fase se conectan las neuronas de la capa de entrada con las neuronas de la capa oculta 1. Es decir, las neuronas de entrada pasan su valores a las neuronas de la capa oculta 1.
Puede que una neurona de la capa oculta 1 esté conectada con 2, 3 o más neuronas de la capa de entrada.
En el caso extremo de que cada neurona de la capa de entrada se conectara con cada una de las neuronas de la capa oculta 1, esto significaría un total de \(784 \times 7 = 5.488\) conexiones.
Los pesos que aparecen en la figura se inicializan de forma aleatoria.
Figura 5
. Arquitectura de una red neuronal artificial para un problema de clasificación
Figura 6
. Cómo se forma la señal de una neurona
\(~\)
Las neuronas de la capa oculta 1 aplican los pesos de las conexiones (0.8, 0.2) sobre los valores que reciben de las correspondientes neuronas de entrada, y además añaden un sesgo (B).
En cierto modo, este proceso es similar a como se construye un modelo de regresión lineal múltiple.
Figura 7
. Arquitectura de una red neuronal artificial para un problema de clasificación
\(~\)
Al combinar las neuronas de entrada con los correspondientes sesgos se obtiene un valor.
La función de activación determina si esos valores son suficientes para que las neuronas se activen (pasen información a la siguiente capa oculta) o no.
Si el problema fuera de regresión, en lugar de pasar un valor 1 (activación) o 0 (no activación), pasaríamos un valor numérico, que será grande o pequeño en función de la función de activación.
Figura 8
. Arquitectura de una red neuronal artificial para un problema de clasificación
\(~\)
Seguimos el mismo procedimiento con las neuronas de la capa oculta 2.
Las neuronas de la capa de salida combinan los valores que reciben de las neuronas en la capa 2, y obtienen un valor.
La neurona de salida con mayor valor es la respuesta estimada por la red. En este caso, comprobamos que la red se ha equivocado en su diagnóstico.
El proceso de cálculo secuencial se llama propagación hacia adelante (Forward Propagation)
Figura 9
. Arquitectura de una red neuronal artificial para un problema de clasificación
\(~\)
La red mide el error cometido en cada neurona de salida, lo que le indica la dirección a tomar para mejorar en la predicción: descenso de gradiente estocástico.
Los pesos se actualizan de delante hacia atrás: propagación hacia atrás (Backprogpagation).
Figura 10
. Arquitectura de una red neuronal artificial para un problema de clasificación
\(~\)
En alguna iteración posterior, la red terminan acertando con su diagnóstico.
Procederemos entonces a tomar otra imagen y pasarla a la red neuronal. Continuamos con el entrenamiento de la red.
Figura 11
. Arquitectura de una red neuronal artificial para un problema de clasificación
\(~\)
Veamos un ejemplo de modelo de regresión para introducir esta sección.
De esta forma podemos comparar sus resultados con los obtenidos por una red neuronal, y veremos las similitudes y diferencias entre ambos métodos.
En el caso que nos ocupa, el problema que queremos resolver es la estimación de una función que prediga el precio (o el valor de venta, según tenemos en nuestra base de datos con apartamentos de Bogotá). Utilizaremos el fichero “datos.sav” que incluye 2.315 apartamentos de Bogotá.
Para ello vamos a planter un modelo de regresión que explique el valor de venta en función del área construida del apartamento:
\(precio = \beta_0 + \beta_1 area\_construida\)
En esta función algunos elementos son variables y otros son parámetros. Concretamente, estamos suponiendo que tenemos una base de datos en la que hemos recopilado, para un conjunto de apartamentos, información sobre las siguientes variables: el precio y la superficie construida.
Figura 12
. Variables que empleamos para estimar la función de valoración
\(~\)
¿Cuáles son los parámetros? Son los valores que tenemos que calcular a partir de las variables antes mencionadas, y que nos permitirán poder valorar cualquier apartamento sabiendo el área construida del mismo.
Se trata de ajustar esos parámetros a través de un modelo de regresión por mínimos cuadrados.
Figura 13
. Imagen con dos posibles rectas de regresión y pregunta sobre cuál puede ser más apropiada
\(~\)
Figura 14
. Ajuste de una recta de regresión simple a una nube de puntos
\(~\)
Figura 15
. Diagrama de dispersión entre valor_de_venta y area_construida
\(~\)
Si aplicamos un simple modelo de regresión, obtenemos los siguientes resultados:
Figura 16
. Resultado de un modelo de valoración que explica el valor de venta a partir del area_construida
\(~\)
El anterior modelo de regresión nos está diciendo que los parámetros calculados son:
\(\beta_0 = -289.491.755\)
\(\beta_1 = 8.892.994,287\)
Esto es, que la función de valoración queda de la siguiente forma:
\(valor\_de\_venta = -289.491.755 + 8.892.994,287 \times area\_construida\)
Y que la interpretación de los coeficientes es la siguiente:
\(\beta_1 = 8.892.994,287\). Por cada \(m^2\) adicional, el valor de venta estimado del inmueble se incrementa en 8,9 millones de pesos aproximadamente.
\(\beta_0 = -289.491.755\). Probablemente la interpretación de la constante sea la más difícil de entender a primera vista. Y es que NO se trata de un valor base, pues difícilmente nos vamos a encontrar con inmuebles con valor negativo.
Realmente, los 289.491.755 pesos se corresponderían con el valor de un inmueble con un área construida de 0 \(m^2\). Es decir, que no es un valor de venta real, puesto que no existen tales inmuebles, sino un ajuste matemático que permite obtener la función de valoración más ajustada a nuestro problema.
Con esta función, sería fácil estimar el valor de venta de un inmueble a partir de la variable area_construida. Por ejemplo, supongamos un apartamento de 100 \(m^2\) en Bogotá. El valor de venta estimado para dicho inmueble sería:
\(valor\_de\_venta = -289.491.755 + 8.892.994,287 \times area\_construida =\) \(-289.491.755 + 8.892.994,287 \times 100 = 599.807.673 \: COP\)
En la práctica el modelo arrojaría valores estimados negativos para inmuebles muy reducidos en cuanto al área construida:
\(-289.491.755 + 8.892.994,287 \times area\_construida < 0\)
\(area\_construida < \frac{289.491.755}{8.892.994,287}\)
\(area\_construida < 32,5 \ m^2\)
Es decir, las viviendas por debajo de 32,5 \(m^2\) tendrían un valor estimado negativo.
Ejercicio
3
Repite la regresión anterior, guardando los valores estimados para el valor de venta (se guardarán como una nueva variable denominada “Unstandardized Predicted Value”) y los residuos de la regresión (“Unstandardized Residual”). Calcula la matriz de correlaciones entre
valor_de_venta
,area_construida
, el valor estimado y el residuo. Comenta los resultados.
Figura 17
. Matriz de correlaciones entre el valor de venta, el área construida, los valores estimados y los residuos
\(~\)
\(~\)
En este primer ejemplo vamos a comprobar cómo el modelo de regresión lineal es un caso particular del modelo de red neuronal artificial.
O lo que es lo mismo, las redes neuronales son una generalización de los modelos de regresión, teniendo como virtud que no sólo capturan las relaciones lineales entre las variables sino también cualquier otro tipo de relación que permita obener un modelo de valoración más ajustado.
El modelo que vamos a implementar aparece en la siguiente figura:
Figura 18
. Red neuronal artificial. Arquitectura empleada para imitar el modelo de regresión lineal simple
\(~\)
En las siguientes figuras aparecen los cuadros de diálogo que tendremos que cumplimentar para llevar a cabo la red neuronal.
Para ello, accederemos al menú “Analizar -> Redes neuronales -> Perceptrón multicapa”.
En la pestaña “Variables” colocaremos la variable dependiente (valor_de_venta
) y la independiente -o covariable- (area_construida
). Más adelante veremos la opción de incluir “factores”.
En la lista desplegable “Cambios de escala de covariables” seleccionar “Normalizados”.
Figura 19
. Red neuronal artificial. Cuadro de diálogo “Variables”
\(~\)
Ejercicio
4
¿Por qué crees que se normalizan las variables?
En la pestaña “Arquitectura” seleccionaremos “Arquitectura personalizada”. Ahí escogeremos “Uno” como número de capas ocultas. En esta capa oculta inluiremos una sola unidad (“Número de unidades -> Personalizado -> Capa oculta 1”).
Como función de activación de la capa oculta seleccionaremos “Sigmoide”.
Como función de activación de la capa de salida seleccionaremos “Identidad”.
Por último, en “Cambio de escala de variables dependientes de escala” seleccionaremos “Normalizados”, colocando un 0 en el campo “Corrección”.
Figura 20
. Red neuronal artificial. Cuadro de diálogo “Arquitectura”
\(~\)
En la pestaña “Resultado” seleccionaremos “Ponderaciones sinápticas” dentro de “Estructura de red”.
También activaremos “Análisis de la importancia de la variable dependiente”.
Figura 21
. Red neuronal artificial. Cuadro de diálogo “Resultado”
\(~\)
Figura 22
. Red neuronal artificial. Cuadro de diálogo “Guardar”
\(~\)
Figura 23
. Red neuronal artificial. Cuadro de diálogo “Opciones”
\(~\)
Ejercicio
5
Comentar los resultados del modelo de red neuronal recién realizado.
Figura 24
. Red neuronal artificial. Resultado: arquitectura
\(~\)
Ejercicio
6
Calcular la matriz de correlaciones entre el valor de venta, el área construida, y los valores estimados por la red neuronal.
Figura 25
. Correlación entre valor de venta, área construida y los valores estimados por la red
Lo habitual será que la red, aunque la más simple tal y como la hemos planteado, obtenga en muchos casos resultados ligeramente mejor que los del modelo de regresión. La razón de esta afirmación está en el estadístico \(R^2\) del modelo de regresión y en cómo se obtiene, que veremos en la siguiente subsección. No obstante, la mejora será muy pequeña, ya que no hemos permitido una red de mayor complejidad (más capas, más unidades por capa), por lo que la correlación entre el área construida y el valor estimado será 1 o muy próximo a 1. ¿Qué significa esto?.
NOTA: puede que los valores obtenidos cambien de un ordenador a otro. Esto es así porque las redes neuronales incluyen una semilla aleatoria en sus procesos que cambia de una ejecución a otra, por lo que sus resultados son producto de un proceso estocástico. Por ejemplo, al determinar qué apartamentos formar parte del entrenamiento y cuáles del test -como veremos más adelante-, la asignación a cada grupo variará de una ejecución a otra.
\(~\)
El estadístico \(R^2\) permite estudiar la bondad en el ajuste de un modelo de regresión y conocer cuál es su capacidad explicativa.
De esta forma, podremos saber cuán bien o mal explica una función de valoración el precio de los inmuebles, y si tiene sentido aplicarla en la práctica profesional.
Además, nos permitirá comparar:
diferentes modelos de valoración, donde se empleen diferentes variables explicativas.
modelos de valoración obtenidos, por ejemplo, sobre ciudades diferentes.
Para estos dos últimos supuestos se suele emplear el \(R^2\) ajustado, cuya fórmula supone una ligera variación del \(R^2\).
Para entender cómo se calcula es necesario conocer cómo se configura el denominado modelo naive, o modelo ingenuo.
Supongamos el siguiente caso simplificado donde hemos tomado el valor de venta y la superficie de 10 apartamentos:
Valor de venta | Área construida |
---|---|
236223000 | 30 |
203136000 | 30 |
200000000 | 30 |
426156000 | 31 |
285000000 | 32 |
198000000 | 32 |
124500000 | 32 |
275000000 | 33 |
223000000 | 33 |
198000000 | 34 |
El modelo ingenuo (o modelo naive) intenta explicar el valor de venta de los apartamentos acudiendo únicamente a la siguiente información: el propio valor de venta; por lo tanto, ignorando cualquier otra variable como la superficie.
Esto haría que si tuviera que predecir el valor de cualquier otro apartamento, la mejor estimación posible sería la simple media de los 10 apartamentos que tiene en la muestra.
La siguiente tabla recoge el valor estimado por el modelo ingenuo para cualquiera de estos inmuebles, junto con el correspondiente residuo o error de estimación:
Modelo ingenuo | |||
---|---|---|---|
Valor de venta | Área construida | Valor estimado | Residuo |
236.223.000 | 30 | 236.901.500 | -678.500 |
203.136.000 | 30 | 236.901.500 | -33.765.500 |
200.000.000 | 30 | 236.901.500 | -36.901.500 |
426.156.000 | 31 | 236.901.500 | 189.254.500 |
285.000.000 | 32 | 236.901.500 | 48.098.500 |
198.000.000 | 32 | 236.901.500 | -38.901.500 |
124.500.000 | 32 | 236.901.500 | -112.401.500 |
275.000.000 | 33 | 236.901.500 | 38.098.500 |
223.000.000 | 33 | 236.901.500 | -13.901.500 |
198.000.000 | 34 | 236.901.500 | -38.901.500 |
El residuo se ha obtenido como diferencia entre el valor estimado y el valor observado (valor de venta):
\(Residuo = Valor\ estimado - Valor\ de\ venta\)
Sin embargo, el modelo de regresión explicaría el valor de venta a partir del área construida:
Modelo ingenuo | Modelo regresión | ||||
---|---|---|---|---|---|
Valor de venta | Área construida | Valor estimado | Residuo | Valor estimado | Residuo |
236.223.000 | 30 | 236.901.500 | -678.500 | 246.309.685,1 | -10.086.685,1 |
203.136.000 | 30 | 236.901.500 | -33.765.500 | 246.309.685,1 | -43.173.685,1 |
200.000.000 | 30 | 236.901.500 | -36.901.500 | 246.309.685,1 | -46.309.685,1 |
426.156.000 | 31 | 236.901.500 | 189.254.500 | 240.775.458,6 | 185.380.541,4 |
285.000.000 | 32 | 236.901.500 | 48.098.500 | 235.241.232,0 | 49.758.768,0 |
198.000.000 | 32 | 236.901.500 | -38.901.500 | 235.241.232,0 | -37.241.232,0 |
124.500.000 | 32 | 236.901.500 | -112.401.500 | 235.241.232,0 | -110.741.232,0 |
275.000.000 | 33 | 236.901.500 | 38.098.500 | 229.707.005,5 | 45.292.994,5 |
223.000.000 | 33 | 236.901.500 | -13.901.500 | 229.707.005,5 | -6.707.005,5 |
198.000.000 | 34 | 236.901.500 | -38.901.500 | 224.172.779,0 | -26.172.779,0 |
Cuanto más pequeños sean los residuos del modelo de regresión en comparación con los residuos del modelo ingenuo, mejor será el modelo de regresión.
Con esta información se calcula el valor del \(R^2\):
Suma de cuadrados de residuos del modelo ingenuo
\(SC_{ingenuo} = (-678.500)^2 + (-33.765.500)^2 + \ldots + (-38.901.500)^2 = 57.938.519.538.500.000\)
Suma de cuadrados del modelo de regresión \(SC_{regresión} = (-10.086.685,1)^2 + (-43.173.685,1)^2 + \ldots + (-26.172.779,0)^2 = 57.384.158.835.171.300\)
Y finalmente el valor del \(R^2\):
\(R^2 = 1- SC_{regresión}/SC_{ingenuo} = 1 - \frac{57.384.158.835.171.300}{57.938.519.538.500.000} = 0,96\%\)
El valor de \(R^2\) fluctúa entre 0 y 1 (¡salvo que el modelo de regresión fuera peor que el ingenuo!).
Si el valor se sitúa cerca de 1 (100%) podemos concluir que el modelo de regresión es muy bueno, mientras que valores próximos a 0 (0%) indican un desempeño muy pobre. Precisamente éste sería el caso del modelo aplicado sobre esos 10 apartamentos.
Con un ejemplo real, el valor del \(R^2\) es mucho mayor que en el ejemplo anterior. En el caso de toda la base de datos con la que estamos trabajando, el \(R^2\) es del 69,9%.
Además, conforme añadamos más variables con la regresión múltiple, el \(R^2\) se irá acercando a valores ideales entorno al 90% o superiores.
Figura 26
. Significación estadística del modelo y los coeficientes de la regresión entre valor de venta y área constuida
Ejercicio
7
¿Qué significado tiene la columna “Sig.” en la tabla de coeficientes?
\(~\)
Ejercicio
8
Realizar una regresión lineal entre los valores estimados por la red neuronal (variable dependiente) y el área construida (variable independiente). Compara la función obtenida con la que se obtuvo en la regresión entre valor de venta y área construida.
Ejercicio
9
Vuelve a correr la red neuronal. ¿Se obtienen exactamente los mismos resultados o hay alguna variación? ¿Qué pasará si volvemos a calcular la matriz de correlaciones?
Para mejorar el modelo anterior vamos a dar libertad a la red neuronal para que escoja automáticamente la arquitectura que considere más adecuada.
Además, pasaremos de normalizar las variables a tomar valores estandarizados, que es la opción que trae SPSS por defecto.
Para ello correremos el modelo de red neuronal artificial pero con los siguientes cambios:
En el cuadro de diálogo de “Variables”, dentro de “Cambios de escala de covariables” escogeremos “Estandarizados”, que es la opción que trae por defecto.
En la pestaña de “Arquitectura”, seleccionar la opción “Selección automática de arquitectura”, con un número mínimo y máximo de unidades por capa de 1 y 50, respectivamente.
Los resultados serán similares a los que aparecen en las siguientes figuras.
En este caso, el programa ha seleccionado una única capa oculta y 3 unidades o neuronas en ella.
Se observa una mejoría de 0,01 (un 1%) en la correlación.
Figura 27
. Modelo de red neuronal con selección automática de arquitectura. Detalle del diagrama de la red
\(~\)
Figura 28
. Modelo de red neuronal con selección automática de arquitectura. Pesos sinápticos
\(~\)
Figura 29
. Matriz de correlaciones
\(~\)
Ejercicio
10
Repetir el último experimento varias veces, comparando la matriz de correlaciones resultante con la anterior. De esta forma podemos ver si la mejoría en el coeficiente de correlación es consistente o puede ser aleatoria. Comprobar si en todos los casos el programa escoge la misma arquitectura o varía de un caso a otro.
Figura 30
. Matriz de correlaciones en 4 experimentos diferentes
\(~\)
Hemos visto en los anteriores experimentos que al dar libertad para que el programa escoja la arquitectura de la red, habitualmente se mantendrá en una red neuronal de una capa oculta, mientras que el número de unidades o neuronas por capa fluctuará entre 1 y 3 (por lo general).
Esto ocurre habitualmente si queremos obtener una función de valoración a partir de una sola variable explicativa.
¿Pero qué efecto tiene el número de neuronas sobre la función de valoración? Vamos a ver la influencia del número de neuronas representando los valores estimados por la red frente al área construida (que es la variable independiente que estamos usando en estos primeros ejemplos).
Para ello se aconseja borrar los valores estimados por la red hasta ahora, a fin de tener el fichero de datos lo más limpio posible.
Ejercicio
11
Repetir una red neuronal que explique el
valor_de_venta
mediante elarea_construida
empleando una sóla capa oculta con 1 unidad. Emplear la función de activación tangente hiperbólica para la capa oculta, y la identidad para la capa de salida. Guardar los valores estimados por la red. Representar en un diagrama de dispersión estos valores (Y) frente alarea_construida
(X). ¿Crees que la función de valoración es lineal con el área construida, al igual que sería en un modelo de regresión lineal?
Figura 31
. Arquitectura de la red neuronal con una neurona en la capa oculta
\(~\)
Figura 32
. Dispersión entre el valor pronosticado por la red y el área construida
\(~\)
Ejercicio
12
Repetir el ejercicio anterior con 2 neuronas en la capa oculta.
Figura 33
. Arquitectura de la red neuronal con dos neuronas en la capa oculta
\(~\)
Figura 34
. Dispersión entre el valor pronosticado por la red y el área construida
\(~\)
Ejercicio
13
Repetir el ejercicio anterior con 5 neuronas en la capa oculta.
Figura 35
. Arquitectura de la red neuronal con 5 neuronas en la capa oculta
\(~\)
Figura 36
. Dispersión entre el valor pronosticado por la red y el área construida
\(~\)
Conclusiones:
La red neuronal no establece un modelo lineal entre el valor de venta y el área construida, ni tan siquiera en el caso de tener una sólo neurona en la capa oculta.
Llega un momento en el que añadir más neuronas no modifica la curva. Sencillamente, aumentar la complejidad de la red no hace mejorar el ajuste.
De todo esto se desprende que la red neuronal artificial que implementa SPSS no es una simple suma ponderada de los inputs. El hecho de que la función de activación en la capa oculta no sea la identidad, hace que el modelo resultante no sea lineal, y por lo tanto sea diferente del modelo tal y como se vio en la Introducción de este capítulo (y diferente del modelo de regresión lineal).
¿Y por qué la función de activación determina la no linealidad? La siguiente sección lo explica.
La función de activación es la encargada de pasar la señal de una neurona a otra.
Si la función de activación es la Identidad, esto implica que una neurona pasa su información a la siguiente neurona sin realizar ninguna modificación. Es la transmisión más simple.
Otras funciones de activación sí permiten considerar las relaciones no lineales entre las variables, al transformar el valor que una neurona le pasa a la siguiente. No obstante, SPSS sólo implementa unas pocas.
Figura 37
. Posibles funciones de activación
\(~\)
Seguidamente vamos a proceder a realizar el mismo modelo de redes neuronales pero tomando logaritmos para ambas variables.
El hecho de que los datos no sigan una distribución normal afecta muy especialmente a los modelos de regresión, pero también aunque sea en menor medida a los modelos de redes neuronales.
La presencia de distribuciones con colas muy alargadas es relativamente habitual en la valoración inmobiliaria, lo que hace que la distribución de los datos no sea estrictamente normal.
Ejercicio
14
Realizar un histograma para las variables
valor_de_venta
yarea_construida
. Calcular las nuevas variableslog_valor_de_venta = LG10(valor_de_venta)
ylog_area_construida = LG10(area_construida)
, a través del menúTransformar -> Calcular
representando sus histogramas y comparándolos con los anteriores.
\(~\)
Figura 38
. Histograma del valor de venta
\(~\)
Figura 39
. Histograma del área construida
\(~\)
Figura 40
. Histograma del logaritmo del valor de venta
\(~\)
Figura 41
. Histograma del logaritmo del area construida
\(~\)
La transformación logarítmica de estas dos variables supone la mejora en el ajuste que hagamos tanto como con una regresión lineal como con una red neuronal.
Para comprobarlo, vamos a correr de nuevo el último análisis de red neuronal, guardando los valores pronosticados. Posteriormente, calculamos la matriz de correlaciones para comprobar la mejora obtenida.
Ejercicio
15
Realizar un nuevo modelo de red neuronal. Emplearemos como variable dependiente el logaritmo del valor de venta (
log_valor_de_venta
) y como covariable el logaritmo del área construida (log_area_construida
)
\(~\)
Figura 42
. Matriz de correlaciones entre el logaritmo del valor de venta, el logaritmo del área construida y los valores estimados por la red neuronal
NOTA: Nuevamente estos valores pueden variar de una ejecución a otra, como ocurre en todas las operaciones vinculadas a una red neuronal.
\(~\)
Para comprobar lo advertido en la nota anterior, se ha corrido el modelo de red neuronal otras 4 veces. En la siguiente figura comprobamos como en todos los casos la correlación entre el logaritmo del valor de venta y los valores estimados es mayor que la correlación entre el logaritmo del valor de venta y el logaritmo del área construida.
Esto, como en los anteriores casos, se traduce en que la red neuronal es capaz de explicar mejor las variaciones en el valor de venta de los apartamentos. Dicho de otra forma, la red neuronal obtiene mejores resultados que el modelo de regresión, su curva se ajusta mejor que la recta del modelo de regresión lineal.
Figura 43
. Matriz de correlaciones entre el logaritmo del valor de venta, el logaritmo del área construida y los valores estimados por la red neuronal en 5 experimentos distintos
\(~\)
En este apartado vamos a dar un pequeño salto introduciendo una nueva variable explicativa: el estrato.
Ejercicio
16
Realizar un nuevo modelo de red neuronal. Variable dependiente: log_valor_de_venta; Covariables: log_area_construida y estrato.
\(~\)
Figura 44
. Diagrama de la red neuronal
\(~\)
Figura 45
. Pesos sinápticos de la red neuronal
\(~\)
Figura 46
. Importancia de las variables de la red neuronal
\(~\)
Para comprobar la calidad del modelo, lo compararemos con el de una regresión con las mismas variables. Para ello guardaremos los valores estimados de la regresión:
Figura 47
. Regresión entre log_valor_de_venta, y log_area_construida y estrato
\(~\)
Ejercicio
17
Calcular la correlación entre el logaritmo del valor de venta, y los valores estimados por la red y por la regresión. ¿Cuál es mejor?
\(~\)
Figura 48
. Correlación para comparar resultados de la red con modelo de regresión
\(~\)
Puede comprobarse, al repetir el modelo de red neuronal varias veces, que en todos los casos supera a la regresión.
Esto ocurre porque la red empieza a encontrar relaciones no lineales entre las variables explicativas, cosa que no podemos hacer con el modelo de regresión que hemos planteado.
¿Qué significa esto último? El modelo es capaz de diferenciar que, por ejemplo, el impacto del área construida en el valor de venta puede variar de un estrato a otro. Y que ese impacto no tiene por qué ser lineal.
Ejercicio
18
Representar en un gráfico de dispersión las variables
log_area_construida
(x) y los valores pronosticados por la red (y).
Figura 49
. Diagrama de dispersión entre log_area_construida
y los valores pronosticados por la red
\(~\)
Hemos visto en los apartados anteriores como empleábamos variables numéricas como covariables para explicar el valor de venta de los apartamentos: área construida y estrato.
Los factores se corresponden con variables categóricas o nominal, en las que la red neuronal sustituye la variable original por tantas variables binarias como niveles tenga la variable categórica.
Veamos un ejemplo:
estrato | estrato2 | estrato3 | estrato4 | estrato5 | estrato6 |
---|---|---|---|---|---|
2 | 1 | 0 | 0 | 0 | 0 |
3 | 0 | 1 | 0 | 0 | 0 |
4 | 0 | 0 | 1 | 0 | 0 |
5 | 0 | 0 | 0 | 1 | 0 |
6 | 0 | 0 | 0 | 0 | 1 |
¿Para qué hacer esto? SPSS traducirá la presencia de factores en una arquitectura más compleja, que permitirá capturar la relacion no lineal que existe entre el valor de venta, el área construida y el estrato. Nota: los siguientes valores fueron obtenidas sin haber eliminado algunos valores atípicos.
En modelos aún muy sencillo como éste, en el que sólo tenemos dos variables explicativas, puede que no se produzca ninguna mejora en la explicación del valor de venta. Pero 1) al incluir más variables el modelo tendrá mayor capacidad explicativa, y 2) la red neuronal será más fácilmente interpretable como veremos a continuación.
Figura 50
. Valor de venta por metro cuadrado, media por estrato
\(~\)
Figura 51
. Red neuronal multicapa. Variables: estrato como factor
\(~\)
Figura 52
. Red neuronal multicapa. Arquitectura: una capa oculta con dos unidades
\(~\)
Figura 53
. Estructura de la red neuronal
\(~\)
Figura 54
. Pesos sinápticos
\(~\)
Figura 55
. Importancia de las variables en la consecución de la función de valoración
\(~\)
Ejercicio
19
Interpretar los pesos sinápticos de las variables en las dos unidades de la capa oculta. ¿Puede decirse que una neurona recoge las diferencias de valor entre estratos mientras que la otra se corresponde básicamente con el área construida?
\(~\)
Ejercicio
20
Calcular la matriz de correlaciones entre
log_valor_de_venta
, valores estimados por la red, y valores estimados por la regresión entrelog_valor_de_venta
,log_area_construida
yestrato
. ¿Mejora la red neuronal al considerar el estrato como factor respecto de considerarlo covariable?
\(~\)
Figura 56
. Matriz de correlación para comparar la bondad del modelo de red neuronal y el modelo de regresión múltiple
\(~\)
Ejercicio
21
Repetir el ejercicio pero sustituyendo la variable estrato por el número de habitaciones. Comentar los resultados comparándolos con los obtenidos en el anterior ejercicio.
\(~\)
Figura 57
. Estructura de la red neuronal
\(~\)
Figura 58
. Pesos sinápticos
\(~\)
Figura 59
. Importancia de las variables en la consecución de la función de valoración
\(~\)
Figura 60
. Matriz de correlación para comparar la bondad del modelo de red neuronal y el modelo de regresión múltiple
\(~\)
Lo normal es que los pesos del número de habitaciones en una neurona no sean tan lineales como ocurre con el caso del estrato. ¿Por qué?
La respuesta está en el número de apartamentos que tenemos para cada nivel del estrato y para cada nivel del número de habitaciones. Vemos que el nivel de habitaciones=5 tiene muy pocos apartamentos en comparación con el resto. Quizá una opción es juntar los apartamentos con 4 y 5 habitaciones (con la interpretación de que serían apartamentos con 4 o más habitaciones).
Figura 61
. Tabla de frecuencias para las variables estrato y habitaciones