我有一个时间序列数据,但一天有很多值,如下所示:
[[day1, x1],
[day1, x2],
[day1, x3],
[day2, x4],
[day2, x5],
[day3, x6],
[day4, x7],
[day4, x8],
[day4, x9],
......]
等等。 我想把这个时间序列转换成使用python的有监督学习数据集。 我的预期数据集如下:
[[[all values in day1], [all values in day2]],
[[all values in day2], [all values in day3]],
[[all values in day3], [all values in day4]],
.....]
有没有人有过python处理这个问题的经验?你能给我一个主意吗?你知道吗
我将制作一些示例数据,以便我们可以看到算法的行为。你知道吗
有了这些,我们就可以继续按天来划分这个列表了。你知道吗
检查输出,我们看到它所做的只是按天分组。你知道吗
然后要真正把它变成一个有监督的学习问题,我们需要输入/输出对。你知道吗
这具有所需的输出:
按天分组的一个有趣的事情是,我们不必再得到相同长度的列表。许多有监督学习算法都依赖于特征向量的思想,即在整个数据集中保留长度。要将它们应用于更奇特的对象,首先必须弄清楚如何从这些对象中提取固定长度的特征向量(这里的对象指的是,例如
[0.5, 0.6]
)。你知道吗如果您每天有相同数量的数据点,这不会是一个问题,但是如果数据点的数量不同,并且这些天同时运行(即,
day1
数据的结尾对应于day2
数据的开头,或者至少是时间上接近的某个地方,因此没有很大的连续性差距),然后,您可能更感兴趣的是更接近所有值的滑动窗口,而不是按天分组的值。考虑以下几点:像往常一样,我们检查输出以了解这里发生了什么。你知道吗
你会注意到我们已经完全删除了当天的信息。尽管如此,我们可以很容易地构造一种形式的输入/输出对。你知道吗
现在检查输入(我调用
X
)和输出(我调用y
)。你知道吗您将看到
X
中的列表与y
中的列表一样多(因为它们是输入/输出对),同样重要的是X
中的每个列表的长度都是相同的。类似地,y
中的每个列表长度相同。这类问题更适合于大多数现有的机器学习算法。你知道吗也就是说,如果您的数据中有一个不连续性,比如从第1天下午5:00结束到第2天早上7:00开始,这种方法会在特征向量中隐藏该不连续性的位置。不过,这可能不是一个问题。取决于你在做什么,你有什么样的数据,希望这是足够的开始。玩得开心,欢迎来到机器学习。你知道吗
相关问题 更多 >
编程相关推荐