Evalml: Erro ao usar o recall como objetivo principal do automl

Criado em 12 mar. 2021  ·  4Comentários  ·  Fonte: alteryx/evalml

Caros,
Em um problema de classificação binária, onde o custo do FN é maior do que o custo do FP, ao tentar usar o recall como um objetivo, recebo o seguinte erro:

ValueError: rechamada não é permitida no AutoML! Use evalml.objectives.utils.get_core_objective_names () para obter todos os nomes de objetivos permitidos em automl.

Eu verifiquei os nomes permitidos e posso ver que me lembro se está lá

Alguma sugestão?

Muito obrigado antecipadamente
Nikos

Comentários muito úteis

Olá @ npapan69 !

Nós desencorajamos o uso de recall como um objetivo principal na pesquisa automática porque um pipeline trivial que sempre prevê a classe positiva geralmente produzirá uma pontuação de recall perfeita. Portanto, o automl é incentivado a encontrar pipelines triviais. Veja o problema # 476. É por isso que não está em nossa lista de objetivos principais, como diz o erro:

image

No entanto, você ainda pode usar o recall como um objetivo automático! Basta passá-lo como uma instância em vez de uma string:

from evalml.demos import load_breast_cancer
from evalml.automl import AutoMLSearch
from evalml.objectives import Recall
X, y = load_breast_cancer()
automl = AutoMLSearch(X, y, problem_type="binary", objective=Recall())

automl.search()

Saída:

image

Todos 4 comentários

Olá @ npapan69 !

Nós desencorajamos o uso de recall como um objetivo principal na pesquisa automática porque um pipeline trivial que sempre prevê a classe positiva geralmente produzirá uma pontuação de recall perfeita. Portanto, o automl é incentivado a encontrar pipelines triviais. Veja o problema # 476. É por isso que não está em nossa lista de objetivos principais, como diz o erro:

image

No entanto, você ainda pode usar o recall como um objetivo automático! Basta passá-lo como uma instância em vez de uma string:

from evalml.demos import load_breast_cancer
from evalml.automl import AutoMLSearch
from evalml.objectives import Recall
X, y = load_breast_cancer()
automl = AutoMLSearch(X, y, problem_type="binary", objective=Recall())

automl.search()

Saída:

image

Obrigado @freddyaboulton !

Eu tinha mais uma sugestão: se você deseja que o automl saiba que o custo dos falsos positivos em seu problema deve ser maior do que o custo dos falsos negativos, você pode tentar usar o objetivo CostBenefitMatrix :

import evalml
obj = evalml.objectives.CostBenefitMatrix(true_positive=1.0, true_negative=1.0, false_positive=10.0, false_negative=1.0)
automl = AutoMLSearch(X, y, problem_type="binary", objective=obj)

Obrigado por enviar o problema @ npapan69 ! Estou fechando porque @dsherry e @freddyaboulton entraram na conversa. Entre em contato se tiver mais perguntas.

Obrigado TylerNickolas Papanikolaou, Ph.D.Head of Computational Clinical Imaging GroupChampalimaud FoundationCentre for the UnknownAv. Brasília, Doca de Pedrouços1400-038 Lisboa, PortugalLine: ++ 351210480073Mobile: ++ 351969323757Em Qui, 18 Mar 2021 às 17:40, Tyler @ . * > escreveu:
Obrigado por enviar o problema @ npapan69 ! Estou fechando porque @dsherry e @freddyaboulton entraram na conversa. Entre em contato se tiver mais perguntas.

—Você está recebendo isto porque foi mencionado. Responda a este e-mail diretamente, visualize-o no GitHub ou cancele a inscrição.
[
{
@ . ":" http://schema.org ",* @ . ": "Mensagem de email",
"potencialAção": {
@ . ":" ViewAction ","target": " https://github.com/alteryx/evalml/issues/1973#issuecomment -802154198","url": " https://github.com/alteryx/evalml/issues/1973#issuecomment -802154198","name": "Ver problema"},"descrição": "Ver este problema no GitHub","editor": {. * ":" Organização ",
"nome": "GitHub",
"url": " https://github.com "
}
}
]

Esta página foi útil?
0 / 5 - 0 avaliações