【机器学习】回归误差:MSE、RMSE、MAE、R2、Adjusted R2 +方差、协方差、标准差(标准偏差/均方差)、均方误差、均方根误差(标准误差)、均方根解释

我们通常采用MSE、RMSE、MAE、R2来评价回归预测算法。

1、均方误差:MSE(Mean Squared Error)

其中,为测试集上真实值-预测值。

def rms(y_test, y):
return sp.mean((y_test - y) ** 2)

 

2、均方根误差:RMSE(Root Mean Squard Error)

可以看出,RMSE=sqrt(MSE)。

3、平均绝对误差:MAE(Mean Absolute Error)

以上各指标,根据不同业务,会有不同的值大小,不具有可读性,因此还可以使用以下方式进行评测。

4、决定系数:R2(R-Square)

def R2(y_test, y_true):
return 1 - ((y_test - y_true)**2).sum() / ((y_true - y_true.mean())**2).sum()

 

其中,分子部分表示真实值与预测值的平方差之和,类似于均方差 MSE;分母部分表示真实值与均值的平方差之和,类似于方差 Var。

根据 R-Squared 的取值,来判断模型的好坏,其取值范围为[0,1]:

如果结果是 0,说明模型拟合效果很差;

如果结果是 1,说明模型无错误。

一般来说,R-Squared 越大,表示模型拟合效果越好。R-Squared 反映的是大概有多准,因为,随着样本数量的增加,R-Square必然增加,无法真正定量说明准确程度,只能大概定量。

5、校正决定系数(Adjusted R-Square)

其中,n 是样本数量,p 是特征数量。

Adjusted R-Square 抵消样本数量对 R-Square的影响,做到了真正的 0~1,越大越好。

python中可以直接调用

from sklearn.metrics import mean_squared_error #均方误差

from sklearn.metrics import mean_absolute_error #平方绝对误差

from sklearn.metrics import r2_score#R square

#调用

MSE:mean_squared_error(y_test,y_predict)

RMSE:np.sqrt(mean_squared_error(y_test,y_predict))

MAE:mean_absolute_error(y_test,y_predict)

R2:r2_score(y_test,y_predict)

Adjusted_R2::1-((1-r2_score(y_test,y_predict))*(n-1))/(n-p-1)

 

 

 

方差、协方差、标准差(标准偏差/均方差)、均方误差、均方根误差(标准误差)、均方根值

本文由博主经过查阅网上资料整理总结后编写,如存在错误或不恰当之处请留言以便更正,内容仅供大家参考学习。


  • 方差(Variance)

       方差用于衡量随机变量或一组数据的离散程度,方差在在统计描述和概率分布中有不同的定义和计算公式。①概率论中方差用来度量随机变量和其数学期望(即均值)之间的偏离程度;②统计中的方差(样本方差)是每个样本值与全体样本均值之差的平方值的平均数,代表每个变量与总体均值间的离散程度。

概率论中计算公式

离散型随机变量的数学期望: 

                                                                                                             ---------求取期望值

连续型随机变量的数学期望:

                                                                                                      ----------求取期望值

其中,pi是变量,xi发生的概率,f(x)是概率密度。

                                                      ---------求取方差值

 

统计学中计算公式

 总体方差,也叫做有偏估计,其实就是我们从初高中就学到的那个标准定义的方差:

                                                                                                -----------求取总体均值

其中,n表示这组数据个数,x1、x2、x3……xn表示这组数据具体数值。

                                                    ------------求取总体方差

其中,\bar{X}为数据的平均数,n为数据的个数,s^{2}为方差。

样本方差,无偏方差,在实际情况中,总体均值\bar{X}是很难得到的,往往通过抽样来计算,于是有样本方差,计算公式如下

                                                    --------------求取样本方差           

此处,为什么要将分母由n变成n-1,主要是为了实现无偏估计减小误差,请阅读《为什么样本方差的分母是 n-1》。    

  • 协方差(Covariance)

      协方差在概率论和统计学中用于衡量两个变量的总体误差。而方差是协方差的一种特殊情况,即当两个变量是相同的情况。协方差表示的是两个变量的总体的误差,这与只表示一个变量误差的方差不同。 如果两个变量的变化趋势一致,也就是说如果其中一个大于自身的期望值,另外一个也大于自身的期望值,那么两个变量之间的协方差就是正值。 如果两个变量的变化趋势相反,即其中一个大于自身的期望值,另外一个却小于自身的期望值,那么两个变量之间的协方差就是负值。

formula

formula

其中,E[X]与E[Y]分别为两个实数随机变量X与Y的数学期望,Cov(X,Y)为X,Y的协方差。

  •  标准差(Standard Deviation)

       标准差也被称为标准偏差,在中文环境中又常称均方差,是数据偏离均值的平方和平均后的方根,用σ表示。标准差是方差的算术平方根。标准差能反映一个数据集的离散程度,只是由于方差出现了平方项造成量纲的倍数变化,无法直观反映出偏离程度,于是出现了标准差,标准偏差越小,这些值偏离平均值就越少,反之亦然。

 

                                                                                               ------------求取样本标准差

其中,  代表所采用的样本X1,X2,...,Xn的均值。

                                                                                                 -------------求取总体标准差

 其中, 代表总体X的均值。

:有一组数字分别是200、50、100、200,求它们的样本标准偏差。

= (200+50+100+200)/4 = 550/4 = 137.5

= [(200-137.5)^2+(50-137.5)^2+(100-137.5)^2+(200-137.5)^2]/(4-1)

样本标准偏差 S = Sqrt(S^2)=75

  • 均方误差(mean-square error, MSE

       均方误差是反映估计量与被估计量之间差异程度的一种度量,换句话说,参数估计值与参数真值之差的平方的期望值。MSE可以评价数据的变化程度,MSE的值越小,说明预测模型描述实验数据具有更好的精确度。

  • 均方根误差(root mean squared error,RMSE

      均方根误差亦称标准误差,是均方误差的算术平方根。换句话说,是观测值与真值(或模拟值)偏差(而不是观测值与其平均值之间的偏差)的平方与观测次数n比值的平方根,在实际测量中,观测次数n总是有限的,真值只能用最可信赖(最佳)值来代替。标准误差对一组测量中的特大或特小误差反映非常敏感,所以,标准误差能够很好地反映出测量的精密度。这正是标准误差在工程测量中广泛被采用的原因。因此,标准差是用来衡量一组数自身的离散程度,而均方根误差是用来衡量观测值同真值之间的偏差。

  • 均方根值(root-mean-square,RMES

       均方根值也称作为方均根值或有效值在数据统计分析中,将所有值平方求和,求其均值,再开平方,就得到均方根值。在物理学中,我们常用均方根值来分析噪声。

        比如幅度为100V而占空比为0.5的方波信号,如果按平均值计算,它的电压只有50V,而按均方根值计算则有70.71V。这是为什么呢?举一个例子,有一组100伏的电池组,每次供电10分钟之后停10分钟,也就是说占空比为一半。如果这组电池带动的是10Ω电阻,供电的10分钟产生10A 的电流和1000W的功率,停电时电流和功率为零。

你可能感兴趣的:(机器学习,Python)