基于我的数据集预测一天/小时的建模策略

数据挖掘 Python 分类 回归 预测建模 模型选择
2022-03-15 18:58:44

这是我第一次在这里发帖。我通常在SO上。所以我不确定这些问题是否适合 DS stackexchange。我真的需要对此发表意见。

我有什么数据 -

+-----------+------------+-----+------+-----+------+-----+------+-----+------+-----+------+-----+------+-----+------+-----+------+-----+------+-----+------+------+-------+------+-------+------+----------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+----------+----------+----------+----------+
|    Day    |    Date    | 0:0 | 0:30 | 1:0 | 1:30 | 2:0 | 2:30 | 3:0 | 3:30 | 4:0 | 4:30 | 5:0 | 5:30 | 6:0 | 6:30 | 7:0 | 7:30 | 8:0 | 8:30 | 9:0 | 9:30 | 10:0 | 10:30 | 11:0 | 11:30 | 12:0 | 12:30 pm | 1:00 pm | 1:30 pm | 2:00 pm | 2:30 pm | 3:00 pm | 3:30 pm | 4:00 pm | 4:30 pm | 5:00 pm | 5:30 pm | 6:00 pm | 6:30 pm | 7:00 pm | 7:30 pm | 8:00 pm | 8:30 pm | 9:00 pm | 9:30 pm | 10:00 pm | 10:30 pm | 11:00 pm | 11:30 pm |
+-----------+------------+-----+------+-----+------+-----+------+-----+------+-----+------+-----+------+-----+------+-----+------+-----+------+-----+------+------+-------+------+-------+------+----------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+----------+----------+----------+----------+
| Tuesday   | 01/01/2019 |   2 |    2 |   2 |    2 |   2 |    2 |   2 |    2 |   2 |    1 |   1 |    1 |   1 |    1 |   1 |    1 |   1 |    1 |   1 |    1 |    1 |     1 |    1 |     1 |    9 |        9 |       8 |       8 |       8 |       8 |       1 |       1 |       9 |       4 |      10 |      10 |       8 |       8 |       8 |       4 |       4 |       8 |       8 |       8 |        4 |        8 |        5 |        5 |
| Wednesday | 02/01/2019 |   8 |    9 |   1 |    1 |   1 |    1 |   1 |    1 |   1 |    1 |   1 |    1 |   1 |    1 |   1 |    1 |   1 |    1 |   9 |    9 |    5 |     9 |    3 |     3 |    3 |        3 |       3 |       3 |       3 |       3 |       3 |       3 |       3 |       3 |       3 |       9 |       1 |       1 |       1 |       9 |      12 |      12 |       3 |       3 |       10 |       10 |        4 |        4 |
+-----------+------------+-----+------+-----+------+-----+------+-----+------+-----+------+-----+------+-----+------+-----+------+-----+------+-----+------+------+-------+------+-------+------+----------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+----------+----------+----------+----------+

每行是一天,有 48 列。每列是半小时时钟,从午夜开始到晚上 11:30。列中的每个数字代表一个特定类别。

例如,如果我们看到Tuesdayat column的第一行0:0,则值为 2。这里 2 代表类别 - 社交时间。同样,1 代表类别 - 睡眠,所有数字都说明了我在一天中的特定时间所做的事情。

我有大约过去 2 年的数据,所以大约有 700 x 48 个数据点。


我的目标是什么——

根据这些数据,我想预测我的下一个/未来的一天或一小时

我卡在哪里了-

我的预测变量是entire row(当天)或单次column(30 分钟)。我的第一个想法是旋转整个数据,对每个响应变量进行一次热编码,然后考虑应用哪个分类模型。但随后每一天也与前一天有关。所以这不仅仅是一个分类问题。它也有一些回归。

我很难以哪种方式准备数据并继续。


我要什么——

一种处理此类数据集的方法。

我不一定要寻找要应用的模型。我主要关心的是了解in which way如何准备我的数据,以便它可以在模型中使用。

任何帮助、指导、类似的问答或相关文章都会有所帮助。

1个回答

我可以想到两种方法来做到这一点。

一种是拥有与您当前拥有的数据结构相同的数据结构。然后,您可以使用所有列作为特征来训练任何回归模型。您可以使用 LinearRegressor 或 RandomForestRegressor 等。然后要预测多个列中的多个值,您需要使用“ multioutputregressor ”之类的东西。这样,您就可以输入一天的模型数据,而模型会为您预测第二天。因此,您可以从模型中获得多个预测(输出)。

您可以执行此操作的另一种方法是将列转换为多行。例如你可以有这样的东西:

+-----------+-----------------+-------+
|    Day    |    Date         | value |
+-----------+-----------------+-------+ 
| Tuesday   | 01/01/2019 0:0  |   2   |
| Tuesday   | 02/01/2019 0:30 |   2   |
| Tuesday   | 02/01/2019 1:0  |   2   |
| Tuesday   | 02/01/2019 1:30 |   2   |
| Tuesday   | 02/01/2019 2:0  |   2   |
| Tuesday   | 02/01/2019 2:30 |   2   |
+-----------+-----------------+-------+

然后你可以使用上面提到的 Regressor 模型之一来预测一行,也就是一个半小时。然后你可以把这个预测放回数据中,再次训练模型并预测接下来的半小时。你可以继续这样做,直到你有一整天的预测。

希望这可以帮助,