🤔 Расскажи про метрики, классификацию?



Для оценки моделей классификации позволяют определить, насколько хорошо модель справляется с задачей предсказания классов.



🚩Основные метрики классификации



🟠Точность (Accuracy)

Доля правильных предсказаний. Когда классы сбалансированы.

\text{Accuracy} = \frac{TP + TN}{TP + TN + FP + FN}




🟠Полнота (Recall)

Доля правильно предсказанных положительных примеров. Когда важно минимизировать пропуск положительных случаев.

\text{Recall} = \frac{TP}{TP + FN}




🟠Точность (Precision)

Доля правильно предсказанных положительных примеров из всех предсказанных положительных. Когда важно минимизировать количество ложноположительных случаев.

\text{Precision} = \frac{TP}{TP + FP}




🟠F-мера (F-score)

Гармоническое среднее между точностью и полнотой. Когда нужно сбалансировать точность и полноту.

F_1 = 2 \cdot \frac{\text{Precision} \cdot \text{Recall}}{\text{Precision} + \text{Recall}}




🟠Матрица ошибок (Confusion Matrix)

Таблица с количеством истинных положительных, истинных отрицательных, ложноположительных и ложноотрицательных предсказаний.



🟠ROC-кривая и AUC

ROC-кривая показывает соотношение истинно положительных и ложноположительных срабатываний при различных порогах. AUC – площадь под ROC-кривой. Для оценки качества моделей при различных порогах классификации.



🚩Примеры использования



Accuracy, Precision, Recall и F1-Score

from sklearn.metrics import accuracy_score, precision_score, recall_score, f1_score, confusion_matrix



# Истинные метки и предсказанные метки

y_true = [0, 1, 1, 1, 0, 1, 0, 0, 1, 1]

y_pred = [0, 1, 0, 1, 0, 1, 0, 1, 1, 0]



# Вычисление метрик

accuracy = accuracy_score(y_true, y_pred)

precision = precision_score(y_true, y_pred)

recall = recall_score(y_true, y_pred)

f1 = f1_score(y_true, y_pred)

cm = confusion_matrix(y_true, y_pred)



print(f"Accuracy: {accuracy}")

print(f"Precision: {precision}")

print(f"Recall: {recall}")

print(f"F1 Score: {f1}")

print(f"Confusion Matrix:\n{cm}")




ROC-кривая и AUC

import numpy as np

import matplotlib.pyplot as plt

from sklearn.metrics import roc_curve, roc_auc_score



# Истинные метки и предсказанные вероятности

y_true = [0, 1, 1, 1, 0, 1, 0, 0, 1, 1]

y_scores = [0.1, 0.4, 0.35, 0.8, 0.2, 0.75, 0.3, 0.4, 0.85, 0.6]



# Вычисление ROC-кривой и AUC

fpr, tpr, thresholds = roc_curve(y_true, y_scores)

roc_auc = roc_auc_score(y_true, y_scores)



# Построение ROC-кривой

plt.figure()

plt.plot(fpr, tpr, color='darkorange', lw=2, label=f'ROC-кривая (AUC = {roc_auc:.2f})')

plt.plot([0, 1], [0, 1], color='navy', lw=2, linestyle='--')

plt.xlim([0.0, 1.0])

plt.ylim([0.0, 1.0])

plt.xlabel('False Positive Rate')

plt.ylabel('True Positive Rate')

plt.title('ROC-кривая')

plt.legend(loc="lower right")

plt.show()




Ставь 👍 и забирай 📚 Базу знаний