机器学习中回归预测模型中常用四个评价指标MBE、MAE、RMSE、R2解释

在机器学习中,评估模型性能时常用的四个指标包括平均绝对误差(Mean Absolute Error, MAE)、均方误差(Mean Squared Error, MSE)、均方根误差(Root Mean Squared Error, RMSE)和决定系数(R-squared, R²)。

一、MBE(平均偏差误差)

平均偏差误差(MBE)是衡量模型预测值与实际值之间偏差的指标 。然而,值得注意的是,在常见的机器学习评估指标中,MBE并不如MAE、RMSE和R2那样广泛被提及或使用。在某些特定场景下,MBE可能被用作评估模型预测偏差的一个补充指标,但其具体定义和计算方法可能因应用场景的不同而有所差异。因此,在讨论机器学习评估指标时,MBE通常不是核心指标之一。

二、MAE(平均绝对误差)

MAE 是预测值与实际值之差的绝对值的平均数 。它给出了预测误差的平均大小,但不考虑误差的方向(正或负)。相比MSE和RMSE,MAE对异常值不敏感,不会因为少数大误差的平方而放大结果,适用于具有较多异常值的数据集。然而,MAE的缺点在于缺乏方向性,即它无法反映出误差是正偏还是负偏,可能不适用于需要区分偏差方向的应用场景。

三、RMSE(均方根误差)

均方根误差(RMSE)是均方误差(MSE)的平方根。MSE是衡量预测值与实际值之间平方差的平均值 ,而RMSE则将其量级与原始数据保持一致,便于解释。由于计算了平方差,RMSE对大误差的惩罚更大,适合对误差敏感的场景。RMSE的单位与原数据相同,因此容易理解。然而,RMSE的缺点在于对异常值敏感,可能会因为少数大误差的平方而放大结果。

四、R2(决定系数)

决定系数(R2)用于确定数据与拟合回归线的接近程度。它表示模型解释数据方差的比例,范围是0到1。R2的值越接近1,表示模型对数据的拟合程度越好;越接近0,表示模型对数据的拟合程度越差。R2的值被标准化在0到1之间,便于比较不同模型的性能。然而,R2的缺点在于:当数据的范围很大时,即使模型的预测值与实际值之间存在较大的偏差,R2的值也可能很高。R2无法直接反映模型是否过拟合,需要结合其他指标(如交叉验证)来评估模型的性能。

五、sklearns库里自带计算方法

1.方法一

python 复制代码
# 导入
from sklearn.metrics import mean_absolute_error, mean_squared_error, r2_score
from math import sqrt

#测试集四个指标
predictions = rf.predict(test_datas)# 预测结果
errors = (predictions-test_labels).astype(float)  # 计算误差,确保误差是浮点数
mbe = np.mean(errors)# 计算MBE(平均偏差误差)
mae = np.mean(np.abs(errors))# 计算MAE(平均绝对误差)

rmse = np.sqrt(np.mean(errors**2))# 计算RMSE(均方根误差)
# 计算R²(决定系数)
ss_res = np.sum((predictions - test_labels)**2)  # 残差平方和
ss_tot = np.sum((test_labels - np.mean(test_labels))**2)  # 总平方和
r2 = 1 - (ss_res / ss_tot)

# 输出结果
print('MBE:',mbe)
print('MAE:', mae)
print('RMSE:', rmse)
print('R²:', r2)

mbe = sum(  predictions-test_labels) / len(test_labels)# 计算MBE
mae = mean_absolute_error(test_labels, predictions)# 计算MAE
mse = mean_squared_error(test_labels, predictions)
rmse = mse ** 0.5# 计算RMSE
r2 = r2_score(test_labels, predictions)# 计算R2
print(f"MBE: {mbe}")
print(f"RMSE: {rmse}")
print(f"MAE: {mae}")
print(f"R2: {r2}")

2.方法二

python 复制代码
# 导入
from sklearn.metrics import mean_absolute_error, mean_squared_error, r2_score
from math import sqrt

# 训练集四个评价指标
train_pred = rf.predict(train_datas)
mbe_tr = sum( train_pred - train_labels) / len(train_labels)# 计算MBE
mae_tr = mean_absolute_error(train_labels, train_pred)# 计算MAE
mse_tr = mean_squared_error(train_labels, train_pred)
rmse_tr = mse_tr ** 0.5# 计算RMSE
r2_tr = r2_score(train_labels, train_pred)# 计算R2
print(f"MBE_tr: {mbe_tr}")
print(f"RMSE_tr: {rmse_tr}")
print(f"MAE_tr: {mae_tr}")
print(f"R2_tr: {r2_tr}")
print('---------------------------------------------------------------------------------')
# 测试集四个评价指标
test_pred = rf.predict(test_datas)
mbe_te = sum( test_pred - test_labels) / len(test_labels)# 计算MBE
mae_te = mean_absolute_error(test_labels, test_pred)# 计算MAE
mse_te = mean_squared_error(test_labels, test_pred)
rmse_te = mse_te ** 0.5# 计算RMSE
r2_te = r2_score(test_labels, test_pred)# 计算R2
print(f"MBE_te: {mbe_te}")
print(f"RMSE_te: {rmse_te}")
print(f"MAE_te: {mae_te}")
print(f"R2_te: {r2_te}")
相关推荐
q_354888515315 分钟前
计算机毕业设计:Python当当网图书大数据分析平台 Django框架 爬虫 Pandas 可视化 大数据 大模型 书籍(建议收藏)✅
大数据·爬虫·python·机器学习·数据分析·django·课程设计
云和数据.ChenGuang38 分钟前
鸿蒙餐饮系统:全场景智慧餐饮新范式
人工智能·机器学习·华为·数据挖掘·harmonyos·鸿蒙·鸿蒙系统
Lab_AI1 小时前
科学智能AI4S应用:人工智能加速加速抗生素发现(AIDD助力药物研发)
人工智能·神经网络·机器学习·ai4s·药物研发·aidd
yeflx3 小时前
三维空间坐标转换早期笔记
人工智能·算法·机器学习
GIS数据转换器3 小时前
洪水时空大数据分析与评估系统
大数据·人工智能·机器学习·数据挖掘·数据分析·无人机·宠物
放下华子我只抽RuiKe53 小时前
从零开源:如何将自定义 AI Skill 发布到 GitHub
人工智能·机器学习·开源·github·集成学习·skills·openclaw
LSssT.3 小时前
【01】什么是机器学习?理论基础与技术要点
人工智能·机器学习
YOLO视觉与编程4 小时前
一文读懂-yolo26如何预测识别图片|视频|摄像头|文件夹检测适用v8v11
人工智能·深度学习·yolo·目标检测·机器学习
智算菩萨5 小时前
【Generative AI For Autonomous Driving】5 生成式AI在自动驾驶中的六大应用场景:从数据合成到智慧交通
论文阅读·人工智能·机器学习·ai·自动驾驶·感知
智算菩萨5 小时前
【Generative AI For Autonomous Driving】6 生成式AI在具身智能领域的拓展:从自动驾驶到通用机器人的技术迁移
论文阅读·人工智能·机器学习·ai·机器人·自动驾驶