我希望能得到一些指导,关于我接下来应该采取哪些步骤来建模一个特定系统。这个系统包含3个独立变量,24个依赖变量,大约21,000行数据。在我的建模尝试中,我无法将准确率提高到50%以上,或者将损失降低到6500以下。我一直在使用以下代码的变体:
EPOCHS = 30#OPTIMIZER = 'adam'#OPTIMIZER = 'adagrad'BATCH_SIZE = 10OUTPUT_UNITS = len(y.columns)print(f'OUTPUT_UNITS: {OUTPUT_UNITS}')model = Sequential()model.add(Dense(8, activation='relu', input_dim=3)) # 3 X参数,已移除eng_speed#model.add(Dense(8, activation='relu', input_dim=4)) # 4 X参数model.add(Dense(32, activation='relu' ))#model.add(Dense(64, activation='relu' ))#model.add(Dense(12, activation='relu' ))model.add(Dense(OUTPUT_UNITS)) # 预测(y)值(标签)的数量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)
我尝试过移除和添加层,改变它们的尺寸,使用不同的优化器,调整学习率等。以下两个图表是我通常看到的——它们都很快就变得平坦,然后不再改进:
显然我是新手,如果有人能指导我正确的方向,我将不胜感激:尝试一种方法,阅读一些资料,或其他任何建议。提前感谢。
回答:
根据你的mse
损失和regression
标签,你处于回归设置中,准确率是无意义的(它只在分类设置中使用);请查看我在当损失为均方误差(MSE)时,Keras中定义准确率的函数是什么?中的回答
鉴于此,原则上绝对没有理由认为6500的损失是“高”的,因此不需要改进…