如何根据标签过滤和平衡带有二进制分类标签的窗口化 Tensorflow 数据集?

晶圆厂

我有一个不平衡的张量流窗口数据集,带有标签(超过 90% 的反例),我试图通过过滤来平衡。我在过滤时遇到问题,因为我的带有标签的窗口数据集不属于我在搜索中遇到的情况或 tensorflow 文档。

我正在研究基于时间序列数据预测二元分类的模型。我从一个时间序列数据帧开始,其中包含许多列(价格、交易量等),其中每一行是一分钟。

目前我仍然坚持过滤不同的标签。过滤后的下一步是获取两个过滤数据集的大小,找到较小的大小 (n),然后在对较大的数据集进行混洗后,将较小的数据集与较大的数据集中的 (n) 个元素连接起来。这样我就会有一个平衡的数据集,其中有相同数量的 1 和 0 标签。如果您有更好的想法,我会很高兴听到。

解释我的代码: DFrame 是一个包含价格、数量等列的 Pandas 数据框,每一行是不同的分钟,第一行是最早/最旧的时间段。DFrame 的最后一列是分类器 0 或 1。

然后我从切片创建一个 tensorflow 数据集,第一个输入是除最后一列中的标签外的所有 DFrame 列,第二个输入(标签)是最后一列,即分类器。

然后我使用窗口函数创建大小(事后看来)的窗口,当前为 512,这意味着(如果我没记错的话)它需要前 511 分钟以及当前分钟,并将其用作滚动窗口来关联当前分钟的标签。所以我的理解是x然后是512个数组的数组,从当前分钟的行到511分钟前的行,y是当前分钟的标签。所以 x 是一个包含 512 个数组的数组(每分钟的行,来自数据帧),而 y 只是一个整数,1 或 0。

理想情况下,我希望能够将相同的平衡逻辑应用于多类分类问题,我基本上为额外的价格变动范围添加了额外的标签。

错误来自过滤器。该模型似乎没有那个就可以运行,甚至可以训练我的 keras 模型。正如所解释的,一旦我开始使用过滤器来平衡数据集,我实际上想在过滤器之后添加更多代码,但我需要先过滤它。

tensor= tf.data.Dataset.from_tensor_slices((tf.constant(DFrame[DFrame.columns.values[:-1]].values), tf.constant(DFrame[DFrame.columns.values[-1]].values)))

tensor = tensor.window(hindsight,1,1,True)

tensor = tensor.shuffle(1000)

tensor = tensor.filter(lambda x,y: tf.equal(y, 0))

tensor = tensor.flat_map(lambda x,y:tf.data.Dataset.zip((x.batch(hindsight), y.batch(1))))

tensor = tensor.batch(Batch_size).prefetch(1)



TypeError: Failed to convert object of type <class 'tensorflow.python.data.ops.dataset_ops._VariantDataset'> to Tensor. Contents: <_VariantDataset shapes: (), types: tf.int64>. Consider casting elements to a supported type.
晶圆厂

想通了,必须在平面地图之后执行过滤器,并为谓词指定 y[0] 而不仅仅是 y

def Tensify (dataframe, hindsight):
    tensor = tf.data.Dataset.from_tensor_slices((tf.constant(dataframe[dataframe.columns.values[:-1]].values), tf.constant(dataframe[dataframe.columns.values[-1]].values)))
    tensor = tensor.window(hindsight,1,1,True)
    tensor = tensor.flat_map(lambda x,y: tf.data.Dataset.zip((x.batch(hindsight), y.batch(1))))
    return tensor

def BalanceTensor(tensor, npos):
    positive = tensor.filter(lambda x,y: tf.math.equal(y[0],1))
    negative = tensor.filter(lambda x,y: tf.math.equal(y[0],0))
    negative = negative.shuffle(1000)
    negative = negative.take(npos)
    tensor = positive.concatenate(negative)
    return tensor

tensor = Tensify(DFrame, hindsight)
tensor = BalanceTensor(tensor, sum(DFrame["target"]))

tensor = tensor.shuffle(1000)
tensor = tensor.batch(Batch_size).prefetch(1)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

按类别过滤Tensorflow数据集

来自分类Dev

如何从numpy数组中获取Tensorflow 2中的窗口化数据集?

来自分类Dev

如何从 npy 文件中读取数据作为 TensorFlow 数据集

来自分类Dev

Tensorflow 数据集使用

来自分类Dev

Tensorflow数据集管道用于对补丁进行分类

来自分类Dev

用于鸢尾花数据集分类的 CNN(Tensorflow)(多级)

来自分类Dev

TensorFlow数据集的函数cache()和prefetch()有什么作用?

来自分类Dev

Pandas数据框,TensorFlow数据集:在哪里进行TensorFlow令牌化步骤?

来自分类常见问题

如何正确组合TensorFlow的数据集API和Keras?

来自分类Dev

如何使用Tensorflow数据集进行CNN模型训练

来自分类Dev

如何使用Tensorflow数据集进行CNN模型训练

来自分类Dev

Tensorflow:如何手动分片数据集

来自分类Dev

如何将Tensorflow数据集保存到文件中?

来自分类Dev

如何正确使用形状未知的TensorFlow数据集API?

来自分类Dev

Tensorflow-如何使用全批次的 MNIST 数据集?

来自分类Dev

如果不在 TensorFlow 图上,如何评估数据集映射操作?

来自分类Dev

如何在 Tensorflow 中使用张量生成数据集

来自分类Dev

二进制分类情况下数据集不平衡的问题

来自分类Dev

如何在TensorFlow中使用我自己的数据将图像分为测试集和训练集

来自分类Dev

在带有会话的图形模式下使用Tensorflow数据集窗口操作时出错

来自分类Dev

Tensorflow 数据集 api 问题

来自分类Dev

TensorFlow用于二进制分类

来自分类Dev

如何在 Tensorflow 训练期间将 [3751,4] 数据集密集和重塑为 [1,6] 数据集

来自分类Dev

具有字符串输入的Tensorflow数据集不保留数据类型

来自分类Dev

Tensorflow:可视化 MNIST 数据集上线性分类器的训练权重

来自分类Dev

使用 UCI 数据集处理 Tensorflow 数据

来自分类Dev

将Tensorflow数据集转换为2个包含图像和标签的数组

来自分类Dev

如何将(相同大小,分类过的)图像转换为TensorFlow的数据集

来自分类Dev

TensorFlow二进制图像分类:预测数据集中每个图像的每个类别的概率

Related 相关文章

  1. 1

    按类别过滤Tensorflow数据集

  2. 2

    如何从numpy数组中获取Tensorflow 2中的窗口化数据集?

  3. 3

    如何从 npy 文件中读取数据作为 TensorFlow 数据集

  4. 4

    Tensorflow 数据集使用

  5. 5

    Tensorflow数据集管道用于对补丁进行分类

  6. 6

    用于鸢尾花数据集分类的 CNN(Tensorflow)(多级)

  7. 7

    TensorFlow数据集的函数cache()和prefetch()有什么作用?

  8. 8

    Pandas数据框,TensorFlow数据集:在哪里进行TensorFlow令牌化步骤?

  9. 9

    如何正确组合TensorFlow的数据集API和Keras?

  10. 10

    如何使用Tensorflow数据集进行CNN模型训练

  11. 11

    如何使用Tensorflow数据集进行CNN模型训练

  12. 12

    Tensorflow:如何手动分片数据集

  13. 13

    如何将Tensorflow数据集保存到文件中?

  14. 14

    如何正确使用形状未知的TensorFlow数据集API?

  15. 15

    Tensorflow-如何使用全批次的 MNIST 数据集?

  16. 16

    如果不在 TensorFlow 图上,如何评估数据集映射操作?

  17. 17

    如何在 Tensorflow 中使用张量生成数据集

  18. 18

    二进制分类情况下数据集不平衡的问题

  19. 19

    如何在TensorFlow中使用我自己的数据将图像分为测试集和训练集

  20. 20

    在带有会话的图形模式下使用Tensorflow数据集窗口操作时出错

  21. 21

    Tensorflow 数据集 api 问题

  22. 22

    TensorFlow用于二进制分类

  23. 23

    如何在 Tensorflow 训练期间将 [3751,4] 数据集密集和重塑为 [1,6] 数据集

  24. 24

    具有字符串输入的Tensorflow数据集不保留数据类型

  25. 25

    Tensorflow:可视化 MNIST 数据集上线性分类器的训练权重

  26. 26

    使用 UCI 数据集处理 Tensorflow 数据

  27. 27

    将Tensorflow数据集转换为2个包含图像和标签的数组

  28. 28

    如何将(相同大小,分类过的)图像转换为TensorFlow的数据集

  29. 29

    TensorFlow二进制图像分类:预测数据集中每个图像的每个类别的概率

热门标签

归档