用于密度预测的多类回归

数据挖掘 机器学习 Python 喀拉斯 时间序列 回归
2022-03-12 20:36:50

这是我在 DS 社区的第一个问题,所以我很乐意接受任何类型的(元)建议 :)。

我有一组users(〜100)的时间序列数据,而每15分钟记录一次antenna它们连接到哪个(〜80)(类似于手机连接)。

基于这些数据,我创建了一个密度向量,它在一段时间 t(即 01.01.2016 的 06:00)计算有多少用户连接到了哪个天线

这样的密度对象(与上面给出的同一天和同一时间)可能如下所示:

  • 100:5;
  • 101:2;
  • 102:3;
  • 103:0;

而第一个数字是指天线的某个ID,第二个数字是指连接到天线的用户数。

我计划将此时间序列数据提供给循环神经网络。

结果应该是在下一个时间步(所以每 15 分钟)连接到天线的预测用户数。所以它可能会预测 01.01.2016 的 06:15:

  • 100:7;
  • 101:0;
  • 102:1;
  • 103:2;

现在我想知道输出层应该是什么样的?特别是关于神经元的数量和激活功能。我已经阅读了很多关于多项逻辑回归的内容,但一些确认会很好。

如果它应该输出每个天线的预测用户数,它应该有可能具有相同数量的神经元;所以它会是 80,就像在具有 softmax 激活函数的多类分类场景中一样。

所以我需要的是一个不同的激活函数,但即使在阅读了很多之后,我仍然无法理解它。

ie Get multiple output from Keras建议使用线性激活函数,但在他们的案例中,他们试图通过使用回归来预测接下来的 3 个值;而我试图预测一组天线的下一个值。

PS:为了构建神经网络,我使用的是(Tensorflow-)Keras。

PPS:为了馈入神经网络,我将生成所有时间步长的密度向量,然后以 batch_size = 80(天线数)分批馈送。出于好奇:我碰巧只有 1 个特征,所以 input_shape 可能是 (batch_size, 1, 1*80); 如果我有 2 个特征,那会是 (batch_size, 1, 2*80) 吗?

PPPS:甚至不太清楚如何命名这个问题。我认为它可能被称为(时间序列)多类回归问题,但我找不到任何同名的例子(撇开多项逻辑回归)。

1个回答

如果要预测原始用户数,那么这是一个经典的回归问题。为每个天线设置一个带有节点的输出层,并且没有激活函数。

相反,如果您需要预测所有天线上的概率分布/频率,请使用 softmax 激活,以便每个输出向量的总和为 1。