RedNeuronal Matlab
Enviado por Martin Sanchez • 21 de Marzo de 2020 • Apuntes • 745 Palabras (3 Páginas) • 111 Visitas
Ejemplo Redes Neuronales Artificiales (RNA) con MATLAB[pic 4]
El ejemplo propuesto representa un sistema de I.A diseñado para predecir el valor de una casa (en miles de dólares) basándose en 13 parámetros de entrada conformados por indicadores geográficos y de el estado actual del inmueble.
Housing Data Set:
Data Set Characteristics: | Multivariate | Number of Instances: | 506 | Area: | N/A |
Attribute Characteristics: | Categorical, Integer, Real | Number of Attributes: | 14 | Date Donated | 1993‐07‐07 |
Associated Tasks: | Regression | Missing Values? | No | Number of Web Hits: | 32912 |
Fuente: This dataset was taken from the StatLib library which is maintained at Carnegie Mellon University.
Data Set Information: Concerns housing values in suburbs of Boston.
Parametros:
- CRIM: per capita crime rate by town
- ZN: proportion of residential land zoned for lots over 25,000 sq.ft.
- INDUS: proportion of non‐retail business acres per town
- CHAS: Charles River dummy variable (= 1 if tract bounds river; 0 otherwise)
- NOX: nitric oxides concentration (parts per 10 million)
- RM: average number of rooms per dwelling
- AGE: proportion of owner‐occupied units built prior to 1940
- DIS: weighted distances to five Boston employment centres
- RAD: index of accessibility to radial highways
- TAX: full‐value property‐tax rate per $10,000
- PTRATIO: pupil‐teacher ratio by town
- B: 1000(Bk ‐ 0.63)^2 where Bk is the proportion of blacks by town
- LSTAT: % lower status of the population
- MEDV: Median value of owner‐occupied homes in $1000's
Línea de Comandos
Como primera instancia es necesario cargar los datos de entrenamiento:
load housing
Para simplificar el diseño y el procesamiento que realiza MATLAB, se recomienda mapear los valores de los vectores en el rango [‐1,1].
[p2,ps]=mapminmax(p); [t2,ts]=mapminmax(t);
Dividir los datos en: datos de entrenamiento (train), datos de prueba (test) y datos de validación (val). En este caso nos interesa dejar el 60% del total de los datos para entrenamiento, el 20% del total de los datos para pruebas y el 20% del total de los datos para validación.
[trainV,val,test] = dividevec(p2,t2,0.20,0.20);
Para este ejemplo se va a crear y a entrenar una RNA de dos capas, con 20 neuronas en la capa oculta. A mayor número de neuronas se requiere un mayor proceso de cómputo, pero le permite a la red resolver problemas más complicados.
net = newff(minmax(p2),[20 1]); [net,tr]=train(net,trainV.P,trainV.T,[],[],val,test);
El entrenamiento se detiene (para este ejemplo) en 19 iteraciones, ya que en ese punto el error de validación se incrementa. Sin embargo, se considera que el resultado es apropiado, debido a que el error cuadrático medio es pequeño (analizar gráfica generada).
...