Чтобы понять это, нам сначала нужно понять, как вычисляются точность и отзыв.Для этого я буду использовать следующие переменные:
P - общее количество позитивов
N - общее количество негативов
TP - количество истинных позитивов
TN - количество ложных срабатываний
FP - количество ложных срабатываний
FN - количество ложных отрицаний
Важно отметить, что:
P = TP + FN
N = TN + FP
Теперь точность равна TP / (TP + FP)
, отзыв равен TP / (TP + FN), поэтомуTP / P.
Точность составляет TP / (TP + FN) + TN / (TN + FP), следовательно (TP + TN) / (P + N)
В вашем случае, гдеданные несбалансированы, мы имеем N >> P.
А теперь представьте какую-нибудь случайную модель.Обычно мы можем сказать, что для такой модели точность составляет около 50%, но это только в том случае, если данные сбалансированы.В вашем случае будет больше FP и TN, чем TP и FN, потому что случайный выбор данных имеет больше вероятности возврата отрицательной выборки.
Таким образом, мы можем установить, что больше% отрицательных выборокN / (T + N), тем больше FP и TN мы получаем.То есть, когда ваша модель не может выбрать правильную метку, она выберет случайную метку из P и N, и в большинстве случаев это будет N.
Напомним , что FPзнаменатель в точности?Это означает, что точность также уменьшается с увеличением N / (T + N).
Напомним, у нас нет ни FP, ни TN при его выводе, поэтому, скорее всего, не сильно изменится с увеличением N / (T + N).Как видно из вашего примера, он явно остается прежним.
Поэтому я бы попытался сбалансировать данные, чтобы получить лучший результат.Соотношение 1: 1,5 должно подойти.Вы также можете использовать другую метрику, например, показатель F1, которая сочетает в себе точность и отзыв, чтобы лучше понять производительность.
Также посмотрите некоторые другие замечания о том, как бороться с дисбалансом данных