Evalml: Error al usar la recuperación como objetivo automático principal

Creado en 12 mar. 2021  ·  4Comentarios  ·  Fuente: alteryx/evalml

Estimados,
En un problema de clasificación binaria, donde el costo de FN es más alto que el costo de FP, al intentar usar la recuperación como objetivo, obtengo el siguiente error:

ValueError: ¡la recuperación no está permitida en AutoML! Utilice evalml.objectives.utils.get_core_objective_names () para obtener todos los nombres de objetivos permitidos en automl.

Revisé los nombres permitidos y puedo ver que el recuerdo está ahí.

¿Alguna sugerencia?

Muchas gracias de antemano
Nikos

Comentario más útil

¡Hola @ npapan69 !

Desaconsejamos el uso de la recuperación como objetivo principal en la búsqueda automática porque una canalización trivial que siempre predice la clase positiva generalmente producirá una puntuación de recuperación perfecta. Así que automl está incentivado a encontrar pipelines triviales. Vea el número 476. Es por eso que no está en nuestra lista de objetivos centrales, como dice el error:

image

Sin embargo, ¡aún puede usar la recuperación como un objetivo automático! Simplemente páselo como una instancia en lugar de una cadena:

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()

Producción:

image

Todos 4 comentarios

¡Hola @ npapan69 !

Desaconsejamos el uso de la recuperación como objetivo principal en la búsqueda automática porque una canalización trivial que siempre predice la clase positiva generalmente producirá una puntuación de recuperación perfecta. Así que automl está incentivado a encontrar pipelines triviales. Vea el número 476. Es por eso que no está en nuestra lista de objetivos centrales, como dice el error:

image

Sin embargo, ¡aún puede usar la recuperación como un objetivo automático! Simplemente páselo como una instancia en lugar de una cadena:

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()

Producción:

image

¡Gracias @freddyaboulton !

Tenía una sugerencia más: si desea que automl sepa que el costo de los falsos positivos en su problema debe ser más alto que el costo de los falsos negativos, puede intentar usar el 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)

¡Gracias por enviar el problema @dsherry y @freddyaboulton intervinieron. ¡

Gracias TylerNickolas Papanikolaou, Ph.D. Jefe del Grupo de Imagen Clínica Computacional de la Fundación Champalimaud Centro para lo Desconocido Av. Brasilia, Doca de Pedrouços1400-038 Lisboa, Portugal Línea telefónica: ++ 351210480073 Móvil: ++ 351969323757 El jueves 18 de marzo de 2021 a las 5:40 pm, Tyler @ . * > escribió:
¡Gracias por enviar el problema @dsherry y @freddyaboulton intervinieron. ¡

—Está recibiendo esto porque fue mencionado. Responda a este correo electrónico directamente, véalo en GitHub o cancele la suscripción.
[
{
@ . ":" http://schema.org ",* @ . ": "Mensaje de correo electrónico",
"potencialAcción": {
@ . ":" VerAcción ","target": " https://github.com/alteryx/evalml/issues/1973#issuecomment -802154198","url": " https://github.com/alteryx/evalml/issues/1973#issuecomment -802154198","name": "Ver problema"},"description": "Ver este problema en GitHub","editor": {. * ":" Organización ",
"nombre": "GitHub",
"url": " https://github.com "
}
}
]

¿Fue útil esta página
0 / 5 - 0 calificaciones