#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. Я не могу придумать ответ в одну строку на это. Вы можете в любое время выполнить итерацию строка за строкой и выполнить это. Позвольте мне обновить здесь, если я найду лучший способ сделать это.