Interpretando la salida de la red neuronal en R?

8

Logré crear una red neuronal de mis datos. Pero no estoy tan seguro sobre la interpretación de la salida R. Usé el siguiente comando para crear una red neuronal:

> net=nnet(formula = category~iplen+date_time, size=0,skip=T,lineout=T)
# weights:  3
initial  value 136242.000000 
final  value 136242.000000 
converged

Luego usé el siguiente comando para ver el resultado:

    > summary(net)
a 2-0-1 network with 3 weights
options were - skip-layer connections 
 b->o i1->o i2->o 
 0.64 -0.46  0.15

Entonces, de la salida anterior, ¿puedo concluir el siguiente diagrama de red neuronal ?: red

La segunda pregunta es ¿cómo puedo saber qué tan útil es este diagrama? Quiero decir que quería encontrar el número de categoría (variable objetivo) de las variables independientes. Entonces, ¿cómo puedo decidir si esta red realmente me ayudó a predecir la categoría (variable de destino)? ¿Cuál es el resultado final o cómo encontrarlo?

¿Puedo concluir el siguiente resultado de la red n anterior? :

category= -0.46(iplen)+0.15(date_time)+0.64

Saludos,


fuente

Respuestas:

6

Tu interpretación parece correcta. Puede verificarlo usted mismo llamando predicta algunos datos y comparando sus cálculos predict. Primero hice esto en una hoja de cálculo, y luego calculé una red neuronal R usando metaprogramación .

Por cierto, el paquete R neuralnetdibuja diagramas agradables, pero aparentemente solo admite regresión (¿no clasificación?).

Andrés
fuente
Andrew, gracias por la respuesta. Una cosa más que quería discutir es que obtuve una ecuación: categoría = -0.46 (iplen) +0.15 (fecha_hora) +0.64 de la salida de nnet. ahora puedo comparar esto con mi ecuación de regresión que puedo crear después de hacer una regresión lineal de la siguiente manera: lm (categoría ~ iplen + fecha_hora) y luego la ecuación de regresión lineal será algo así como: categoría = ß1 (iplen) + ß2 (fecha_hora) + ß0
No está completamente claro, pero la clasificación se puede lograr estableciendo `linear.output = FALSE` en el neuralnetpaquete. ref
Sr. Tsjolder
¿Cuál es el significado de las líneas "iter 130 value 119841.088094" y "final value 136242.000000"? ¿Qué son esos números?
skan
1
@skan: Esa es la optimización del descenso del gradiente
Andrew
5

también puede usar el siguiente código para trazar resultados de nnet

install.packages("devtools")
library(devtools)
source_url('https://gist.githubusercontent.com/fawda123/7471137/raw/466c1474d0a505ff044412703516c34f1a4684a5/nnet_plot_update.r')

#plot each model
plot.nnet(net)

referencia: https://beckmw.wordpress.com/tag/nnet/

Fahad Malik
fuente
Hm, eso es interesante, pero no trama muy bien en mi caso (no parece querer poner información sobre el peso). Aún así, ¡votar de más porque tener más herramientas es mejor que tener menos!
Ken