我正在R中使用nnet软件包来尝试构建ANN以预测公寓(个人项目)的房地产价格。我是新来的,没有数学背景,所以请和我一起裸露。
我有二进制和连续输入变量。例如,对于神经网络,一些最初为是/否的二进制变量被转换为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,因为它无法正确解释二进制输入。要么,要么我需要给它不同的参数。
有任何想法吗?