Używam pakietu nnet w R, aby spróbować zbudować ANN, aby przewidzieć ceny nieruchomości na mieszkanie (prywatny projekt). Jestem w tym nowy i nie mam doświadczenia w matematyce, więc proszę o kontakt ze mną.
Mam zmienne wejściowe, które są zarówno binarne, jak i ciągłe. Na przykład niektóre zmienne binarne, które były pierwotnie tak / nie, zostały przekonwertowane na 1/0 dla sieci neuronowej. Inne zmienne są ciągłe jak Sqft
.
Znormalizowałem wszystkie wartości w skali 0-1. Może Bedrooms
i Bathrooms
nie powinien być znormalizowany, ponieważ ich zakres wynosi tylko 0-4?
Czy te mieszane dane wejściowe stanowią problem dla ANN? Osiągnąłem dobre wyniki, ale po dokładniejszym zbadaniu wagi wybrane przez ANN dla niektórych zmiennych nie wydają się mieć sensu. Mój kod jest poniżej, jakieś sugestie?
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)
AKTUALIZACJA: W oparciu o poniższe komentarze dotyczące podziału danych binarnych na osobne pola dla każdej klasy wartości, mój kod wygląda teraz następująco:
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)
Ukryte węzły w powyższym kodzie to 12, ale wypróbowałem zakres ukrytych węzłów od 3 do 25 i wszystkie dają gorsze wyniki niż oryginalne parametry, które miałem powyżej w pierwotnym kodzie. Próbowałem również z wyjściem liniowym = prawda / fałsz.
Domyślam się, że muszę podawać dane do nnet w inny sposób, ponieważ nie interpretuje to poprawnie danych binarnych. Albo to, albo muszę podać inne parametry.
Jakieś pomysły?