【问题标题】:Keras model not working (loss not decreasing and accuracy stays at zero)Keras 模型不工作(损失不减少,准确率保持为零)
【发布时间】:2020-10-17 17:04:58
【问题描述】:

我是 Keras/Tensorflow 的新手,我使用这些专有数据构建了这个模型,在给定与用户和商店的距离的情况下,估计商店需要多长时间才能将商品交付给用户。

就这么简单:

距离(米) | 时间(分钟)

5823 | 20.59

5822 | 21.00

6728 | 26.41

6114 | 17.64

6728 | 24.18

1970 | 11:00

我有 5000 对这些关系,绘制它们可以得到以下可视化效果:

我正在尝试建立一个模型来预测最大距离是多少,以使交货时间始终低于 10 分钟。

from keras.layers import Dense
from keras.optimizers import SGD


model = Sequential()
model.add(Dense(4, activation = 'relu'))
model.add(Dense(4, activation = 'relu'))
model.add(Dense(4, activation = 'relu'))
model.add(Dense(1, activation = 'sigmoid'))

opt = SGD(lr=0.01)
model.compile(optimizer = opt, loss = 'mean_squared_error', metrics=["accuracy"])
model.fit(X_train, Y_train, epochs = 500)

当它训练时,它给了我以下信息:

发生了什么?我该如何解决?

【问题讨论】:

    标签: python tensorflow machine-learning keras neural-network


    【解决方案1】:

    您的数据存在大量差异。因此,立即使用神经网络可能不是对数据建模的最佳方式。从数据科学的角度来看,在使用 ML 模型之前,您需要解决一些问题:

    1. 您需要转换数据以使整体方差较低。您可以尝试根据一些变换向数据添加另一个维度,然后应用 NN。

    2. 您需要对数据进行规范化,以便因变量和自变量共享相同的值范围(例如 0 到 1)。

    【讨论】:

    • 规范化数据意味着我将距离除以距离的最大值并对时间做同样的事情吗?这样距离和时间都会有 0 到 1 的值,对吧?
    • 您有什么建议 1. 例如,记录值以减少方差?或者还有其他你认为更好的变换函数吗?
    猜你喜欢
    • 2021-12-28
    • 1970-01-01
    • 2020-03-15
    • 1970-01-01
    • 1970-01-01
    • 2021-04-21
    • 2023-03-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多