Treinei dois modelos (classificadores binários usando o h2o AutoML) e quero selecionar um para usar. Eu tenho os seguintes resultados:
model_id auc logloss logloss_train logloss_valid gini_train gini_valid
DL_grid_1 0.542694 0.287469 0.092717 0.211956 0.872932 0.312975
DL_grid_2 0.543685 0.251431 0.082616 0.186196 0.900955 0.312662
as colunas auc
e logloss
são as métricas de validação cruzada (a validação cruzada usa apenas os dados de treinamento). as métricas ..._train
e ..._valid
são encontradas executando as métricas de treinamento e validação nos modelos, respectivamente. Eu quero usar o logloss_valid
ou o gini_valid
para escolher o melhor modelo.
O modelo 1 tem um gini melhor (ou seja, uma AUC melhor), mas o modelo dois tem um logloss melhor. Minha pergunta é qual escolher, o que eu acho que implora a pergunta, quais são as vantagens / desvantagens de usar gini (AUC) ou logloss como métrica de decisão.
Respostas:
Enquanto a AUC é calculada com relação à classificação binária com um limite de decisão variável, o logloss realmente leva em consideração a "certeza" da classificação.
Portanto, a meu ver, logloss conceitualmente vai além da AUC e é especialmente relevante em casos com dados desequilibrados ou em caso de custo de erro desigualmente distribuído (por exemplo, detecção de uma doença mortal).
Além desta resposta muito básica, convém otimizar auc vs logloss em problemas de classificação binária
Um exemplo simples de computação com perda de log e o conceito subjacente é discutido nesta pergunta recente A função Log Loss no scikit-learn retorna valores diferentes
Além disso, um argumento muito bom foi feito no stackoverflow
fonte