Evalml: Ошибка при использовании отзыва в качестве основной цели автомата

Созданный на 12 мар. 2021  ·  4Комментарии  ·  Источник: alteryx/evalml

Приветствую всех,
В задаче двоичной классификации, когда стоимость FN выше, чем стоимость FP, при попытке использовать отзыв в качестве цели я получаю следующую ошибку:

ValueError: отзыв не допускается в AutoML! Используйте evalml.objectives.utils.get_core_objective_names (), чтобы получить все имена целей, разрешенные в automl.

Я просмотрел разрешенные имена и вижу, что они есть

Какие-либо предложения?

Спасибо заранее
Никос

Самый полезный комментарий

Привет @ npapan69 !

Мы не рекомендуем использовать отзыв в качестве основной цели в автоматическом поиске, потому что тривиальный конвейер, который всегда предсказывает положительный класс, обычно дает идеальную оценку отзыва. Так что у automl есть стимул находить тривиальные конвейеры. См. Выпуск № 476. Вот почему этого нет в нашем списке основных целей, как говорится в ошибке:

image

Тем не менее, вы все равно можете использовать отзыв как автоматическую цель! Просто передайте его как экземпляр, а не строку:

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

Выход:

image

Все 4 Комментарий

Привет @ npapan69 !

Мы не рекомендуем использовать отзыв в качестве основной цели в автоматическом поиске, потому что тривиальный конвейер, который всегда предсказывает положительный класс, обычно дает идеальную оценку отзыва. Так что у automl есть стимул находить тривиальные конвейеры. См. Выпуск № 476. Вот почему этого нет в нашем списке основных целей, как говорится в ошибке:

image

Тем не менее, вы все равно можете использовать отзыв как автоматическую цель! Просто передайте его как экземпляр, а не строку:

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

Выход:

image

Спасибо @freddyaboulton !

У меня было еще одно предложение: если вы хотите, чтобы Automl знал, что стоимость ложных срабатываний по вашей проблеме должна быть выше, чем стоимость ложноотрицательных результатов, вы можете попробовать использовать цель 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)

Спасибо за обращение @ npapan69 ! Я закрываю его, так как @dsherry и @freddyaboulton вмешались . Если у вас возникнут дополнительные вопросы, свяжитесь с

Спасибо Тайлер Николас Папаниколау, доктор философии, руководитель группы компьютерной клинической визуализацииChampalimaud FoundationCentre for the UnknownAv. Бразилиа, Дока-де-Педрус, 1400-038 Лиссабон, Португалия Телефон: ++ 351210480073 Мобильный: ++ 351969323757В четверг, 18 марта 2021 г., в 17:40, Tyler @ . * > написал:
Спасибо за обращение @ npapan69 ! Я закрываю его, так как @dsherry и @freddyaboulton вмешались . Если у вас возникнут дополнительные вопросы, свяжитесь с

- Вы получили это, потому что были упомянуты. Ответьте на это письмо напрямую, просмотрите его на GitHub или откажитесь от подписки.
[
{
@ . ":" http://schema.org ",* @ . ": "Сообщение электронной почты",
"possibleAction": {
@ . ":" ViewAction ","target": " https://github.com/alteryx/evalml/issues/1973#issuecomment -802154198","url": " https://github.com/alteryx/evalml/issues/1973#issuecomment -802154198","name": "Просмотреть выпуск"},"description": "Посмотреть эту проблему на GitHub","publisher": {. * ":" Организация ",
"name": "GitHub",
"url": " https://github.com "
}
}
]

Была ли эта страница полезной?
0 / 5 - 0 рейтинги