机器学习的评估指标是用于衡量模型在特定任务中的性能,帮助我们判断模型是否在测试集上有效,并指导模型的优化和调整。

评估指标因任务的不同而有所区别,常见的任务包括分类、回归等。

一、分类问题评估指标

分类问题是指将输入样本分类为某个离散标签的任务。

常见的评估指标有以下几种。

1. 混淆矩阵

顾名思义,混淆矩阵给出一个 N*N 矩阵作为输出,其中 N 是目标类的数量。

混淆矩阵是分类器做出的正确和错误预测数量的表格总结。

该矩阵将实际值与机器学习模型的预测值进行比较。

大模型 | 机器学习最强总结(一)分类问题评估指标_人工智能

  1. 真正例(True Positive, TP):模型正确预测为正例的数量。
  2. 假正例(False Positive, FP):模型错误预测为正例的数量。
  3. 真负例(True Negative, TN):模型正确预测为负例的数量。
  4. 假负例(False Negative, FN):模型错误预测为负例的数量。

2. 准确率 (Accuracy)

准确率是指模型预测正确的样本数占总样本数的比例。

公式

适用场景

当各类别样本数量较为均衡时,准确率是一个好的评估指标。

from sklearn.metrics import accuracy_score  
  
y_true = [0, 1, 0, 1]  
y_pred = [0, 0, 0, 1]  
accuracy = accuracy_score(y_true, y_pred)  
print("Accuracy:", accuracy)

3精确率 (Precision)

精确率是指被模型预测为正类的样本中,真正为正类的比例。

公式

适用场景

当误将负类预测为正类的代价较高时(如垃圾邮件分类)。

from sklearn.metrics import precision_score  
  
y_true = [0, 1, 0, 1]  
y_pred = [0, 0, 0, 1]  
precision = precision_score(y_true, y_pred)  
print("Precision:", precision)

4. 召回率 (Recall)

召回率是指正类样本中被模型正确预测为正类的比例。

公式

适用场景

当误将正类预测为负类的代价较高时(如疾病检测)。

from sklearn.metrics import recall_score  
  
y_true = [0, 1, 0, 1]  
y_pred = [0, 0, 0, 1]  
recall = recall_score(y_true, y_pred)  
print("Recall:", recall)

5. 特异性

特异性是分类模型对负类样本的识别能力的度量,它表示所有真实为负类的样本中,模型正确识别为负类的比例。

公式

from sklearn.metrics import confusion\_matrix  
  
y\_true = \[0, 1, 0, 1\]  
y\_pred = \[0, 0, 0, 1\]  
tn, fp, fn, tp = confusion\_matrix(y\_true, y\_pred).ravel()  
specificity = tn / (tn + fp)  
print("Specificity:", specificity)

6. F1-Score

F1-Score 是精确率和召回率的调和平均,用于平衡两者之间的影响。

适用场景

当需要在精确率和召回率之间找到平衡点时,使用 F1-Score。

from sklearn.metrics import f1_score  
  
y_true = [0, 1, 0, 1]  
y_pred = [0, 0, 0, 1]  
f1 = f1_score(y_true, y_pred)  
print("F1 Score:", f1)

7. AUC-ROC

AUC (Area Under the Curve) 表示 ROC 曲线下的面积,AUC 越高,模型越好。下图显示了 ROC 曲线,y 轴为 TPR(真阳性率),x 轴为 FPR(假阳性率)。

大模型 | 机器学习最强总结(一)分类问题评估指标_AI大模型_02