Search code examples
pythonmachine-learningxgboost

How to print MAPE (mean abs. % error) after fitting regression model?


I trained a XGB Regressor and now I want to output the MAPE score but I am not sure how. Here is my code:

from numpy import absolute
from pandas import read_csv
from sklearn.model_selection import cross_val_score
from sklearn.model_selection import RepeatedKFold
from xgboost import XGBRegressor

# define model
model = XGBRegressor()

# define model evaluation method
cv = RepeatedKFold(n_splits=10, n_repeats=3, random_state=1)

# evaluate model
scores = cross_val_score(model, X, y, scoring='neg_mean_absolute_error', cv=cv, n_jobs=-1)
    

Solution

  • You can use either of these options:

    from sklearn.metrics import mean_absolute_error
    mape = mean_absolute_error(Y_actual, Y_Predicted)*100`
    

    Or,

    mape = np.mean(np.abs((Y_actual - Y_Predicted)/Y_actual))*100