Como podemos calcular o erro médio percentual absoluto (MAPE) de nossas previsões usando Python e scikit-learn?
A partir dos documentos , temos apenas estas 4 funções métricas para regressões:
- metrics.explained_variance_score (y_true, y_pred)
- metrics.mean_absolute_error (y_true, y_pred)
- metrics.mean_squared_error (y_true, y_pred)
- metrics.r2_score (y_true, y_pred)
predictive-models
python
scikit-learn
mape
Nyxynyx
fonte
fonte
Respostas:
Como observado (por exemplo, na Wikipedia ), o MAPE pode ser problemático. Mais especificamente, pode causar erros de divisão por zero. Meu palpite é que é por isso que não está incluído nas métricas do sklearn.
No entanto, é simples de implementar.
Use como qualquer outra métrica ...:
(Observe que estou multiplicando por 100 e retornando uma porcentagem.)
... mas com cautela:
fonte
y_pred
pory_true
em denominador):return np.mean(np.abs((y_true - y_pred) / y_true)) * 100
check_arrays
foi abandonado por scipy. Existecheck_array
no sklearn atual, mas não parece que funciona da mesma maneira.aqui está uma versão atualizada:
fonte