mean_absolute_percentage_error#
- sklearn.metrics.mean_absolute_percentage_error(y_true, y_pred, *, sample_weight=None, multioutput='uniform_average')[source]#
平均绝对百分比误差 (MAPE) 回归损失。
注意,我们没有使用常见的“百分比”定义:百分比在 [0, 100] 范围内,通过除以 100 转换为 [0, 1] 范围内的相对值。因此,200% 的误差对应于 2 的相对误差。
在用户指南中了解更多信息。
0.24 版本新增。
- 参数:
- y_true形状为 (n_samples,) 或 (n_samples, n_outputs) 的类数组对象
真实(正确)的目标值。
- y_pred形状为 (n_samples,) 或 (n_samples, n_outputs) 的类数组对象
估计的目标值。
- sample_weightshape 为 (n_samples,) 的 array-like, default=None
样本权重。
- multioutput{‘raw_values’, ‘uniform_average’} or array-like
定义多个输出值的聚合方式。Array-like 值定义用于平均误差的权重。如果输入是列表,则形状必须为 (n_outputs,)。
- ‘raw_values’
在多输出输入情况下返回完整的误差集。
- ‘uniform_average’
所有输出的误差以统一权重进行平均。
- 返回:
- lossfloat or ndarray of floats
如果 multioutput 是 ‘raw_values’,则分别返回每个输出的平均绝对百分比误差。如果 multioutput 是 ‘uniform_average’ 或权重的 ndarray,则返回所有输出误差的加权平均值。
MAPE 输出是非负浮点数。最佳值是 0.0。但请注意,糟糕的预测可能导致任意大的 MAPE 值,特别是当某些
y_true值非常接近零时。请注意,当y_true为零时,我们返回一个大值而不是inf。
示例
>>> from sklearn.metrics import mean_absolute_percentage_error >>> y_true = [3, -0.5, 2, 7] >>> y_pred = [2.5, 0.0, 2, 8] >>> mean_absolute_percentage_error(y_true, y_pred) 0.3273... >>> y_true = [[0.5, 1], [-1, 1], [7, -6]] >>> y_pred = [[0, 2], [-1, 2], [8, -5]] >>> mean_absolute_percentage_error(y_true, y_pred) 0.5515... >>> mean_absolute_percentage_error(y_true, y_pred, multioutput=[0.3, 0.7]) 0.6198... >>> # the value when some element of the y_true is zero is arbitrarily high because >>> # of the division by epsilon >>> y_true = [1., 0., 2.4, 7.] >>> y_pred = [1.2, 0.1, 2.4, 8.] >>> mean_absolute_percentage_error(y_true, y_pred) 112589990684262.48