Увеличение данных путем добавления шума в регрессионную модель python - PullRequest
0 голосов
/ 14 июля 2020

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

В настоящее время я увеличиваю данные, добавляя шум в обучающие образцы. После разделения на обучение и тестирование я использую MinMaxScaler для всех функций (X), но не масштабирую целевую переменную (y). Затем я добавляю шум к X и y с разными средними и стандартными значениями, так как X масштабируется до [0,1], а y - нет. Вот код для увеличения путем добавления шума

    def add_noise(mean, std, df):
        noise = np.random.normal(mean, std, df.shape)
        df2= df.where(df <= 0.001 , df.add(abs(noise)))
        return df2

Я вызываю это, используя что-то вроде add_noise (0,0.005, X_train) и add_noise (0,1, y_train) X_train нормализовано / масштабировано, поэтому я могу использовать небольшое стандартное отклонение. Теперь я должен решить, какое стандартное отклонение y_train вызовет только небольшое возмущение, которое соответствует возмущению X_train.

Вопросы

  1. Как мне найти правильное среднее и стандартное моя переменная y - имея в виду, что модель должна видеть аналогичное распределение данных между исходным набором данных и расширенным?
  2. Есть ли другие предложения по увеличению данных для регрессии?
...