评估预测曲线与实际曲线得接近程度

通过两种方法得到一条平面离散曲线的数据,x坐标各不相同,以其中一种结果为标准,如何评价两种结果的误差?

评价两种结果的误差可以使用不同的指标,常用的指标有均方根误差(RMSE)和平均绝对误差(MAE)。较小的 RMSE 和 MAE 值表示预测结果与参考结果之间的误差较小。这两个指标都用于衡量预测值和真实值之间的差异,具体选择哪个指标取决于具体问题和需求。

均方根误差(Root Mean Square Error)是一种常用的回归模型评估指标,用来衡量预测值与真实值之间的差异程度。由于RMSE对大误差有较大惩罚,因此在评估预测模型时,RMSE通常用于评价预测精确性,越小的RMSE表示模型预测能力越好。

平均绝对误差(Mean Absolute Error)也是一种常用的回归模型评估指标,同样用于衡量预测值与真实值之间的差异程度。MAE表示了预测值和真实值之间的平均差距的大小,越小的MAE表示模型预测能力越好。与RMSE不同,MAE没有平方操作,对所有误差的权重是相等的。

import numpy as np
import matplotlib.pyplot as plt
from scipy.interpolate import interp1d
​
# 参考结果:x坐标和y坐标(假设已知)
x_true = np.array([1, 2, 3, 4, 5])
y_true = np.array([0.9, 1.8, 3.1, 3.8, 4.9])
​
# 预测结果:x坐标和y坐标(假设已知,数量和顺序可能与参考结果不同)
x_pred = np.array([1, 2.2, 3.3, 4.4, 4.8])
y_pred = np.array([0.8, 1.6, 3.2, 4.0, 5.0])
​
# 找到共同的x范围
min_x = max(np.min(x_true), np.min(x_pred))
max_x = min(np.max(x_true), np.max(x_pred))
​
# 在共同的x范围内截取参考结果
indices_common = np.logical_and(x_true >= min_x, x_true <= max_x)
x_common = x_true[indices_common]
y_true_common = y_true[indices_common]
​
# 在共同的x范围内对预测结果进行插值
f = interp1d(x_pred, y_pred)
y_pred_interp = f(x_common)
​
# 计算误差指标
rmse = np.sqrt(np.mean((y_true_common - y_pred_interp) ** 2))
mae = np.mean(np.abs(y_true_common - y_pred_interp))
​
# 绘制图形
plt.plot(x_true, y_true, label='Ground Truth')
plt.plot(x_pred, y_pred, label='Prediction')
plt.scatter(x_common, y_true_common, color='red', label='Common Data Points')
plt.scatter(x_common, y_pred_interp, color='green', label='Interpolated Prediction')
​
# 标记误差指标
plt.text(min_x + 0.5, max(y_true_common) - 0.5, f'RMSE: {round(rmse, 2)}\nMAE: {round(mae, 2)}', fontsize=10)
​
plt.legend()
plt.xlabel('x')
plt.ylabel('y')
plt.title('Ground Truth and Prediction Results')
plt.grid(True)
plt.show()

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值