2015-04-26 29 views
5

Sto cercando di prevedere il valore mediano delle case occupate dai proprietari, è un esempio funzionante che sta dando un buon risultato. https://heuristically.wordpress.com/2011/11/17/using-neural-network-for-regression/Pronostico - Rete neurale per la regressione

library(mlbench) 
    data(BostonHousing) 
    require(nnet) 
    # scale inputs: divide by 50 to get 0-1 range 
    nnet.fit <- nnet(medv/50 ~ ., data=BostonHousing, size=2) 
    # multiply 50 to restore original scale 
    nnet.predict <- predict(nnet.fit)*50 

nnet.predict [, 1] 1 23,70904 2 23,70904 3 23,70904 4 23,70904 5 23,70904 6 23,70904 7 23,70904 8 23,70904 9 23,70904 10 23,70904 11 23.70904 12 23.70904 13 23.70904 14 23.70904 15 23.70904

Mi sto ottenendo 23.70904 stesso valore per tutto il previsto per tutte le 506 osservazioni? Perché è così ? Che cosa sto facendo di sbagliato?

La mia versione R è 3.1.2.

+1

Ho capito, era dovuto al linout = VERO che è necessario utilizzare per la variabile di risposta continua. 'nnet.fit <- nnet (medv/50 ~., Data = BostonHousing, dimensione = 10, linout = TRUE, skip = TRUE, MaxNWts = 10000, trace = FALSE, maxit = 100) ' Questa riga ha fatto il lavoro. – Sam

+1

Grande - bello vederti risolvere il tuo problema! Ti incoraggerei a rispondere alla tua stessa domanda con il pulsante "Pubblica la tua risposta" qui sotto in modo che altri possano facilmente vedere la risposta facilmente quando visitano Stack Overflow. – josliber

+0

@josilber - Fatto, grazie per avermelo detto, era nuovo in questa piattaforma quindi non lo sapevo. – Sam

risposta

6

Era dovuto al linout = TRUE che è necessario utilizzare per la variabile di risposta continua.Come stavo usando nnet per un problema di regressione (piuttosto che una classificazione) avevo bisogno di impostare linout = T per dire a nnet di usare un lineare output '

nnet.fit <- nnet(medv/50 ~ ., data=BostonHousing, size=10, linout=TRUE, skip=TRUE, MaxNWts=10000, trace=FALSE, maxit=100) 

Questo ha funzionato bene per me, spero che sia d'aiuto.