You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求无外部依赖的原生JavaScript MAPE计算函数

原生JavaScript实现MAPE(平均绝对百分比误差)计算函数

公式说明

MAPE用于量化预测值与实际值的偏差程度,公式为:

MAPE = (1/n) * Σ(|(预测值f_i - 实际值a_i)/实际值a_i|) * 100
其中n是有效数据点的数量(需排除实际值为0的情况,避免除以0错误)。

实现代码

function calculateMAPE(actualValues, predictedValues) {
  // 校验数组长度一致性
  if (actualValues.length !== predictedValues.length) {
    throw new Error('实际值数组与预测值数组长度必须一致');
  }

  let sum = 0;
  let validCount = 0;

  for (let i = 0; i < actualValues.length; i++) {
    const actual = actualValues[i];
    const predicted = predictedValues[i];

    // 跳过实际值为0的项,避免除以0报错
    if (actual === 0) {
      continue;
    }

    // 计算单个数据点的绝对百分比误差
    const absolutePercentError = Math.abs((predicted - actual) / actual);
    sum += absolutePercentError;
    validCount++;
  }

  // 处理无有效数据的极端情况
  if (validCount === 0) {
    throw new Error('没有有效的实际值(所有实际值均为0),无法计算MAPE');
  }

  // 转换为百分比形式返回
  return (sum / validCount) * 100;
}

使用示例

// 测试数据
const actual = [100, 150, 200, 180];
const predicted = [105, 145, 210, 170];

// 计算并输出MAPE
const mape = calculateMAPE(actual, predicted);
console.log(`MAPE值:${mape.toFixed(2)}%`); // 输出示例:MAPE值:3.70%

注意事项

  • 函数自动过滤实际值为0的项,规避除以0的运行时错误
  • 若数组长度不匹配或所有实际值均为0,函数会抛出明确的错误提示

内容的提问来源于stack exchange,提问作者Sayyid Iskandar Khan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 23:33:30