机器学习笔记 // 创建窗口数据集
tf.data库包含许多对操作数据很有帮助的API。你可以使用这些API来创建一个简单的数据集(包含数字0~9),模拟一个时间序列。接下来将它转换为窗口数据集的开始,代码如下:
dataset = tf.data.Dataset.range(10)
dataset = dataset.window(5, shift=1, drop_remainder=True)
dataset = dataset.flat_map(lambda window: window.batch(5))
for window in dataset:
print(window.numpy())
dataset.window的参数5指定将数据集分割为5个元素的窗口。指定shift=1导致每个窗口接下来会从前一个位置移动到下一个:第一个窗口包含从0开始的5个元素,下一个窗口包含从1开始的5个元素,以此类推。设置drop_remainder为True指定当它达到数据集靠近最后的位置时,如果窗口小于期待的大小5,它们会被丢掉。
鉴于窗口的定义,分割数据集的过程可以发生。你可以使用flat_map函数来实现它,在这个例子中指定一批大小为5的窗口。运行代码会得到下面的结果:
分割为特征值与标签的代码:
dataset = dataset.map(lambda window: (window[:-1], window[-1:]))
for x,y in dataset:
prinnt(x.numpy(), y.numpy())
结果如下:
窗口中的前4个值可以被视为特征,随后的值就是标签!