‘precision_at_target_recall’, ‘recall_at_target_precision’ для гиперпараметров в AWS SageMaker, как он работает с этим ограничением?

#amazon-web-services #scikit-learn #linear-regression #amazon-sagemaker #hyperparameters

#amazon-веб-сервисы #scikit-учиться #линейная регрессия #amazon-sagemaker #гиперпараметры

Вопрос:

[AWS SageMaker LinearLearner][1] ; binary_classifier_model_selection_criteria — это гиперпараметр, полезный без перекрестной проверки и настройки гиперпараметров. По крайней мере, мне так кажется.

Если да, не могли бы вы объяснить, как можно обучить модель, установив для этого гиперпараметра значение ‘precision_at_target_recall’ или ‘recall_at_target_precision’ ?

Я не видел такой вещи в scikit-learn. Единственный способ, который кажется мне возможным и разумным, — это поиграть с threshold, чтобы сохранить его на уровне target_recall или target_precision, к сожалению, в документации ничего не упоминается о пороге или отключении, и я предполагаю, что он по-прежнему равен .5.

Комментарии:

1. Я предполагаю, что это основано на установке порога; см. «Шаг 3: проверка и установка порога» в docs.aws.amazon.com/sagemaker/latest/dg/ll_how-it-works.html Но я был бы рад увидеть более конкретную документацию по этому поводу!

Ответ №1:

SageMaker Linear Learner отличается от линейных моделей с открытым исходным кодом во многих аспектах, в частности:

  • Больше контроля над производительностью: он содержит гиперпараметры, чтобы заставить модель соблюдать заданную точность или порог отзыва. Например, если ваша цель — получить классификатор, который получает не менее 95% отзыва, вы можете соответствующим образом выбрать гиперпараметры: binary_classifier_model_selection_criteria='precision_at_target_recall' и target_recall=0.95
  • Он может исследовать несколько конфигураций в одном обучающем задании, эффективно выполняя «настройку при обучении». В документации это поведение называется «параллельным обучением и выбором модели», отличается от функции настройки модели SageMaker и характерно для линейного обучаемого. Вы можете управлять количеством протестированных моделей с num_models помощью параметра
  • Обычно он гораздо более масштабируемый, чем альтернативы: он обучается как нейронная сеть в режиме мини-пакетного SGD, что позволяет ему поддерживать параллельное распределенное обучение с использованием данных на нескольких процессорах или экземплярах графических процессоров. Он поддерживает загрузку данных в режиме КАНАЛА, технологию приема данных SageMaker с низкой задержкой и высокой пропускной способностью, которая использует именованный канал Unix для потоковой передачи данных из S3 непосредственно в память, позволяя изучать огромные наборы данных, слишком большие для локальных дисков.
  • Он был разработан для обеспечения высокой эффективности. мы можем только предполагать, в чем заключаются основные хитрости, поскольку реализация не является общедоступной, но я считаю, что богатые возможности настройки SGD и дизайн настройки при обучении способствуют его экономической эффективности. См. Ниже сравнительный анализ с MLlib из статьи Elastic Machine Learning Algorithms в Amazon SageMaker от Liberty и др.
  • Он поставляется со встроенным стеком обслуживания: вы можете легко развернуть обученную модель на обслуживаемой конечной точке, управляемой SageMaker, без необходимости самостоятельно писать какой-либо файл dockerfile или код веб-сервера

введите описание изображения здесь

Дополнительным заметным отличием SageMaker Linear Learner от других встроенных SageMaker является то, что вы можете прочитать его из SageMaker с помощью кода десериализации MXNet, предоставленного в документе