gpt4 book ai didi

python - 使用python在高斯过程回归中对训练数据集进行数据增强

转载 作者:行者123 更新时间:2023-12-03 17:35:13 25 4
gpt4 key购买 nike

我正在使用 scikit-learn 解决高斯过程回归问题。为了执行预测,我有一个数据集,其中包含 3D 坐标中传感器的 10 个不同位置:例如
传感器 1 坐标:

[[  30.1678 -173.569   725.724 ]
[ 29.9895 -173.34 725.76 ]
[ 29.9411 -173.111 725.768 ]
[ 29.9306 -173.016 725.98 ]
[ 29.6754 -172.621 725.795 ]
[ 29.5277 -172.274 725.903 ]
[ 29.585 -171.978 726.111 ]
[ 29.4114 -171.507 726.188 ]
[ 29.3951 -170.947 726.173 ]
[ 29.3577 -170.196 726.384 ]]
我使用 Leave One Out 技术执行 GPR,因此在每次运行中我使用 9 个 3D 坐标。训练我的模型并在 1 个坐标上测试它。然后我改变排列继续。
为了防止过拟合问题,我想使用数据增强来放大(或添加噪声)我的训练数据。不幸的是,我见过的大多数数据增强技术都用于图像(随机旋转、裁剪、翻转等)。我的问题是:
  • 有什么方法可以为我在 python 中的数据做这件事吗?
  • 是否有任何限制适用于我上述数据的扩充。我可以为特定的 3D 坐标添加多少噪声。?
  • 要添加的新噪声数据,例如用于列 x应该在 min (29.585) 之间和最大 (30.1678)值。我对么?或者它也可以按行完成?

  • 编辑
    所以,我手动产生了噪音。
    def use_data_augmentation(self, data):
    sizeOfData= 1000

    # Add noise to column x
    # Find min/max of each individual col
    noiseColXMin = np.min(data[:, 0])
    noiseColXMax = np.max(data[:, 0])

    # Generate random number between min/max
    addNoiseToColX = self.create_random_floats(noiseColXMin, noiseColXMax, sizeOfData)

    # Add noise to column y
    ...
    # Add noise to column z
    ...

    # Convert three 1D arrays to one 3D array
    addInputNoiseTotal = np.array([addNoiseToColX, addNoiseToColY, addNoiseToColZ]).T
    print('addInputNoiseTotal :\n', addInputNoiseTotal,
    '\nSDX:', np.std(addInputNoiseTotal[:, 0]),
    '\nSDY:', np.std(addInputNoiseTotal[:, 1]),
    '\nSDZ:', np.std(addInputNoiseTotal[:, 2]))

    def create_random_floats(low, high, size):
    return [random.uniform(low, high) for _ in range(size)]
    我现在的问题是:如果我通过 random.uniform(low, high, size) 在最小值/最大值之间生成浮点数,那么噪声数据的标准偏差有时大于 0.81.0 .因此 GPR 预测的 RMS 更差。如何设置限制,以便生成的浮点数的 SD 不能大于例如 0.2 ?

    最佳答案

    鉴于两个之和的方差独立 随机变量是它们方差的总和,您可以计算数据集的方差,并使用均匀随机变量的方差等于 (high - low)**2 / 12 的事实。 ,并且标准偏差是方差的平方根,选择 highlow满足条件的值

    np.sqrt(np.var(dataset) + (high - low)**2 / 12) <= 0.2
    这应该确保生成的噪声数据的标准偏差小于或等于您的阈值 0.2 .

    关于python - 使用python在高斯过程回归中对训练数据集进行数据增强,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48975402/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com