Sto usando il pacchetto nnet in R per tentare di costruire un ANN per prevedere i prezzi degli immobili per i condomini (progetto personale). Sono nuovo in questo e non ho una preparazione in matematica, quindi per favore spoglio con me.
Ho variabili di input che sono sia binarie che continue. Ad esempio alcune variabili binarie che erano originariamente sì / no sono state convertite in 1/0 per la rete neurale. Altre variabili sono continue come Sqft
.
Ho normalizzato tutti i valori su una scala 0-1. Forse Bedrooms
e Bathrooms
non dovrebbe essere normalizzato poiché il loro intervallo è solo 0-4?
Questi input misti presentano un problema per la RNA? Ho ottenuto risultati soddisfacenti, ma a un esame più attento i pesi scelti dalla RNA per determinate variabili non sembrano avere senso. Il mio codice è sotto, qualche suggerimento?
ANN <- nnet(Price ~ Sqft + Bedrooms + Bathrooms + Parking2 + Elevator +
Central.AC + Terrace + Washer.Dryer + Doorman + Exercise.Room +
New.York.View,data[1:700,], size=3, maxit=5000, linout=TRUE, decay=.0001)
AGGIORNAMENTO: Sulla base dei commenti seguenti relativi alla suddivisione degli input binari in campi separati per ogni classe di valore, il mio codice ora appare come:
ANN <- nnet(Price ~ Sqft + Studio + X1BR + X2BR + X3BR + X4BR + X1Bath
+ X2Bath + X3Bath + X4bath + Parking.Yes + Parking.No + Elevator.Yes + Elevator.No
+ Central.AC.Yes + Central.AC.No + Terrace.Yes + Terrace.No + Washer.Dryer.Yes
+ Washer.Dryer.No + Doorman.Yes + Doorman.No + Exercise.Room.Yes + Exercise.Room.No
+ New.York.View.Yes + New.York.View.No + Healtch.Club.Yes + Health.Club.No,
data[1:700,], size=12, maxit=50000, decay=.0001)
I nodi nascosti nel codice sopra sono 12, ma ho provato una gamma di nodi nascosti da 3 a 25 e tutti danno risultati peggiori rispetto ai parametri originali che avevo sopra nel codice originale pubblicato. Ho anche provato con output lineare = vero / falso.
La mia ipotesi è che devo alimentare i dati in rete in modo diverso perché non interpreta correttamente l'input binario. O quello, o ho bisogno di dargli parametri diversi.
Qualche idea?