Chỉ số đánh giá mô hình phân loại
Mô hình phân loại thường được đánh giá thông qua ma trận nhầm lẫn (confusion matrix) — một bảng thống kê gồm 4 thành phần chính:
- TP (True Positive): Số mẫu dương tính được dự đoán đúng.
- FP (False Positive): Số mẫu âm tính bị dự đoán sai thành dương tính (báo động giả).
- TN (True Negative): Số mẫu âm tính được dự đoán đúng.
- FN (False Negative): Số mẫu dương tính bị dự đoán sai thành âm tính (bỏ sót).
Từ đó, ta có thể suy ra các chỉ số quan trọng:
Độ chính xác (Accuracy)
Tỷ lệ tổng số dự đoán đúng trên toàn bộ dữ liệu:
accuracy = (TP + TN) / (TP + TN + FP + FN)
Độ chính xác dương (Precision)
Tỷ lệ dự đoán đúng trong số những trường hợp được gán nhãn dương:
precision = TP / (TP + FP)
Độ bao phủ (Recall)
Tỷ lệ phát hiện được dương tính thực sự so với tổng số dương tính thực tế:
recall = TP / (TP + FN)
F1-Score
Trung bình điều hòa giữa Precision và Recall, hữu ích khi cần cân bằng hai chỉ số này:
F1 = 2 * (precision * recall) / (precision + recall)
Đường cong ROC và AUC
ROC (Receiver Operating Characteristic) là đồ thị biểu diễn mối quan hệ giữa TPR (True Positive Rate) và FPR (False Positive Rate) ở nhiều ngưỡng khác nhau. Diện tích dưới đường cong (AUC) càng gần 1 thì mô hình càng tốt. Nếu AUC < 0.5, mô hình kém hơn dự đoán ngẫu nhiên.
from sklearn.metrics import roc_curve, roc_auc_score
import matplotlib.pyplot as plt
# Dự đoán xác suất cho lớp dương
y_proba = model.predict_proba(X_test)[:, 1]
# Tính AUC
auc_val = roc_auc_score(y_test, y_proba)
# Tính FPR, TPR theo các ngưỡng
fpr, tpr, _ = roc_curve(y_test, y_proba)
# Vẽ đồ thị
plt.plot(fpr, tpr, label=f'ROC (AUC = {auc_val:.2f})', color='darkorange', lw=2)
plt.plot([0,1], [0,1], linestyle='--', color='navy', lw=2)
plt.xlabel('False Positive Rate')
plt.ylabel('True Positive Rate')
plt.title('ROC Curve')
plt.legend()
plt.show()
Chỉ số đánh giá mô hình hồi quy
Mô hình hồi quy thường dùng R² (R-squared) — hệ số xác định, phản ánh tỷ lệ phương sai của biến mục tiêu được giải thích bởi mô hình. Giá trị R² nằm trong khoảng [0, 1], càng gần 1 càng tốt. Lưu ý: R² không phải lúc nào cũng đáng tin cậy nếu mô hình bị overfit hoặc thiếu biến quan trọng.
Chỉ số đánh giá mô hình phân cụm
Với phân cụm, Hệ số Silhouette là một trong những chỉ số phổ biến nhất để đo độ "rõ ràng" của cụm:
- a(i): Khoảng cách trung bình từ điểm i đến các điểm khác trong cùng cụm → càng nhỏ càng tốt (cụm chặt chẽ).
- b(i): Khoảng cách trung bình từ điểm i đến điểm trong cụm gần nhất khác → càng lớn càng tốt (cụm tách biệt).
Chỉ số Silhouette cho từng điểm:
s(i) = (b(i) - a(i)) / max(a(i), b(i))
Giá trị s(i) ∈ [-1, 1]:
- Gần 1 → Phân cụm tốt.
- Gần 0 → Điểm nằm ở ranh giới giữa các cụm.
- Âm → Điểm có thể thuộc cụm khác.
Chỉ số tổng thể là trung bình của tất cả s(i).