Точность (Accuracy)
Измеряет долю правильно предсказанных классов относительно общего числа наблюдений. \[ \text{Accuracy} = \frac{TP + TN}{TP + TN + FP + FN} \]
- \( TP \) (True Positives) – истинные положительные
- \( TN \) (True Negatives) – истинные отрицательные
- \( FP \) (False Positives) – ложные положительные
- \( FN \) (False Negatives) – ложные отрицательные
from sklearn.metrics import accuracy_score
y_true = [0, 1, 1, 0, 1]
y_pred = [0, 1, 0, 0, 1]
accuracy = accuracy_score(y_true, y_pred)
print(f"Точность: {accuracy}")
Полнота (Recall) или Чувствительность (Sensitivity)
Измеряет долю правильно предсказанных положительных случаев относительно всех реальных положительных случаев. \[ \text{Recall} = \frac{TP}{TP + FN} \]
from sklearn.metrics import recall_score
recall = recall_score(y_true, y_pred)
print(f"Полнота: {recall}")
Точность (Precision)
Измеряет долю правильно предсказанных положительных случаев относительно всех предсказанных положительных случаев. \[ \text{Precision} = \frac{TP}{TP + FP} \]
from sklearn.metrics import precision_score
precision = precision_score(y_true, y_pred)
print(f"Точность: {precision}")
F1-Score
Гармоническое среднее между точностью и полнотой.
\[ \text{F1} = 2 \cdot \frac{\text{Precision} \cdot \text{Recall}}{\text{Precision} + \text{Recall}} \]
from sklearn.metrics import f1_score
f1 = f1_score(y_true, y_pred)
print(f"F1-Score: {f1}")
Матрица ошибок (Confusion Matrix)
Предоставляет полное представление о правильных и ошибочных предсказаниях.
from sklearn.metrics import confusion_matrix
cm = confusion_matrix(y_true, y_pred)
print(f"Матрица ошибок:\n{cm}")
ROC AUC (Area Under the ROC Curve)
Измеряет площадь под кривой ROC и показывает способность модели различать классы.
from sklearn.metrics import roc_auc_score
y_scores = [0.1, 0.4, 0.35, 0.8, 0.65]
roc_auc = roc_auc_score(y_true, y_scores)
print(f"ROC AUC: {roc_auc}")
Logarithmic Loss (Log Loss)
Измеряет производительность классификатора, наказывая за ошибочные предсказания с большей уверенностью.
from sklearn.metrics import log_loss
log_loss_value = log_loss(y_true, y_scores)
print(f"Log Loss: {log_loss_value}")
Matthews Correlation Coefficient (MCC)
Учитывает все элементы матрицы ошибок и предоставляет сбалансированную оценку производительности даже при несбалансированных классах. \[ \text{MCC} = \frac{TP \cdot TN - FP \cdot FN}{\sqrt{(TP + FP)(TP + FN)(TN + FP)(TN + FN)}} \]
from sklearn.metrics import matthews_corrcoef
mcc = matthews_corrcoef(y_true, y_pred)
print(f"MCC: {mcc}")
Balanced Accuracy
Среднее значение полноты для каждого класса, что делает её полезной при несбалансированных данных.
\[ \text{Balanced Accuracy} = \frac{1}{2} \left( \frac{TP}{TP + FN} + \frac{TN}{TN + FP} \right) \]
from sklearn.metrics import balanced_accuracy_score
balanced_accuracy = balanced_accuracy_score(y_true, y_pred)
print(f"Balanced Accuracy: {balanced_accuracy}")
Ставь 👍 и забирай 📚 Базу знаний