二分类问题中的性能指标【python,机器学习,算法】

27 篇文章 0 订阅
20 篇文章 0 订阅

平均绝对误差(MAE)

平均绝对误差(Mean Absolute Error, MAE)是衡量模型预测误差的一种方法,通常用于回归分析。它表示的是预测值与真实值之间差的绝对值的平均数。计算公式如下:
M A E = 1 N ∑ i = 1 N ∣ y i − y ^ ∣ MAE=\frac{1}{N}\sum\limits_{i=1}^{N}|y_i-\hat{y}| MAE=N1i=1Nyiy^,
其中 y i y_i yi表示第 i i i个数据的预测值, y ^ \hat{y} y^表示第 i i i个数据的真实值。

平均绝对误差的特点是:

  1. 它是一个非负数,且MAE值越小,说明预测模型的效果越好。
  2. MAE 使用的是绝对值,因此它不会因为异常值而受到影响,这一点比均方误差(Mean Squared Error, MSE)更有优势。
  3. MAE的单位与原数据的单位相同,这使得它具有更好的解释性。

MAE通常用于评估模型在预测连续值时的性能,例如在天气预报、股票价格预测等领域。

均方误差(MSE)

均方误差(Mean Squared Error, MSE)是另一种衡量模型预测误差的方法,常用于回归分析。它是预测值与真实值之间差的平方的平均数。计算公式如下:
M S E = 1 N ∑ i = 1 N ( y i − y ^ ) 2 MSE=\frac{1}{N}\sum\limits_{i=1}^{N}(y_i-\hat{y})^2 MSE=N1i=1N(yiy^)2
均方误差的特点是:

  1. 它是一个非负数,且MSE值越小,说明预测模型的效果越好。
  2. MSE 使用的是平方,因此它会对较大的误差给予较大的权重,这意味着大的误差会对MSE产生较大的影响。
  3. MSE的单位是原数据单位的平方,这使得它在解释上不如平均绝对误差直观。
  4. MSE通常用于评估模型在预测连续值时的性能,特别是在关注较大误差的情况下。与MAE相比,MSE对异常值更为敏感,因此在异常值较多的情况下,使用MSE可能会导致模型性能评估的不准确。

在实际应用中,MSE的一个优点是它在数学上更容易处理,特别是当涉及到梯度下降等优化算法时。此外,MSE是最小二乘法的基础,这是一种常用的参数估计方法。

R 平方( R 2 R^2 R2

R平方(R²或R2),也称为决定系数,是衡量回归模型拟合优度的一个统计量。它表示因变量的变异中有多少可以被自变量解释。R平方的值范围从0到1,或者以百分比形式表示从0%到100%。

R平方的计算通常基于均方误差(MSE):
R 2 = 1 − M S E m o d e l M S E n u l l R^2=1-\frac{MSE_{model}}{MSE_{null}} R2=1MSEnullMSEmodel,
其中 M S E m o d e l MSE_{model} MSEmodel表示模型的均方误差, M S E n u l l MSE_{null} MSEnull表示以实际值的均值作为 y ˉ \bar{y} yˉ来计算的 MSE 值。

R平方的解释如下:

  • 𝑅^2=0:表示模型没有任何解释能力,因变量的变异不能由自变量解释。
  • 0<𝑅^{2}<1:表示模型可以解释因变量的一部分变异,R平方越接近1,模型的解释能力越强。
  • 𝑅^2=1:表示模型完美地解释了因变量的所有变异。

虽然R平方是一个常用的统计量,但它也有一些局限性:

  1. R平方不告诉我们在实践中模型的表现如何,它只是衡量了模型对数据的拟合程度。
  2. R平方不说明因果关系,即使R平方很高,也不能断定自变量导致了因变量的变化。
  3. R平方对数据中的异常值非常敏感,因为异常值会增加模型的 MSE。
  4. R平方随着自变量的增加而增加,即使这些自变量对模型没有实际贡献,因此可能会产生误导。

在实际应用中,我们应该谨慎地使用R平方,并结合其他统计量和模型诊断工具来全面评估模型的性能。

可以借助sklearn库计算这些指标:

from sklearn.metrics import mean_absolute_error
from sklearn.metrics import mean_squared_error
from sklearn.metrics import r2_score

X_actual = [5, -1, 2, 10]
Y_predict = [3.5, -0.9, 2, 9.9]
print('R Squared =', r2_score(X_actual, Y_predict))
print('MAE =', mean_absolute_error(X_actual, Y_predict))
print('MSE =', mean_squared_error(X_actual, Y_predict))
  • 17
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值