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

为什么在 SupervisedDBNRegression, Neural Networks 中,我的 Y 的预测值相同且 R 平方为负

如何解决为什么在 SupervisedDBNRegression, Neural Networks 中,我的 Y 的预测值相同且 R 平方为负

我的模型没有输出我预期的结果。我不太了解 ANN 的方法。在从 https://github.com/albertbup/deep-belief-network 学习如何使用 SuperviseddbnClassification 之后,我决定使用位于 https://raw.githubusercontent.com/Honeson/ANN-qos_qoe/main/QoS/qosqoeNew2 的数据集尝试 SuperviseddbnRegression。在预训练阶段,我得到的误差小于 0.05,但在微调阶段损失高达 1468356。我的输出通常是相同的精确值。我尝试根据此处的解决方案更改学习率,规范日期等,Neural Network Always Produces Same/Similar Outputs for Any Input 但无济于事,我不断从 nan 输出到所有输出相同或在分类问题中的类中。部分代码用于查看我尝试过的内容

X = df[columns]
Y = df['StartUpDelay'].values

# Splitting data
X_train,X_test,Y_train,Y_test = train_test_split(X,Y,test_size=0.2,random_state=1337)

# Data scaling
min_max_scaler = MinMaxScaler()
X_train = min_max_scaler.fit_transform(X_train)

# Training
regressor = SuperviseddbnRegression(hidden_layers_structure=[100],learning_rate_rbm=0.05,learning_rate=0.1,n_epochs_rbm=20,n_iter_backprop=100,batch_size=16,activation_function='relu')

regressor.fit(X_train,Y_train)

# Test
X_test = min_max_scaler.transform(X_test)
Y_pred = regressor.predict(X_test)
print(Y_pred)
print('Done.\nR-squared: %f\nMSE: %f' % (r2_score(Y_test,Y_pred),mean_squared_error(Y_test,Y_pred))) 

我希望得到 Y_pred,例如 1002,1653,2764,1121,2112,1452,1324,1331, 等,但我宁愿得到 nan,nan,...,nan 或 像 1456,1456,1456 这样的值,或 像 1111,1222,1333,1111,1333 这样的值。

我将感谢详细的帮助,因为我不太了解 ANN。提前致谢。

编辑 1:我再次将学习率从 0.01 更改为 0.00001,我得到了不同的 Y 预测值,但比预期结果大得多。我也得到了荒谬的指标

R 平方:-37862.875097 MSE:56730616135.090736

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