Регрессия нейронной сети с искаженными данными - PullRequest
0 голосов
/ 12 декабря 2018

Я пытался построить модель машинного обучения, используя Keras, которая предсказывает дозу облучения на основе параметров предварительной обработки.В моем наборе данных приблизительно 2200 выборок, из которых 20% проходят проверку и тестирование.

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

Любое предложение, как это исправить?

Целевая переменная

Прогнозы регрессии

1 Ответ

0 голосов
/ 14 декабря 2018

В моем случае мне помогло вычисление весов отдельных выборок на основе 10 наборов гистограмм.Смотрите код ниже:

import pandas as pd
import numpy as np
from sklearn.utils.class_weight import compute_sample_weight

hist, bin_edges = np.histogram(training_targets, bins = 10)
classes = training_targets.apply(lambda x: pd.cut(x, bin_edges, labels = False, 
                                                  include_lowest = True)).values
sample_weights = compute_sample_weight('balanced', classes)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...