为3个输入和1个输出选择keras回归模型

时间:2019-05-21 14:50:05

标签: python tensorflow keras neural-network

enter image description here

这是我的excel数据散点图。我的神经网络模型有3个输入和1个输出,在Excel中总共有4列。和200行。数据经过标准化处理。

enter image description here

所以我有一个keras模型,如下:

def create_model():
    ann_model = Sequential()
    ann_model.add(Dense(120, input_dim=3, kernel_initializer='normal', activation='tanh'))
    ann_model.add(Dense(60, activation='tanh'))
    ann_model.add(Dense(1, activation='linear'))
    return ann_model

original_inputs = read_inputs(r'train_cd.xlsx')
original_outputs = read_outputs(r'train_cd.xlsx')

model = create_model()

sgd = SGD(lr=0.001, decay=1e-6, momentum=0.9, nesterov=True)

model.compile(loss='mean_squared_error', optimizer='adam', metrics=['mse', 'accuracy'])

model.fit(original_inputs, original_outputs, batch_size=10, epochs=1800, verbose=False, shuffle=False)

test_result = model.predict(original_inputs)

# ----------Plot---------------------------------------------
plt.plot(original_outputs, label="y-original")
plt.plot(test_result, label="y-predicted")
plt.legend()
plt.show()
# -----------------------------------------------------------

enter image description here

但是此训练结果的准确性接近%100。如何更改模型隐藏层节点?我想获得接近100%的高精度。

1 个答案:

答案 0 :(得分:0)

为了提高准确性,您可以尝试其他方法:

  • 添加更多层并利用其神经元数量
    ->具有更多层和更多神经元,该模型可以学习更高级别的模式

  • 打印模型损失和准确性历史记录,看看曲线是什么样子(增加/减少快速/慢速,如果您加盖或模型可能尚未完成学习->更多时期,等等)

  • 使用批处理大小,更改优化器,尝试其他激活功能

我希望可以为您提供帮助