1 回答
TA贡献2019条经验 获得超9个赞
对于初学者:
您处于回归设置中,其中准确性毫无意义(它仅用于分类问题)。从模型编译中删除,不要为此烦恼 - 您应该使用与损失相同的数量(此处为MSE)来评估模型的性能。
metrics=['accuracy']
出于同样的原因(回归问题),您不应该对最后一个图层使用激活,而应该对最后一个图层使用激活(离开,就像执行该工作一样,因为这是 Keras 图层的默认激活)。
sigmoid
linear
Dense(1)
linear
具有线性激活的中间层(如您在这里的中间层)每个都只是一个单节点线性层(即几乎没有);向所有中间层添加激活(就像对第一层所做的那样)。
relu
总而言之,这是实验的起点:
model = tf.keras.Sequential()
model.add(layers.Dense(64, activation='relu', input_shape=(numInputColumns,)))
model.add(layers.Dense(128, activation='relu'))
model.add(layers.Dense(128, activation='relu'))
model.add(layers.Dense(128, activation='relu'))
model.add(layers.Dense(1))
model.compile(loss='mean_squared_error', optimizer='adam')
当你完成这一部分时,你最终会得出一个不幸的结论,即与分类问题相反,我们可以立即说准确性是否“好”,“不够好”,“坏”等,回归问题的性能指标,如MSE,不会让自己进入如此简单的评估;更糟糕的是,您的 MSE 是根据您缩放的数据计算的。阅读我的答案 如何在Keras Regressor中解释MSE 了解如何计算初始未缩放数据中的MSE,获取其平方根,从而能够以原始数据的单位进行比较,以查看它是否适合您的情况(ML教程中通常省略的一部分)...y
添加回答
举报