Я использую scikit-learn (версия 0.22.1) для приложения машинного обучения.
Я использую алгоритм Random Forest, и у меня есть некоторые проблемы с оценкой производительности алгоритма с использованием точности и вспомнить. У меня есть метки моего тестового набора (Y_test) и метки, предсказанные с использованием алгоритма Random Forest (Y_pred). Обе данные содержат две метки (1 и 0)
Подробно, у меня есть эта матрица:
print(confusion_matrix(y_true=Y_test, y_pred=Y_pred, labels=[1,0]))
[[78 20]
[36 41]]
Следовательно:
True Positive (tp) = 78
False Negative (fn) = 36
False Positive (fp) = 20
Итак:
PRECISION = tp/(tp+fn) = 78/(78+36) = 0.7959183673469388
RECALL = = tp/(tp+fp) = 78/(78+20) 0.6842105263157895
Однако, используя этот код:
precision = precision_score(Y_test, Y_pred, pos_label=1)
recall = recall_score(y_true=Y_test, y_pred=Y_pred, pos_label=1)
print("precision: ",precision)
print("recall: ",recall)
Я получаю следующий вывод:
recall: 0.7959183673469388
precision: 0.6842105263157895
Кажется, что значения меняются местами, когда они вычисляются с использованием стандартного sklearn функции. Я сделал что-то неправильно? Пожалуйста, вы можете дать мне совет?
Спасибо,
Даниэле