失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 第六章 平均绝对误差(MAE)与均方根误差(RMSE)

第六章 平均绝对误差(MAE)与均方根误差(RMSE)

时间:2023-09-28 10:57:54

相关推荐

第六章 平均绝对误差(MAE)与均方根误差(RMSE)

目录

6.1 平均绝对误差

6.1.1 平均绝对误差概念

6.1.2 Python代码实现平均绝对误差

6.2 均方根误差

6.2.1 均方根误差的概念

6.2.2 Python代码实现均方根误差

6.1 平均绝对误差

有关介绍的网站:/wiki/Mean_absolute_error(注:下面的一些图片转载自该网站,并非原创)。

6.1.1 平均绝对误差概念

在统计学中,平均绝对误差(Mean Absolute Error,MAE) 是对表达相同现象的成对观察之间的误差的度量。MAE 与均方根误差(RMSE) 不同,MAE 在概念上比 RMSE 更简单,也更容易解释:它只是散点图中每个点与 Y=X 线之间的平均绝对垂直或水平距离。换言之,MAE 是 X 和 Y 之间的平均绝对差值。此外,每个误差对 MAE 的贡献与误差的绝对值成正比。这与涉及对误差进行平方的 RMSE 形成对比,因此一些较大的误差将使 RMSE 比 MAE 增加的程度更大。

图1 平均绝对误差公式

图2MAE和RMSE的 2 个数据点,数量不一致为 0,分配不一致为 2

6.1.2 Python代码实现平均绝对误差

def calculate_the_MAE(predicted_data,actual_data):'''该函数用于计算平均绝对误差Parameters----------predicted_data : 一维列表预测数据.actual_data : 一维列表真实数据.Returns-------MAE : 浮点型平均绝对误差.'''# 定义一个变量用于存储所有样本的绝对误差之和the_sum_of_error = 0# 开始逐渐遍历每一个样本for i in range(len(actual_data)):# 不断累加求和,计算所有样本的绝对误差之和the_sum_of_error += abs(predicted_data[i]-actual_data[i])# 计算所有样本的平均绝对误差MAE = the_sum_of_error/float(len(actual_data))return MAEif '__main__' == __name__:# 定义一组真实数据actual_data = [1,2,3,4,5,6,7,8,9,10]# 定义一组预测数据predicted_data = [2,4,3,5,4,6,5,7,6,8]# 调用calculate_the_MAE函数计算平均绝对误差Mean_Absolute_Error = calculate_the_MAE(predicted_data, actual_data)

6.2 均方根误差

有关介绍的网站:/wiki/Root-mean-square_deviation。

6.2.1 均方根误差的概念

MAE的方法可能会有分类讨论的情况,一般不太用,我们可以用均方根误差(Root-mean-square deviation)。均方根误差( Root,Mean Square Deviation,RMSE )是模型预测的值(样本或总体值)与观察值之间差异的常用度量。

图3均方根误差公式

6.2.2 Python代码实现均方根误差

# 导入包from math import sqrtdef calculate_the_RMSE(predicted_data,actual_data):'''该函数用于计算均方根误差Parameters----------predicted_data : 一维列表预测数据.actual_data : 一维列表真实数据.Returns-------RMSE : 浮点型均方根误差.'''# 定义一个变量用于存储所有样本的平方误差之和the_sum_of_error = 0# 开始逐渐遍历每一个样本for i in range(len(actual_data)):# 计算预测数据与真实数据的误差predition_error = predicted_data[i]-actual_data[i]# 不断累加求和,计算所有样本的平方误差之和the_sum_of_error += predition_error**2# 计算所有样本的均方根误差RMSE = sqrt(the_sum_of_error/float(len(actual_data)))return RMSEif '__main__' == __name__:# 定义一组真实数据actual_data = [1,2,3,4,5,6,7,8,9,10]# 定义一组预测数据predicted_data = [2,4,3,5,4,6,5,7,6,8]# 调用calculate_the_RMSE函数计算均方根误差rmse = calculate_the_RMSE(predicted_data, actual_data)

如果觉得《第六章 平均绝对误差(MAE)与均方根误差(RMSE)》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。