原则 | 说明 | 典型应用场景 |
---|---|---|
稳定性 | 指标对数据扰动不敏感 | 医学诊断系统 |
可解释性 | 指标具有业务意义 | 金融风控模型 |
敏感性 | 能反映模型细微改进 | 竞赛模型优化 |
鲁棒性 | 对异常值不敏感 | 工业检测系统 |
指标 | 公式 | 适用场景 | 局限性 |
---|---|---|---|
准确率 | T P + T N T P + T N + F P + F N \frac{TP+TN}{TP+TN+FP+FN} TP+TN+FP+FNTP+TN | 类别平衡 | 不适用于类别不平衡 |
精确率 | T P T P + F P \frac{TP}{TP+FP} TP+FPTP | 关注误报成本 | 忽略FN的影响 |
召回率 | T P T P + F N \frac{TP}{TP+FN} TP+FNTP | 关注漏检成本 | 可能牺牲精确率 |
F1 Score | 2 × P × R P + R \frac{2 \times P \times R}{P+R} P+R2×P×R | 综合考量P和R | 对误差分布敏感 |
ROC曲线与AUC值
from sklearn.metrics import roc_curve, auc
def plot_roc(y_true, y_pred):
fpr, tpr, _ = roc_curve(y_true, y_pred)
roc_auc = auc(fpr, tpr)
plt.plot(fpr, tpr, label=f'AUC = {roc_auc:.2f}')
plt.plot([0,1], [0,1], 'k--')
plt.xlabel('False Positive Rate')
plt.ylabel('True Positive Rate')
plt.legend()
混淆矩阵可视化
import seaborn as sns
from sklearn.metrics import confusion_matrix
def plot_confusion_matrix(y_true, y_pred, classes):
cm = confusion_matrix(y_true, y_pred)
sns.heatmap(cm, annot=True, fmt='d', xticklabels=classes, yticklabels=classes)
plt.ylabel('Actual')
plt.xlabel('Predicted')
指标 | 公式 | 特点 |
---|---|---|
MAE | 1 n ∑ ∣ y − y ^ ∣ \frac{1}{n}\sum|y-\hat{y}| n1∑∣y−y^∣ | 对异常值鲁棒 |
MSE | 1 n ∑ ( y − y ^ ) 2 \frac{1}{n}\sum(y-\hat{y})^2 n1∑(y−y^)2 | 强调大误差 |
RMSE | M S E \sqrt{MSE} MSE | 量纲与原始数据一致 |
R² | 1 − ∑ ( y − y ^ ) 2 ∑ ( y − y ˉ ) 2 1-\frac{\sum(y-\hat{y})^2}{\sum(y-\bar{y})^2} 1−∑(y−yˉ)2∑(y−y^)2 | 解释方差比例 |
L τ ( y , y ^ ) = { τ ∣ y − y ^ ∣ y ≥ y ^ ( 1 − τ ) ∣ y − y ^ ∣ y < y ^ L_\tau(y, \hat{y}) = \begin{cases} \tau|y-\hat{y}| & y \geq \hat{y} \\ (1-\tau)|y-\hat{y}| & y < \hat{y} \end{cases} Lτ(y,y^)={τ∣y−y^∣(1−τ)∣y−y^∣y≥y^y<y^
BLEU Score计算
from nltk.translate.bleu_score import sentence_bleu
def calculate_bleu(reference, candidate):
return sentence_bleu([reference.split()],
candidate.split(),
weights=(0.25, 0.25, 0.25, 0.25))
FID (Fréchet Inception Distance)
F I D = ∥ μ r − μ g ∥ 2 + T r ( Σ r + Σ g − 2 ( Σ r Σ g ) 1 / 2 ) FID = \|\mu_r - \mu_g\|^2 + Tr(\Sigma_r + \Sigma_g - 2(\Sigma_r\Sigma_g)^{1/2}) FID=∥μr−μg∥2+Tr(Σr+Σg−2(ΣrΣg)1/2)
Hamming Loss
H L = 1 n ∑ i = 1 n X O R ( y i , y ^ i ) L HL = \frac{1}{n}\sum_{i=1}^n \frac{XOR(y_i, \hat{y}_i)}{L} HL=n1i=1∑nLXOR(yi,y^i)
mAP (mean Average Precision)
常见陷阱 | 解决方案 |
---|---|
指标单一化 | 组合使用互补指标 |
数据泄露 | 严格划分训练/验证/测试集 |
过拟合指标 | 增加业务相关评估 |
忽略baseline | 建立基准模型对比 |
通过本文的系统梳理,您将获得:
实践建议:
模型评估是AI系统开发的指南针,正确的指标选择能确保研发方向与业务目标的高度一致。本文提供的知识体系将助力您构建更可靠的AI系统。