我们通常采用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表示这组数据具体数值。
------------求取总体方差
其中,为数据的平均数,n为数据的个数,为方差。
样本方差,无偏方差,在实际情况中,总体均值是很难得到的,往往通过抽样来计算,于是有样本方差,计算公式如下
--------------求取样本方差
此处,为什么要将分母由n变成n-1,主要是为了实现无偏估计减小误差,请阅读《为什么样本方差的分母是 n-1》。
-
协方差(Covariance)
协方差在概率论和统计学中用于衡量两个变量的总体误差。而方差是协方差的一种特殊情况,即当两个变量是相同的情况。协方差表示的是两个变量的总体的误差,这与只表示一个变量误差的方差不同。 如果两个变量的变化趋势一致,也就是说如果其中一个大于自身的期望值,另外一个也大于自身的期望值,那么两个变量之间的协方差就是正值。 如果两个变量的变化趋势相反,即其中一个大于自身的期望值,另外一个却小于自身的期望值,那么两个变量之间的协方差就是负值。
其中,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的值越小,说明预测模型描述实验数据具有更好的精确度。
均方根误差亦称标准误差,是均方误差的算术平方根。换句话说,是观测值与真值(或模拟值)偏差(而不是观测值与其平均值之间的偏差)的平方与观测次数n比值的平方根,在实际测量中,观测次数n总是有限的,真值只能用最可信赖(最佳)值来代替。标准误差对一组测量中的特大或特小误差反映非常敏感,所以,标准误差能够很好地反映出测量的精密度。这正是标准误差在工程测量中广泛被采用的原因。因此,标准差是用来衡量一组数自身的离散程度,而均方根误差是用来衡量观测值同真值之间的偏差。
均方根值也称作为方均根值或有效值,在数据统计分析中,将所有值平方求和,求其均值,再开平方,就得到均方根值。在物理学中,我们常用均方根值来分析噪声。
比如幅度为100V而占空比为0.5的方波信号,如果按平均值计算,它的电压只有50V,而按均方根值计算则有70.71V。这是为什么呢?举一个例子,有一组100伏的电池组,每次供电10分钟之后停10分钟,也就是说占空比为一半。如果这组电池带动的是10Ω电阻,供电的10分钟产生10A 的电流和1000W的功率,停电时电流和功率为零。