gpt4 book ai didi

python - Tensorflow 神经网络的简单回归误差非常高

转载 作者:行者123 更新时间:2023-11-30 09:32:39 25 4
gpt4 key购买 nike

我正在尝试构建一个神经网络,以便在 Tensorflow 中使用 Keras 进行回归。

我尝试根据一组特征来预测歌曲的排行榜排名,我发现低特征 1、高特征 2 和高特征 3 与高特征之间存在很强的相关性。图表上的位置(输出排名较低,例如位置 1)。

然而,在训练我的模型之后,训练集和测试集的 MAE 都约为 3500(非常非常高)。添加一些值后,对于所有 3 个特征中值较低的观测值,它似乎给出了最低的输出排名。

我认为这可能与我标准化数据的方式有关。将其放入 pandas 数据框中(每个功能都有一列)后,我使用以下代码进行标准化:

def normalise_dataset(df):
return df-(df.mean(axis=0))/df.std()

我使用的顺序模型包含一个包含 64 个神经元的密集输入层和一个包含 1 个神经元的密集输出层。这是其定义代码:

model = keras.Sequential([
keras.layers.Dense(64, activation=tf.nn.relu, input_dim=3),
keras.layers.Dense(1)
])
optimizer = tf.train.RMSPropOptimizer(0.001)
model.compile(loss='mse', optimizer=optimizer, metrics=['mae'])

我是一名软件工程师,而不是数据科学家,所以我不知道这个模型设置是否是解决我的问题的正确配置,我非常愿意接受有关如何使其更好地适合我的使用的建议案件。

谢谢

编辑:这是我的训练数据的前几个整体,大约有 100,000 个整体。最后的 col (finalPos) 包含标签,这是我试图预测的字段。

chartposition,tagcount,artistScore,finalPos
256,191,119179,4625
256,191,5902650,292
256,191,212156,606
205,1480523,5442
256,195,5675757,179
256,195,933171,7745

最佳答案

第一个明显的事情是您以错误的方式规范化数据。正确的做法是

return (df - df.mean(axis=0))/df.std()

我刚刚更改了括号,但基本上它是(数据 - 平均值)除以标准差,而您是将平均值除以标准差。

关于python - Tensorflow 神经网络的简单回归误差非常高,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52095862/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com