微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

回归神经网络返回低范围值进行预测

如何解决回归神经网络返回低范围值进行预测

我正在尝试使用回归 nn 模型预测一个介于 3 到 7 之间的值。我目前有 1000 个样本,每个样本有 1000 个点,对应于生理数据。但是,预测值始终在 5.6 到 5.9 的范围内。我试图改变层数,调整参数等。但它只改变了基础值,而不是范围(即预测,例如,在 6.6 到 6.9 的范围内)。

这里是算法的基本核心(数据已经归一化了):

X_train,X_test,y_train,y_test = train_test_split(x_0,y_0,test_size=0.2,shuffle = False,stratify = None)
K.clear_session()
model = Sequential()
model.add(Dense(128,activation='relu',input_shape=(1000,)))
#model.add(Dropout(0.2))
model.add(Dense(128,activation='relu'))
model.add(Dense(128,activation='relu'))
model.add(Dense(1,activation='linear'))
model.compile(loss="mean_absolute_error",optimizer=Adam(lr=0.001),metrics=['mean_absolute_error'])

model.summary()
history = model.fit(X_train,batch_size=30,epochs=10,verbose=1,validation_split=0.2)
score = model.evaluate(X_test,y_test)
print("Test score:",score)
y_pred = model.predict(X_test)

感谢您的帮助!

解决方法

我猜您的输入已排序,我可以看到您在 shuffle=False 中设置了 train_test_split。这意味着您的神经网络从未见过验证值。因此它不会在验证期间外推。设置 shuffle=True 应该有效。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。