平均绝对误差(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=1∑N∣yi−y^∣,
其中 y i y_i yi表示第 i i i个数据的预测值, y ^ \hat{y} y^表示第 i i i个数据的真实值。
平均绝对误差的特点是:
- 它是一个非负数,且MAE值越小,说明预测模型的效果越好。
- MAE 使用的是绝对值,因此它不会因为异常值而受到影响,这一点比均方误差(Mean Squared Error, MSE)更有优势。
- 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=1∑N(yi−y^)2。
均方误差的特点是:
- 它是一个非负数,且MSE值越小,说明预测模型的效果越好。
- MSE 使用的是平方,因此它会对较大的误差给予较大的权重,这意味着大的误差会对MSE产生较大的影响。
- MSE的单位是原数据单位的平方,这使得它在解释上不如平均绝对误差直观。
- 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=1−MSEnullMSEmodel,
其中 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平方是一个常用的统计量,但它也有一些局限性:
- R平方不告诉我们在实践中模型的表现如何,它只是衡量了模型对数据的拟合程度。
- R平方不说明因果关系,即使R平方很高,也不能断定自变量导致了因变量的变化。
- R平方对数据中的异常值非常敏感,因为异常值会增加模型的 MSE。
- R平方随着自变量的增加而增加,即使这些自变量对模型没有实际贡献,因此可能会产生误导。
在实际应用中,我们应该谨慎地使用R平方,并结合其他统计量和模型诊断工具来全面评估模型的性能。
可以借助sklearn
库计算这些指标:
from sklearn.metrics import mean_absolute_error
from sklearn.metrics import mean_squared_error
from sklearn.metrics import r2_scoreX_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))