Несбалансированные обучающие образцы для бинарной классификации (90% против 10%) - Tensorflow - PullRequest
0 голосов
/ 21 сентября 2018

У меня тренировочная выборка 100 000 (с 5 функциями) (90 000 классифицированы как '0', а остальные классифицированы как '1')

Я получаю точность 98%, но показатели точности / отзыва были55%

Есть ли какие-либо предложения по повышению точности / частоты повторных обращений?используя тензор потока

#Loss function after sigmoid applied on yy_
loss = tf.losses.log_loss(yy_, scores, scope="loss")
optimizer = tf.train.GradientDescentOptimizer(learning_rate=.01)
train_op = optimizer.minimize(loss)
prediction = (scores > 0.5)

1 Ответ

0 голосов
/ 26 сентября 2018

Я не использовал Tensorflow, но вот мое предложение

  1. Не используйте accuracy в качестве показателя, если у вас несбалансированные данные.Вместо этого используйте confusion matrix
  2. Выполните настройку гиперпараметра на learning_rate
  3. Если вас слишком беспокоит положительный класс, используйте такие показатели, как Precision, Recall, F1 score.Также вы можете попробовать ROC &, но вы также можете использовать эти параметры, даже если вы не очень обеспокоены положительными значениями, поскольку эти значения дадут некоторое представление о том, как ведет себя ваша модель.
  4. Выполните правильную обработку missing values и стандартизировать данные, если необходимо.
  5. Удалить дубликаты из данных
  6. No Free Lunch .ie, не существует фиксированного алгоритма, который бы решал все проблемы.Вы должны попробовать разные модели.Попробуйте различные функции и т. Д. Также убедитесь, что вы пропускаете данные
  7. Do Feature Engineering везде, где это возможно.Это самая импортная часть
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...