如何减少keras顺序模型的损失

时间:2019-07-17 15:23:01

标签: python machine-learning keras regression

我希望获得一些指导,以指导我尝试对特定系统进行建模时应采取的下一步措施。它包含3个自变量,24个因变量和大约21,000行。在建模过程中,我无法获得高于约50%的精度或低于约6500的损耗。我一直在以下代码上使用变体:

EPOCHS = 30
#OPTIMIZER = 'adam'
#OPTIMIZER = 'adagrad'
BATCH_SIZE = 10
OUTPUT_UNITS = len(y.columns)
print(f'OUTPUT_UNITS: {OUTPUT_UNITS}')

model = Sequential()
model.add(Dense(8, activation='relu', input_dim=3)) # 3 X parameters, with eng_speed removed
#model.add(Dense(8, activation='relu', input_dim=4)) # 4 X parameters
model.add(Dense(32, activation='relu' ))
#model.add(Dense(64, activation='relu' ))
#model.add(Dense(12, activation='relu' ))
model.add(Dense(OUTPUT_UNITS)) # number of predicted (y) values (labels)
model.summary()

adadelta = optimizers.Adadelta()
adam = optimizers.Adam(lr=0.001)

model.compile(optimizer=adadelta, loss='mse', metrics=['accuracy'])
#model.compile(optimizer=opt, loss='mse', metrics=['accuracy'])
history = model.fit(x=X_train, y=y_train, epochs=EPOCHS, batch_size=BATCH_SIZE)

我尝试过删除和添加图层,更改它们的大小,使用不同的优化程序,学习率等。以下两个图形代表了我所见到的典型图形-它们都很快变平,然后不要改进:

enter image description here

enter image description here

我显然是新来的,如果有人向我指出正确的方向,我将不胜感激:一种尝试的方法,一些值得阅读的东西,无论如何。预先感谢。

1 个答案:

答案 0 :(得分:4)

由于(根据您的mse损失和regression标签),您处于回归设置中,因此准确性为毫无意义(仅用于分类设置);请在What function defines accuracy in Keras when the loss is mean squared error (MSE)?

中查看自己的答案

鉴于此,原则上绝对没有理由认为6500的损失为“高”,因此需要改进...