Issue
I am trying to interpret the value that I get out of sklearn.metrics.mean_absolute_percentage_error(y_true, y_pred), but have difficulty to understand the interpretation. I need to interpret the result based on below accepted (?) schema
Based on the official Python explanation:
Note here that the output is not a percentage in the range [0, 100] and a value of 100 does not mean 100% but 1e2. Furthermore, the output can be arbitrarily high when y_true is small (which is specific to the metric) or when abs(y_true - y_pred) is large (which is common for most regression metrics). Read more in the User Guide.
So again,
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...
what does 0.32 mean? if this does not mean 32%, then what?
I am using this function and I am getting these results for two different data sets:
0.3 for one set of my data
1.3 for another set of my data
I can say the first set is more accurate, but can I say 30% is MAPE of the first set and 130% is MAPE of the second set, I guess I cannot. So How do I need to interpret these outputs?
Solution
If you look at the source code for the mape
calculation in sklearn you will see the value is not multiplied by 100, so it is not a percentage. Therefore, while interpreting your results, you should multiply the mape
value by a 100 to have it in percentage. You must also pay a close attention to your actual data if there is value close to 0 then they could cause mape
to be large. For instance, you could look at the wikipedia link on mape
formulation.
I suggest you plot the actual value and the predicted value as a scatter plot and then compare it with the line y=x
.
Answered By - Pygin
0 comments:
Post a Comment
Note: Only a member of this blog may post a comment.