nnet - neuralnet r
R-neuralnet-El backprop tradicional parece extraño (1)
Se recomienda que normalice sus datos antes de alimentarlos a una red neuronal. Si haces eso, entonces estás listo para ir:
library(neuralnet)
data(infert)
set.seed(123)
infert[,c(''age'',''parity'',''induced'',''spontaneous'')] <- scale(infert[,c(''age'',''parity'',''induced'',''spontaneous'')])
fit <- neuralnet::neuralnet(formula = case~age+parity+induced+spontaneous,
data = infert, hidden = 3,
learningrate = 0.01,
algorithm = "backprop",
err.fct = "ce",
linear.output = FALSE,
lifesign = ''full'',
lifesign.step = 100)
preds <- neuralnet::compute(fit, infert[,c("age","parity","induced","spontaneous")])$net.result
summary(preds)
V1
Min. :0.02138785
1st Qu.:0.21002456
Median :0.21463423
Mean :0.33471568
3rd Qu.:0.47239818
Max. :0.97874839
En realidad, hay algunas preguntas sobre SO que tratan con esto. ¿Por qué tenemos que normalizar la entrada de una red neuronal artificial? parecía tener algunos de los más detalles.
Estoy experimentando con los diferentes algoritmos en el paquete neuralnet
pero cuando pruebo el algoritmo backprop
tradicional los resultados son muy extraños / decepcionantes. Casi todos los resultados calculados son ~ .33 ??? Supongo que debo estar usando el algoritmo de forma incorrecta, como si lo ejecutara con el valor predeterminado rprop+
diferencia entre muestras. Sin duda, la retropropagación normal no es tan mala, especialmente si puede converger tan rápidamente al umbral proporcionado.
library(neuralnet)
data(infert)
set.seed(123)
fit <- neuralnet::neuralnet(formula = case~age+parity+induced+spontaneous,
data = infert, hidden = 3,
learningrate = 0.01,
algorithm = "backprop",
err.fct = "ce",
linear.output = FALSE,
lifesign = ''full'',
lifesign.step = 100)
preds <- neuralnet::compute(fit, infert[,c("age","parity","induced","spontaneous")])$net.result
summary(preds)
V1
Min. :0.3347060
1st Qu.:0.3347158
Median :0.3347161
Mean :0.3347158
3rd Qu.:0.3347162
Max. :0.3347286
¿Se supone que algunas configuraciones son diferentes aquí?
Ejemplo predeterminado neuralnet
set.seed(123)
fit <- neuralnet::neuralnet(formula = case~age+parity+induced+spontaneous,
data = infert, hidden = 3,
err.fct = "ce",
linear.output = FALSE,
lifesign = ''full'',
lifesign.step = 100)
preds <- neuralnet::compute(fit, infert[,c("age","parity","induced","spontaneous")])$net.result
summary(preds)
V1
Min. :0.1360947
1st Qu.:0.1516387
Median :0.1984035
Mean :0.3346734
3rd Qu.:0.4838288
Max. :1.0000000