datetime 像 one-hot-encoding 或其他类似的东西编码 one-hot-vector 是否有意义

数据挖掘 机器学习 深度学习 时间序列 word2vec
2021-10-09 10:59:56

我是机器学习和深度学习的新手。我想解决时间序列问题,它每秒都有数据。另外,我最近一直在研究 word2vector 和时间序列数据。有一天,我想出了一个想法,将日期时间等序列数据转换为一次性编码?

    time
2017-11-01 00:00:01
2017-11-01 00:00:02
2017-11-01 00:00:03
2017-11-01 00:00:04
.
.
.

我的想法有一些限制,如下所示,

  • 学习维度太高(1 天 = 60* 60 * 24 = 86400(s))
  • 无限时间 - 即使是现在,每一刻都会产生时间
  • 秒差太小,学不来

我希望你确定我在上面所说的关于限制的内容。另外,我希望你能给我一些想法,将时间序列数据开发成用于机器学习和深度学习的单一热向量?+ 你怎么看这个想法?

1个回答

如果您试图预测未来的值,那么将它们视为分类特征是没有意义的。你不会学到任何东西来预测未来的数据,因为你不会再看到那些时代了。

即使您试图预测看不见的过去数据,但每次只出现一次或少数几次,情况也是如此。

相反,时间值应该确定训练数据的顺序。通过这种方式,您可以避免泄漏未来的数据,并且具有状态的模型可以从数据的顺序性质中学习特征。

但是,在某些情况下,您可能希望从时间值中提取其他特征。这里有些例子:

  1. 自上次有趣事件以来的时间
  2. 大小为 n 的上一个时间窗口中的有趣事件数
  3. 一天中的时间(早上/下午/等)
  4. 星期几
  5. 假期
  6. 季节

让我们举个例子。以下是用户访问网站的时间数据集:

time               user
2017-11-01 00:00   Alice
2017-11-01 00:00   Bob
2017-11-02 00:00   Chris
2017-11-03 00:00   Alice
2017-11-04 00:00   Alice
2017-11-04 00:00   Bob
2017-11-07 00:00   Chris
2017-11-10 00:00   Alice

这是我们添加的具有附加功能的相同数据集:

time               user    last_visit   weekend?   time_of_day
2017-11-01 16:22   Alice   N/A          No         afternoon
2017-11-01 11:13   Bob     N/A          No         morning
2017-11-02 20:35   Chris   N/A          No         evening
2017-11-03 16:07   Alice   2 days       No         afternoon
2017-11-04 17:20   Alice   1 day        Yes        afternoon
2017-11-04 10:44   Bob     3 days       Yes        morning
2017-11-07 08:06   Chris   5 days       No         morning
2017-11-10 17:11   Alice   6 days       No         afternoon

如果我们试图预测某个用户下一次访问的时间,那么这些功能可能对我们有很大帮助。例如,我们可能决定 Alice 更有可能在下午访问,或者 Bob 不太可能连续两天访问。