是否有人试过复现《GMAN: A Graph Multi-Attention Network for Traffic Prediction
》这篇论文的代码。我的在test阶段算出的MAPE是nan%。请问是否有人知道为什么会出现这样的问题,改如何解决?
关于MAPE出现nan%的问题,如何解决?
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- 一轮明月照丘壑 2024-09-21 14:16关注
以下回复参考:皆我百晓生、券券喵儿等免费微信小程序作答:
为了更准确地理解您的问题并提供相应的解决方案,我将进行以下几个步骤:
- 确认
MAPE
中的NaN值。 - 分析可能影响
MAPE
计算的因素(例如,数据类型、异常值等)。 - 检查
MAPE
函数是否正确实现,以及是否有任何潜在错误导致NaN值。
首先,让我们查看您提供的
MAPE
计算结果。请注意,这些数字都是NaN,这意味着它们不被接受并且被视为无效。这可能是由于一些原因造成的,如输入数据中存在大量NaN值或者处理过程中发生了某种异常。解决方案:
-
确认NaN值:首先,我们需要确定哪些行或列包含NaN值。这通常可以通过检查
np.isnan()
方法返回的结果来完成,其中np.isnan(array)
会返回一个布尔数组,表示给定数组中每个元素是否为NaN。import numpy as np # 假设我们有DataFrame df,并且想要找出包含NaN的行 nan_rows = df[df.isna().any(axis=1)] print("包含NaN的行:", nan_rows)
-
分析原因:一旦确定了包含NaN的行,我们可以进一步分析这些值是如何产生的。这可能涉及对数据清洗过程的审查,以确保所有必要的清理步骤都已完成。
-
修正代码:如果确实存在问题,可以尝试修复代码逻辑,确保所有输入数据都被正确处理。这可能包括添加异常处理、数据预处理步骤或重新设计算法结构。
-
验证准确性:最终,通过运行新的测试数据集,验证修正后的
MAPE
是否仍然产生预期的输出。
示例代码:
假设我们有一个包含
df
的数据框,其中y_true
是实际目标值,y_pred
是我们预测的目标值,我们想计算的是MAPE
。import numpy as np def calculate_mape(y_true, y_pred): """ Calculate Mean Absolute Percentage Error (MAPE) between true and predicted values. Parameters: - y_true: Array-like of shape (n_samples,) containing the actual target values. - y_pred: Array-like of shape (n_samples,) containing the predicted target values. Returns: - The MAPE value. """ # Convert arrays to Numpy arrays for consistency with np.isnan() y_true, y_pred = np.array(y_true), np.array(y_pred) # Check if there are any NaN values in either array has_nan = np.isnan(y_true).any() or np.isnan(y_pred).any() if has_nan: raise ValueError("Input data contains NaN values.") # Calculate MAPE mape = np.mean(np.abs((y_true - y_pred) / y_true)) * 100 return mape # 示例数据 data = { 'y_true': [2.04, 2.22, 2.10], 'y_pred': [1.71, 1.80, 2.16] } mape = calculate_mape(data['y_true'], data['y_pred']) print(f"Mean Absolute Percentage Error (MAPE): {mape:.2f}%")
在这个示例中,我们首先定义了一个
calculate_mape
函数,用于计算MAPE
。然后我们创建了一个包含真实值和预测值的字典,调用此函数并打印结果。注意,这里假定了y_true
和y_pred
已经进行了转换以便于比较。如果您能提供更多有关数据集的信息,比如原始数据是什么样的,以及具体遇到的问题所在,我可以为您提供更具体的建议。
解决评论 打赏 举报无用 1 - 确认
悬赏问题
- ¥15 如何在vue.config.js中读取到public文件夹下window.APP_CONFIG.API_BASE_URL的值
- ¥50 浦育平台scratch图形化编程
- ¥20 求这个的原理图 只要原理图
- ¥15 vue2项目中,如何配置环境,可以在打完包之后修改请求的服务器地址
- ¥20 微信的店铺小程序如何修改背景图
- ¥15 UE5.1局部变量对蓝图不可见
- ¥15 一共有五道问题关于整数幂的运算还有房间号码 还有网络密码的解答?(语言-python)
- ¥20 sentry如何捕获上传Android ndk 崩溃
- ¥15 在做logistic回归模型限制性立方条图时候,不能出完整图的困难
- ¥15 G0系列单片机HAL库中景园gc9307液晶驱动芯片无法使用硬件SPI+DMA驱动,如何解决?