Можете ли вы весить определенные точки данных меньше, чем другие при обучении модели? - PullRequest
0 голосов
/ 04 июля 2019

Скажем, например, я пытаюсь сделать классификатор, чтобы классифицировать предложение как хорошее или плохое. У меня есть набор данных 50% good и 50% bad. Я предпочел бы иметь ложный позитив и ошибочно классифицировать их как хорошие, чем ошибочно классифицировать их как плохие.

Есть ли способ достичь этого и убедиться, что обновления параметров не так значительны, если неправильно классифицировать плохое предложение по сравнению с хорошим предложением?

Одним из решений, о котором я подумал, является использование обычного классификатора без каких-либо изменений, а затем просто измените порог, чтобы сказать, что мы прогнозируем, что он хорош, если вероятность того, что он хорош, выше 40%, а не нормальных 50%. Я не уверен, есть ли у него какие-либо побочные эффекты, и было бы лучше напрямую изменить его в процессе обучения.

1 Ответ

0 голосов
/ 04 июля 2019

Использовать взвешенную перекрестную энтропию.
В двоичной кросс-энтропии [- (p) log (q) - (1-p) log (1-q)],
- (p) log (q) термин для оценки истинных данных (1 к 1)
и - (1-p) log (1-q) термин для оценки ложных данных. (От 0 до 0)
Итак, если вы хотите иметь ложный положительный, а не ложный отрицательный,
Вы можете сильно весить - (p) log (q) term.

См. Документ тензор потока.
(https://www.tensorflow.org/api_docs/python/tf/nn/weighted_cross_entropy_with_logits)

...