我的MSE号码非常糟糕,我不明白我做错了什么。我知道我不能通过训练判断,但我相信我的模型训练有素。
Optimization Finished!
MSE: 3593717153792.000000
Training Time: 81.99638080596924
我希望你能给我一个想法,在哪里看,也许该做什么? 这就是我的模型的样子:
# Parameters
learning_rate = 0.0001
training_epochs = 100
batch_size = 500
display_step = 1
# Network Parameters
n_hidden_1 = 480 # 1st layer number of features
n_hidden_2 = 240 # 2nd layer number of features
n_hidden_3 = 240 # 3rd layer number of features
n_hidden_4 = 256 # 4th layer number of features
n_out = 1
n_input = X_train.shape[1]
total_len = X_train.shape[0]
除了具有线性的输出层之外,所有层都具有RELU作为激活功能。
这是我的成本函数:
cost = tf.reduce_mean(tf.abs(tf.transpose(pred) - y) / y)
这是我的数据测试:
pred_y = sess.run(pred, feed_dict={x: X_test})
mse = tf.reduce_mean(tf.abs(tf.transpose(pred_y) - Y_test))
print("MSE: %4f" % sess.run(mse))
我的数据包含最多59个功能(90个中),并仅预测一个连续值。对于培训,我使用105566标准化数据样本。我的规范化是使用sklearn完成的:
batch_x_norm = preprocessing.scale(batch_x)
我的验证集是13196个样本。 提前感谢您的帮助!