Rでnnetパッケージを使用して、コンドミニアム(個人プロジェクト)の不動産価格を予測するANNを構築しようとしています。私はこれに新しく、数学の背景を持っていないので、私と一緒に裸にしてください。
バイナリと連続の両方の入力変数があります。たとえば、元々はyes / noだった一部のバイナリ変数は、ニューラルネット用に1/0に変換されました。他の変数はのように連続していSqft
ます。
すべての値を0〜1のスケールで正規化しています。たぶん、Bedrooms
及びBathrooms
その範囲のみであるため、正規化すべきではありません0-4?
これらの混合入力は、ANNに問題を引き起こしますか?私は大丈夫な結果を得ましたが、綿密な調査で、ANNが特定の変数に選択した重みは意味をなさないようです。私のコードは下にありますが、提案はありますか?
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)
更新: バイナリ入力を各値クラスの個別のフィールドに分割することに関する以下のコメントに基づいて、私のコードは次のようになりました。
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)
上記のコードの非表示ノードは12ですが、3〜25の範囲の非表示ノードを試しましたが、投稿された元のコードで上記の元のパラメーターよりも悪い結果が得られます。また、線形出力= true / falseで試しました。
私の推測では、バイナリ入力を適切に解釈していないため、データを別の方法でnnetにフィードする必要があります。それか、別のパラメーターを指定する必要があります。
何か案は?