Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Dúvida] Ausência do objective='binary:logistic' no ajuste dos hiperparâmetros

Olá.

Nos vídeos anteriores desta aula, foi aplicado o RandomizedSearchCV e o GridSearchCV para a busca pelos melhores parâmetros. Em ambos, foi instanciado um modelo com valores default:

modelo_xgb = xgb.XGBClassifier()

O modelo não deveria ter sido instanciado com o parâmetro objective='binary:logistic'?

modelo_xgb = xgb.XGBClassifier(objective='binary:logistic')

Pelo que eu vi na documentação do XGBoost, o parâmetro default para o objective é reg:squarederror. Vi que para o exemplo da aula o resultado foi o mesmo, adicionando ou não o parâmetro objective='binary:logistic' no modelo. No entanto, em aplicações reais, a ausência deste parâmetro durante o ajuste dos hiperparâmetros não poderia gerar resultados diferentes?

2 respostas
solução!

Olá, Matheus! Tudo bem?

Na verdade, o parâmetro objective='reg:squarederror' é o padrão para o XGBoost quando utilizado para regressão, não para resolver problemas de classificação. O default para o objetivo é 'binary:logistic' para classificação binária.

Embora os resultados possam ser os mesmos com ou sem a definição explícita do parâmetro objective='binary:logistic', é uma boa prática ser explícito sobre as configurações dos modelos, para evitar confusões e garantir consistência, principalmente em ambientes de produção.

Obrigado por trazer isso à nossa atenção! Se precisar de mais alguma ajuda ou tiver outras dúvidas, estamos à disposição para ajudar.

Oi professora, agradeço pela correção!

Agora encontrei o caminho certo na documentação que confirma o que você apontou, que o objective='binary:logistic' é o default para o XGBClassifier. Vou deixar o link para ficar registrado aqui no fórum: https://xgboost.readthedocs.io/en/stable/python/python_api.html#xgboost.XGBClassifier

Desculpe pela confusão e obrigado pelos cursos!