Как добавить случайный шум с нулевым значением в обучающие данные?

#noise

#шум

Вопрос:

     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. С какой проблемой вы столкнулись с приведенным выше (подобным этому) выражением?

2. на самом деле я хочу случайным образом добавить нулевое значение в обучающие данные. Я знаю, как добавить случайный шум в обучающие данные (например, этот пример добавления шума). Здесь я использую np.random.normal. Я хочу получить обучающие данные с нулевым значением (не случайным значением).

Ответ №1:

Используйте случайный выбор, чтобы получить набор индексов, основанных на пропорции, и, наконец, установите для них значение 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
  

Комментарии:

1. Мистер, я принял ваш ответ. Но я хотел бы знать еще одну вещь. Если у меня есть данные (50,42) строк и столбцов, я хочу увеличить 0 в пропорции от 0,3 до 0,5 для каждой строки. Как я могу это сделать?

2. Я не могу придумать ответ в одну строку на это. Вы можете в любое время выполнить итерацию строка за строкой и выполнить это. Позвольте мне обновить здесь, если я найду лучший способ сделать это.