当前位置: 首页 > news >正文

基础知识查缺补漏:RMSE和MSE

文章目录

  • 均方误差 (MSE)
  • 均方根误差 (RMSE)
  • 对数变换后的 MSE 和 RMSE
  • 还原后的 MSE 和 RMSE
  • 总结

  • RMSE(均方根误差)和 MSE(均方误差)是常用的模型评估指标,用于衡量模型预测值与真实值之间的差异。
  • MSERMSE 被用来评估模型在对数变换后的目标变量和还原后的目标变量上的表现。

均方误差 (MSE)

  • 定义:均方误差是预测值与真实值之间差异的平方的平均值。

公式
MSE = 1 n ∑ i = 1 n ( y i − y ^ i ) 2 \text{MSE} = \frac{1}{n} \sum_{i=1}^{n} (y_i - \hat{y}_i)^2 MSE=n1i=1n(yiy^i)2

其中:

  • n n n是样本数量。
  • y i y_i yi 是真实值。
  • y ^ i \hat{y}_i y^i 是预测值。

解释

  • MSE 通过平方误差来惩罚较大的预测误差,因此对较大的误差更加敏感。
  • MSE 的单位与原始数据的单位的平方相同,这有时会使得解释起来不太直观。

均方根误差 (RMSE)

  • 定义:均方根误差是均方误差的平方根。

公式
RMSE = 1 n ∑ i = 1 n ( y i − y ^ i ) 2 \text{RMSE} = \sqrt{\frac{1}{n} \sum_{i=1}^{n} (y_i - \hat{y}_i)^2} RMSE=n1i=1n(yiy^i)2

其中:

  • n n n 是样本数量。
  • y i y_i yi 是真实值。
  • y ^ i \hat{y}_i y^i 是预测值。

解释

  • RMSE 是 MSE 的平方根,因此它与原始数据的单位相同,这使得 RMSE 更加直观和易于解释。
  • RMSE 也对较大的预测误差更加敏感,因为它对误差进行了开平方处理。

对数变换后的 MSE 和 RMSE

# 计算训练集上对数变换后的真实值与预测值之间的均方误差(MSE)
mse_train_log = mean_squared_error(y_true=np.log1p(y_train), y_pred=reg.predict(x_train_scaled))
print(f"训练集上对数变换后的 MSE: {mse_train_log}")# 计算测试集上对数变换后的真实值与预测值之间的均方误差(MSE)
mse_test_log = mean_squared_error(y_true=np.log1p(y_test), y_pred=y_predict)
print(f"测试集上对数变换后的 MSE: {mse_test_log}")# 计算训练集上对数变换后的真实值与预测值之间的均方根误差(RMSE)
rmse_train_log = np.sqrt(mean_squared_error(y_true=np.log1p(y_train), y_pred=reg.predict(x_train_scaled)))
print(f"训练集上对数变换后的 RMSE: {rmse_train_log}")# 计算测试集上对数变换后的真实值与预测值之间的均方根误差(RMSE)
rmse_test_log = np.sqrt(mean_squared_error(y_true=np.log1p(y_test), y_pred=y_predict))
print(f"测试集上对数变换后的 RMSE: {rmse_test_log}")

还原后的 MSE 和 RMSE

# 计算训练集上真实值与预测值(经过指数变换还原)之间的均方根误差(RMSE)
rmse_train_exp = np.sqrt(mean_squared_error(y_true=y_train, y_pred=np.exp(reg.predict(x_train_scaled))))
print(f"训练集上还原后的 RMSE: {rmse_train_exp}")# 计算测试集上真实值与预测值(经过指数变换还原)之间的均方根误差(RMSE)
rmse_test_exp = np.sqrt(mean_squared_error(y_true=y_test, y_pred=np.exp(y_predict)))
print(f"测试集上还原后的 RMSE: {rmse_test_exp}")

总结

  • MSE:衡量预测值与真实值之间差异的平方的平均值,单位是原始数据单位的平方。
  • RMSE:MSE 的平方根,单位与原始数据单位相同,更直观和易于解释。

  • 在实际应用中,RMSE 通常更受欢迎,因为它与原始数据的单位相同,便于解释和比较。然而,在需要对误差进行平方处理的情况下,MSE 也可以提供有用的信息。
http://www.xdnf.cn/news/72343.html

相关文章:

  • TOGAF 敏捷冲刺:15 天 Scrum 冲刺实践
  • CentOS7安装MySQL教程
  • 01-初识前端
  • 9.策略模式:思考与解读
  • [FPGA基础] FIFO篇
  • 上位机软件开发的关键技术与应用解析​
  • uCOS3实时操作系统(系统初始化和任务启动)
  • close和shutdown
  • el-select+vue-virtual-scroller解决数据量大卡顿问题
  • Python 爬虫如何获取淘宝商品的 SKU 详细信息
  • 用74HC595芯片就可做一个SPI组件
  • 【内容摘要】大模型内容摘要实战 会议摘要 提示词技巧
  • 【Spring】深入解析 Spring AOP 核心概念:切点、连接点、通知、切面、通知类型和使用 @PointCut 定义切点的方法
  • oracle rac时区问题导致远程查询时间不准
  • 从洗衣房到国学课堂:海信冰箱发起跨越千里的山区助学行动
  • 2024年TETCI SCI2区:增强差分进化麻雀搜索算法DSSADE,深度解析+性能实测
  • AI日报 - 2024年04月22日
  • 【Vue】修饰符
  • 进行ecovadis认证有哪些优势?百胜咨询:专业ecovadis认证辅导机构
  • 安全挑战再升级,2025都有哪些备份与恢复挑战?
  • 开箱即用:一款带世界时钟简约好用在线时间戳转换工具源码
  • 【Linux】:UDP协议
  • C++中的未定义详解
  • 在C++业务类和QML之间创建一个数据桥梁
  • 机器视觉lcd屏增光片贴合应用
  • 什么是Manus,国内用户如何订阅Manus
  • FR806HA小板烧录固件
  • Vue.js进阶实践:串行请求管理与优雅中断方案
  • 内核是如何接收网络包的
  • CountAnything 如何驱动木材行业自动库存管理转型