Как добавить случайный шум с нулевым значением в тренировочных данных? - PullRequest
0 голосов
/ 15 марта 2019
    gt_array = [38.28,   236.86,    96.498,  187.41,   125.21,   131.59,   154.72,    78.156,
  198.58,    42.268,  121.22,   145.94,   157.11,   106.07,   196.98,    98.891,
  236.06,    94.903,  115.64,   177.05,   157.91,   157.11,   186.62,   147.54,
  224.9,    145.94,   115.64,   202.57,   161.1,    189.81,   189.81,   185.02,
  224.9,   183.43,   112.45,   228.88,   153.12,   236.86,   180.24,   241.64,
  204.96,   245.63]

У меня есть эти тренировочные данные. Я хочу добавить нулевую ценность к некоторым данным в обучении, чтобы получить лучшую модель с шумоподавлением. Я знаю, как этот:

noise_factor = 0.5
    input_noisy = gt_array + noise_factor * np.random.normal(loc = 0.0, scale = 1.0 , size = gt_array.shape)

Но я хочу получить случайно нулевой шум в тренировочных данных? Как я могу это сделать?

1 Ответ

0 голосов
/ 15 марта 2019

Используйте случайный выбор, чтобы получить набор индексов на основе пропорции и, наконец, установить их на 0.

zero_noise_proportion = 0.3 # 30% of the data
indices = np.random.choice(np.arange(gt_array.size), 
                           replace=False, 
                           size=int(gt_array.size * zero_noise_proportion))
gt_array[indices] = 0
...