Ich verwende das nnet-Paket in R, um zu versuchen, eine ANN zu erstellen, um die Immobilienpreise für Eigentumswohnungen vorherzusagen (persönliches Projekt). Ich bin neu in diesem Bereich und habe keinen mathematischen Hintergrund.
Ich habe Eingabevariablen, die sowohl binär als auch stetig sind. Zum Beispiel wurden einige Binärvariablen, die ursprünglich Ja / Nein waren, für das neuronale Netz in 1/0 konvertiert. Andere Variablen sind stetig wie Sqft
.
Ich habe alle Werte auf eine Skala von 0-1 normiert. Vielleicht Bedrooms
und Bathrooms
sollte nicht normalisiert werden, da ihr Bereich nur 0-4 ist?
Stellen diese gemischten Eingänge ein Problem für den ANN dar? Ich habe gute Ergebnisse erzielt, aber bei näherer Betrachtung scheinen die von der ANN für bestimmte Variablen gewählten Gewichte keinen Sinn zu ergeben. Mein Code ist unten, irgendwelche Vorschläge?
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)
UPDATE: Basierend auf den Kommentaren unten zum Aufteilen der Binäreingaben in separate Felder für jede Wertklasse sieht mein Code jetzt folgendermaßen aus:
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)
Die versteckten Knoten im obigen Code sind 12, aber ich habe eine Reihe von versteckten Knoten von 3 bis 25 ausprobiert und alle liefern schlechtere Ergebnisse als die ursprünglichen Parameter, die ich oben im veröffentlichten Originalcode hatte. Ich habe es auch mit linearer Ausgabe versucht = wahr / falsch.
Ich vermute, dass ich die Daten auf andere Weise an nnet weiterleiten muss, da dies die Binäreingabe nicht richtig interpretiert. Entweder das, oder ich muss ihm andere Parameter geben.
Irgendwelche Ideen?