[大数据]数据模型_性能评估指标

数据模型,性能评估指标

为什么需要性能评估指标

  • 当我们设计并构建了一个数据模型或机器学习模型时,如何评价其性能好坏?当我有多个模型的时候,如何比较不同模型间的性能优劣?这就需要使用到性能评估指标对模型的性能进行评价。具体有如下几个方面的用处:
  1. 量化模型效果: 性能指标提供了一种量化模型预测效果的方法,使得我们能够客观地衡量模型的表现,而不仅仅是凭感觉。
  2. 模型比较: 当有多个模型可供选择时,性能指标可以帮助我们比较不同模型的优劣,从而选择最佳的模型。
  3. 模型改进: 通过分析性能指标,我们可以识别模型的不足之处,进而对模型进行调整和优化,以提高其预测能力。
  4. 决策支持: 在实际应用中,模型的预测结果可能会影响决策过程。性能指标可以帮助决策者了解模型的可靠性,从而做出更明智的决策。
  5. 避免过拟合: 性能指标如交叉验证和调整后的R²可以帮助我们检测模型是否过拟合,即模型是否在训练数据上表现良好但在未知数据上表现不佳。
  6. 合规性和标准: 在某些行业,如金融和医疗,模型必须满足特定的性能标准或合规要求。性能指标有助于确保模型符合这些标准。

缩写含义

英文缩写 英文全拼 中文缩写 含义
TP True Positive 真阳性 模型正确预测为正类的正样本数量
TN True Negative 真阴性 模型正确预测为负类的负样本数量
FP False Positive 假阳性 模型错误预测为正类的负样本数量
FN False Negative 假阴性 模型错误预测为负类的正样本数量
n sample size 样本大小 即数据集中的样本数量
yiy_i actual value 第i个样本的实际值 第i个样本的实际值
y^i\hat{y}_i predicted value 第i个样本的预测值 第i个样本的预测值
pip_i probability value 第i个样本为正类的概率 第i个样本为正类的概率
SSRes Sum of Squares of the Residuals 残差平方和 模型预测值与实际值之差的平方和
SSTot Total Sum of Squares 总平方和 实际值与实际值平均值之差的平方和

常用指标

准确率

  • 准确率(Accuracy):准确率是模型正确预测的样本数占总样本数的比例,是最直观的性能指标。

Accuracy=TP+TNTP+TN+FP+FNAccuracy=\frac{TP+TN}{TP+TN+FP+FN}

  • 举例: 【猜(真或假)中对数量占总数之比】如果一个疾病诊断模型在100个样本中有90个预测正确(包括30个真阳性和60个真阴性),准确率为90/100 = 0.9。

精确率

  • 精确率(Precision):精确率是指模型预测为正的样本中实际为正的比例,它衡量的是模型预测正类的能力。

Precision=TPTP+FPPrecision=\frac{TP}{TP+FP}

  • 举例: 【猜(真)的结果中对的数量占猜的个数之比】如果模型预测了100个样本为正类,其中有80个是真正的正类,而20个是负类,那么精确率为80/100 = 0.8

召回率

  • 召回率(Recall):召回率是指实际为正的样本中被模型正确预测为正的比例,它衡量的是模型找到所有正样本的能力。

Recall=TPTP+FPRecall=\frac{TP}{TP+FP}

-举例: 【猜(真)中对数量占为(真)数量之比】如果实际上有100个正类样本,模型只正确预测了80个,那么召回率为80/100 = 0.8。

F1 分数

  • F1 分数(F1 Score):F1 分数是精确率和召回率的调和平均数,它__同时考虑了模型的精确性和稳健性__。

F1Score=2×Precision×RecallPrecision+RecallF1 Score=2×\frac{Precision×Recall}{Precision+Recall}

  • 举例: 如果精确率为0.8,召回率为0.8,那么F1 分数为2 * (0.8 * 0.8) / (0.8 + 0.8) = 0.8

均方误差

  • 均方误差(Mean Squared Error, MSE):均方误差是回归任务中最常用的性能指标,它衡量模型预测值与实际值之间的差异的平方的平均值。

MSE=1ni=1n(yiy^i)2MSE=\frac{1}{n}∑_{i=1}^{n} (y_i-\hat{y}_i)^2

  • 举例: 如果模型的预测值为[2, 4, 6],实际值为[3, 5, 7],那么MSE为((23)2+(45)2+(67)2)/3=2/3((2-3)^2 + (4-5)^2 + (6-7)^2) / 3 = 2/3

均方根误差

  • 均方根误差(Root Mean Squared Error, RMSE):RMSE是MSE的平方根,它提供了与原始数据相同单位的误差大小

RMSE=MSERMSE=\sqrt{MSE}

  • 举例: 如果MSE为2/3,那么RMSE为√(2/3) ≈ 0.816

平均绝对误差

  • 平均绝对误差(Mean Absolute Error, MAE): 平均绝对误差是预测值与实际值之间差异的绝对值的平均数

MAE=1ni=1nyiy^iMAE=\frac{1}{n}∑_{i=1}^{n} |y_i-\hat{y}_i|

稳定性指标PSI

  • 稳定性指标PSI(Stability Indicator):PSI是用于衡量__模型在不同时间或不同数据集上的分布差异__的指标。PSI值越低,表示模型的稳定性越好,即模型在不同条件下表现相似。
  • PSI小于0.1时候模型稳定性很高,0.1-0.2一般,需要进一步研究,大于0.2模型稳定性差,建议修复。
  • 计算过程: PSI的计算通常涉及以下步骤:
  1. 将模型的预测概率或分数分为若干个区间(bins)。
  2. 计算每个区间内的样本比例,分别在基准数据集(如训练集)和评估数据集(如测试集)上。
  3. 对于每个区间,计算两个数据集上样本比例的差异,并应用自然对数变换。
  4. 将这些差异加权平均,权重是每个区间的样本比例。

PSI=i=1m(PActualPExpected)ln(PActualPExpected)PSI=∑_{i=1}^{m} (P_{Actual} - P_{Expected} )ln( \frac{P_{Actual}}{P_{Expected}})

  • 其中,m是特征的数量;PActualP_{Actual}是第 i个特征在实际数据集上的实际分布比例;
    PExpectedP_{Expected}是第 i个特征在期望分布下的分布比例。
  • 举例:设我们有一个信用评分模型,我们需要比较训练集和测试集上的分数分布。我们将分数分为两个区间:低风险和高风险。训练集上低风险的比例: 70%;测试集上低风险的比例: 60%。训练集上高风险的比例: 30%;测试集上高风险的比例: 40%。

PSI=(0.70.6)ln(0.70.6)+(0.30.4)ln(0.30.4)=0.0442PSI=(0.7-0.6)ln(\frac{0.7}{0.6})+(0.3-0.4)ln(\frac{0.3}{0.4})=-0.0442

确定系数R²

  • 确定系数R²(R Squared):R²衡量模型对__目标变量变异性的解释程度__,值越接近1,模型解释能力越强。

R2=1SSResSSTotR^2=1-\frac{SSRes}{SSTot}

SSRes=i=1n(yiy^i)2SSRes=∑_{i=1}^{n} (y_i-\hat{y}_i)^2

SSTot=i=1n(yiyˉi)2SSTot=∑_{i=1}^{n} (y_i-\bar{y}_i)^2

  • 其中,SSRes 是残差平方和(Sum of Squares of the Residuals),它是模型预测值与实际值之间差异的平方和,表示模型未能解释的变异量。
    SSTotSSTot 是总平方和(Total Sum of Squares),它是实际值与实际值平均值之间差异的平方和,表示数据集中的总变异量。
  • 举例:假设我们有一个简单的线性回归模型,用来预测房价。模型的预测值和实际值如下:实际房价: [100, 150, 200, 250],预测房价: [90, 160, 190, 240]。
  1. 计算残差平方和:$SSRes = (90-100)^2+ (160-150)^2+ (190-200)^2+ (240-250)^2=100+100+100+100=400 $;
  2. 计算总平方和:SSTot = (100-175)^2+ (150-175)^2+ (200-175)^2+ (250-175)^2=6250+6250+6250+6250=25000
  3. 计算 R²:R2=140025000=0.984R^2 = 1 - \frac{400}{25000} = 0.984
  • 这意味着模型解释了98.4%的数据变异性。

布里尔分数BS

  • 布里尔分数BS(Brier Score):rier Score是一种用于评估概率预测准确性的指标,特别适用于__二元分类问题__。它衡量的是__模型预测的概率与实际结果之间的差异__。Brier Score的值越低,表示模型的预测越准确。

BS=1ni=1n(piy^i)2BS=\frac{1}{n}∑_{i=1}^{n} (p_i-\hat{y}_i)^2

  • 举例:假设我们有一个二元分类问题,预测某邮件是否为垃圾邮件。我们有以下预测和实际结果:预测为垃圾邮件的概率: [0.1, 0.8, 0.6, 0.3];实际标签 (1为垃圾邮件, 0为非垃圾邮件): [0, 1, 1, 0]。

BS=14[(0.10)2+(0.81)2+(0.61)2+(0.30)2]=0.075BS=\frac{1}{4}[(0.1-0)^2+(0.8-1)^2+(0.6-1)^2+(0.3-0)^2]=0.075

  • Brier Score为0.075,表示模型预测的不准确性。理想情况下,Brier Score为0,表示所有预测都是完美的。

对数损失Log Loss

  • 对数损失Log Loss(Logarithmic Loss):Log Loss是衡量__分类问题中概率预测准确性__的指标。它基于实际标签和预测概率之间的交叉熵来计算。Log Loss的值越低,表示模型的性能越好。

LogLoss=1ni=1n[yilog(pi)+(1yi)log(1pi)]Log Loss=\frac{1}{n}∑_{i=1}^{n} [y_i log(p_i)+(1-y_i) log(1-p_i)]

  • 举例:假设我们有一个二元分类问题,预测某邮件是否为垃圾邮件。我们有以下预测和实际结果:预测为垃圾邮件的概率: [0.1, 0.8, 0.6, 0.3];实际标签 (1为垃圾邮件, 0为非垃圾邮件): [0, 1, 1, 0]。

LogLoss=14[1log(0.1)+0log(0.8)+1log(0.6)+0log(0.3)]=0.11125Log Loss=\frac{1}{4}[1* log(0.1)+0* log(0.8)+1* log(0.6)+0* log(0.3)]=-0.11125