【问题标题】:User Activity Prediction in PythonPython 中的用户活动预测
【发布时间】:2019-07-20 14:29:41
【问题描述】:

我正在努力解决一个标准的机器学习问题。 我正在尝试构建一个服务来预测用户下次在平台上发送消息的时间。为此,我使用了用户消息的历史数据集,该数据集结构为时间戳数组。例如:

[2019-05-23 18:28:34.741413, 2019-05-23 18:45:39.643218, 2019-05-23 23:26:44.767524]

在本系列中预测用户何时在线的下一个时间戳的最佳方法是什么?

目前我正在 Python 中创建一个数据框,然后将其放入 keras 的 Sequential() 模型中,但我需要一个 y 值来执行此操作。

感谢您对如何处理此问题的想法。

【问题讨论】:

  • 两个事件之间时间的一个很好的模型是exponential distribution。然而,Keras 似乎没有现成的指数损失。这更像是一个统计问题,而不是 ML 问题。

标签: python machine-learning keras time-series


【解决方案1】:

作为第一次尝试,我会预测到下一个时间戳的持续时间。 (回归,而不是分类。)可能更好的是预测该持续时间的对数。因为正确把握 2 分钟和 3 分钟比专注于 500 分钟和 510 分钟更重要。

作为输入,您可以使用自上一个时间戳以来的对数时间,也可能是之前的几个距离,或最后一条消息长度的对数,或一些一般用户统计信息。

但理想情况下,您应该让神经网络预测概率分布的参数,这样它就可以给您一个答案,例如“可能在接下来的 30 分钟内,当然不是在午夜之后,而是可能在早上 7 点之后”,并且然后您可以根据经验分布(例如交叉熵损失)来衡量这个预测。但这对于入门来说可能有点过于复杂。

如果您只想预测单个时间戳(而不是分布),那么理论上您必须定义适当的损失,并决定哪些错误对您的应用程序有多糟糕,然后训练模型优化这种损失。

【讨论】:

    猜你喜欢
    • 2018-11-25
    • 2014-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-11
    • 1970-01-01
    • 2011-06-12
    • 2011-01-13
    相关资源
    最近更新 更多