Самая крутая библиотека для Data Science, которую я нашёл в 2021 году

Original author: Diego Salinas
  • Translation
  • Tutorial

Больше никогда не тратьте время на настройку гиперпараметров




Я стал дата-сайентистом, потому что мне нравится находить решения для сложных задач. Творческая часть работы и информация, которую я получаю из данных, – это то, что мне нравится больше всего. Такие скучные вещи, как очистка данных, предварительная обработка и настройка гиперпараметров, приносят мне мало удовольствия, и поэтому я стараюсь максимально автоматизировать эти задачи.

Если вам также нравится автоматизировать скучные вещи, вам понравится библиотека, которую я собираюсь рассмотреть в этой статье.


В настоящее время в области машинного обучения преобладают глубокое обучение в случае перцептивных проблем и методы повышения эффективности для регрессионных проблем.
В наши дни никто не использует линейную регрессию из Scikit-Learn для прогнозирования цен на жильё в соревнованиях Kaggle, потому что метод XGboost более точен.

Однако гиперпараметры XGboost сложно настроить. Их много, и инженеры по машинному обучению тратят много времени на их настройку.

Представляем Xgboost-AutoTune


Я рад поделиться с вами библиотекой Xgboost AutoTune, разработанной Сильвией Оливией из MIT. Эта библиотека стала предпочтительным для меня вариантом для автоматической настройки XGboost.

Давайте рассмотрим её на примере набора климатических данных. Мы будем предсказывать повышение температуры в зависимости от концентрации парниковых газов и оценивать влияние каждого газа.

Прежде всего мы импортируем набор данных и построим графики концентраций газов для CO2, CH4, N20 и синтетических газов:


После выполнения этого кода мы увидим, как увеличилось количество парниковых газов за последние 140 лет:


Круто, теперь мы можем импортировать нашу библиотеку, о которой я упоминал ранее, но на всякий случай, если вы не скачали репозиторий, я покажу код и здесь:


По сути, всё, что вам нужно знать, – это то, что основным методом этой библиотеки является параметр «fit_parameters», вам просто нужно вызвать его, и он выполнит всю тяжёлую работу по поиску лучших значений для ваших гиперпараметров. Вот так:


Обратите внимание, что мы указали метрику оценки для моделей (в данном случае среднеквадратичная логарифмическая ошибка RMSLE) и исходную модель –  XGBRegressor, потому что это регрессионная задача (другой вариант – это задача классификации).
Круто, мы только что построили наилучшую возможную модель XGboost с помощью двух строк кода, теперь давайте рассчитаем прогнозы:


Код выведет график с прогнозируемой температурой на основе реальных значений из тестового датасета:

Выглядит неплохо.

Теперь, если мы хотим узнать, какие газы являются наиболее влиятельными в эффекте потепления, мы можем выполнить следующий код:


Мы получим график:



Как и ожидалось, CO2 – это газ с самым сильным эффектом, это неудивительно, но мы также видим, что CH4 также имеет довольно сильный эффект, а самое главное – эта модель была очень быстрой в обучении.

Заключение


Градиентный бустинг является наиболее часто используемым алгоритмом для задач регрессии и классификации, не требующим глубокого обучения, из-за его высокой точности, интерпретируемости и скорости.

К сожалению, хотя экосистема Python предоставляет библиотеку XGboost, она не так обширна, как другие библиотеки, такие как Scikit-Learn, и настройка параметров должна выполняться специалистами по данным вручную, что доставляет много боли.
Вот почему я считаю эту библиотеку жемчужиной, которой нужно поделиться.

Моё последнее размышление: Нанимать специалистов по данным стоит дорого, и их время лучше всего тратить на нетривиальную работу. Вы можете представить себе директора по продажам, делающего холодные звонки? Конечно, нет, это не его работа.

Что ж, к сожалению, многие дата-сайенс специалисты являются мастерами на все руки, их работа очень часто включает в себя поиск данных, их очистку, приём данных, выбор модели для использования, кодирование модели, написание скрипта для настройки модели, развёртывание модели, представление модели бизнесу и бог знает что ещё.

Итак, чем больше инструментов для автоматизации есть у специалиста по данным, тем больше он может сосредоточиться на своей самой важной работе: осмыслении данных и извлечении из них ценности. Надеюсь, вам понравилась эта статья и она поможет вам быстрее обучать ваши модели. Удачного кодинга и не забывайте про промокод HABR — он дает дополнительные 10% к скидке на баннере.



image



SkillFactory
Школа Computer Science. Скидка 10% по коду HABR

Comments 8

    +4
    Вот так наоптимизирует гиперпараметры, а потом в продакшене будет работать из рук вон плохо.
    Понимать надо, что делаешь, а не полагаться на «магию черного ящика».
      +1

      Не могли бы вы обозначить что почитать про понимание гиперпараметров?

        0
        Понимать надо, что делаешь, а не полагаться на «магию черного ящика».

        А смысл тогда в подобных алгоритмах?
        Чтобы работал алгоритм с высокой точностью, надо данных побольше собрать и запустить процесс.
        Или вы параметры всех моделей вручную меняете?
          0

          Ответов я так понимаю можно не ждать после столь спорных заявлений?

          –1

          В лучших домах ЛондОна картинки принято нумеровать, чтобы можно было ссылаться, а также давать легенду, чтобы не заставлять читателя искать цвета графика в исходном коде

            0
            Во-первых, спасибо за информацию по Xgboost-AutoTune.
            Во-вторых, очень тронул следующий момент:
            «Что ж, к сожалению, многие дата-сайенс специалисты являются мастерами на все руки, их работа очень часто включает в себя поиск данных, их очистку, приём данных, выбор модели для использования, кодирование модели, написание скрипта для настройки модели, развёртывание модели, представление модели бизнесу и бог знает что ещё.»

            В моем печальном опыте еще есть следующие пункты вдобавок:
            (P.S. захотел я очень интересную задачу CV — контроль дефектов сварного шва. Ознакомиться можно по ссылке: www.facebook.com/tverVZ/posts/3681312381960965 )
            1. Составить бюджет проекта + дорожная карта
            2. Разработать мобильный стенд для съемки DataSet(у меня там специфичная камера Basler, которая никак не предназначена для мобильности), туда же найти человека на производстве, который будет ходить и собирать дату.
            3. Сделать приложение для разметки данных(семантическая сегментация), туда же найти людей на ГПХ разметку и построить весь процесс. А потом еще пришлось дособирать данные и самому размечать.
            4. Естественно, разработать и обучить нейронки(у меня там целый каскад). Никакое трансферное обучение и известные архитектуры не помогли в силу специфики задачи.
            5. Интегрироваться в закрытое ПО Metrolog X4 i-Robot + OPC + робот + лазерный трекер и 3D-сканер.
            6. Найти человека на ГПХ и проработать с ним веб-интерфейс пользовательской части. После чего все увязать в одну систему.
            7. А сейчас еще пишу программу опытной эксплуатации и параллельно дотачиваю нейронки((((

            И на это все 7 месяцев. Товарищи, это АД! Подумайте несколько раз о команде и сроках, если, вдруг, захотите себе интересный проект.
            P.S. Прошу прощения — НАКИПЕЛО
              0

              А какая у библиотеки скорость работы? Как именно библиотека выполняет поиск гиперпараметров(стандартный гридсерч или что-то поинтереснее)? Есть ли смысл пользоваться ей вместо стандартных методов поиска гиперпараметров, например, из sklearn'а(или написания своего собственного)?

                0
                В 2021 году нашли библиотеку, автор которой последний коммит внесла в этот репозиторий аж 3 года назад! Сомневаюсь, что мир Data Science всё это время стоял на месте. Пользуйтесь с осторожностью, протрите пыль для начала ;)

                Only users with full accounts can post comments. Log in, please.