Почему sklearn возвращает точность и средневзвешенное значение отзыва в двоичной классификации? - PullRequest
1 голос
/ 26 марта 2020

Моя проблема - двоичная классификация, где я использую следующий код для получения accuracy и weighted average recall.

from sklearn.ensemble import RandomForestClassifier
clf=RandomForestClassifier(random_state = 0, class_weight="balanced")

from sklearn.model_selection import cross_validate
cross_validate(clf, X, y, cv=10, scoring = ('accuracy', 'precision_weighted', 'recall_weighted', 'f1_weighted'))

. Я заметил, что значения accuracy и weighted average recall равны , Тем не менее, насколько я понимаю, эти две метрики охватывают два разных аспекта, и поэтому я не понимаю, почему они в точности равны. Однако я не нашел ответы на этот пост полезными.

Я с радостью предоставлю более подробную информацию, если это необходимо.

1 Ответ

1 голос
/ 26 марта 2020

Точность равна:

TP + TN / (P+ N)

Итак, давайте предположим, что у вас есть 50 положительных классов и 50 отрицательных, и почему-то это предсказание 25 правильных ваших положительных классов и 25 правильных ваших отрицательных классов, тогда:

25 + 25 / (50+50) = 0.5

Средневзвешенный отзыв: Первый отзыв: TP/P = 25/50 = 0.5

Весовой отзыв:

(recall_posivite*number_positve)+(recall_negative*number_negative)/(number_positive + number_negativ) = 0.5*50+0.5*50/(50+50) = 50/100 = 0.5

Надеюсь, это поможет понять, что это может произойти!

...