为什么在 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 (将#修改为@)