【问题标题】:Tensorflow Model PreProcess Time DataTensorflow 模型预处理时间数据
【发布时间】:2021-01-15 09:23:39
【问题描述】:

我获得了出租车客户何时何地进入他的车辆的信息。现在我想预测他想在哪条街上开车。我的数据集如下所示:

示例

日、时、分、入口、目的地(标签)

星期一,10 日,45 日,ExampleStreet,StackOverflowCorner(未预处理)

0、10、45、0、1(预处理)

转换如下:

现在我像这样预处理我的数据集:

Day -> 0-6 之间的数字(0 星期一,1 星期二 ...)

小时 -> 0-24 的欧洲格式

分钟 -> 无预处理

入口 -> 我使用了 LabelEncoder (0 ExampleStreet, 1 ExampleCorner ...)

目的地 -> 与带有标签编码器的入口相同

我得到了 98 个可能的目的地、相同数量的入口和大约 700 个样本。 我已经使用过 Tensorflow,但验证准确度仅接近 0。

model = keras.Sequential([     

tf.keras.layers.Dense(100, activation='relu'),
keras.layers.BatchNormalization(),
tf.keras.layers.Dropout(0.4),

tf.keras.layers.Dense(100, activation='relu'),

tf.keras.layers.Dropout(0.3),

tf.keras.layers.Dense(98,activation="softmax")
]) 
optimizer=keras.optimizers.RMSprop()
model.compile(optimizer=optimizer, loss=tf.keras.losses.sparse_categorical_crossentropy,     metrics=['accuracy'])

问题

我是否正确地预处理了我的数据?我需要热编码还是收集更多样本?另一种算法可能更有效(树?)?

提前谢谢...

【问题讨论】:

    标签: tensorflow keras data-preprocessing


    【解决方案1】:

    您需要对 Entrance 和 day 进行一种热编码。并且可能 - 小时。

    您需要更多样本(样本数量应接近模型变量数量的顺序)。但是试试 one-hot 看看

    【讨论】:

    • 谢谢兄弟。现在我的准确率是 ~0.14(随机 Acc ~ 0.01),但我的过度拟合真的很快。你知道如何改变我的模型吗?还是我只需要收集更多数据?
    • @MareSeestern 为密集层添加正则化,例如:tf.keras.layers.Dense(100, activation='relu', kernel_regularizer=tf.keras.regularizers.l2(0.001), 正则化参数可以在 0 到 0.1 之间变化,数字越大,正则化越多。
    • @MareSeestern 可训练变量的数量是多少(model.summary() 的打印输出)?
    • @Andrey 25.000 可训练参数 - 所以我还需要 25.000 个样本?
    • @Marcus 感谢您的提示。它没有改变什么:/
    【解决方案2】:

    您至少应该对入口和目的地进行一次热编码,使用标签编码将整数分配给这些特征,这些特征将被模型解释为具有数字关系的序数值。显然,入口和目的地没有“顺序”。我会像您所做的那样将日期编码,因为显然一周中的天数是按顺序排列的,小时和分钟也是如此。我怀疑分钟作为一个功能有很多用途,所以你可能不想包含它。有 98 个类和只有 700 个样本,您的模型是否会产生非常高的准确度值得怀疑。

    【讨论】:

    • 感谢 Gerry,我 one-hot 编码了入口、目的地、(天、小时),但低准确度没有改变。
    • @Gerry P 使用sparse_categorical_crossentropy时对目的地(标签)进行编码是没有意义的
    • 还尝试将损失更改为 categorical_crossentropy 进行编码。
    • 你是对的 - 不应该在第一杯咖啡之前回答问题!
    猜你喜欢
    • 1970-01-01
    • 2023-03-15
    • 1970-01-01
    • 1970-01-01
    • 2020-11-10
    • 2017-06-07
    • 1970-01-01
    • 1970-01-01
    • 2016-12-07
    相关资源
    最近更新 更多