3 задачи по ML, чтобы подготовиться к собеседованию на Junior Data Scientist
Спрос на дата-сайентистов продолжает расти — чтобы начинающему специалисту успешно выполнить тестовое задание, хорошо бы накануне попрактиковаться в решении задач. Елена Кантонистова, кандидат физико-математических наук, академический руководитель магистерской программы «Машинное обучение и высоконагруженные системы» факультета компьютерных наук НИУ ВШЭ и одна из авторов хендбука «Академии Яндекса» по машинному обучению, разобрала упражения, которые наиболее часто встречаются в тестовых заданиях на должность Junior Data Scientist.
Инструкция перед чтением задач
Приведенные задачи проверяют знание основных подходов и алгоритмов машинного обучения. Они сконструированы так, чтобы ответ можно было дать и в развернутой, и в свободной форме, а собеседующий мог оценить не только знания, но и логику рассуждений кандидата на позицию.
При чтении рекомендую вначале решать задачу самостоятельно, а затем уже сверяться с тем, как это сделала я.
Задача про градиентный спуск
С помощью градиентного спуска, как известно, можно обучать различные модели машинного обучения. Верно ли, что классический градиентный спуск всегда найдет глобальный минимум функции потерь и выдаст оптимальные параметры?
Ответ: нет, неверно.
Решение
Посмотрим на формулу градиентного спуска ,
где:
— векторы весов модели на
шагах соответственно,
— градиент функции потерь на k-м шаге,
- а
— величина градиентного шага.
По основному свойству градиента с каждым следующим шагом метода мы будем двигаться все ближе и ближе к минимуму функции потерь Q, что хорошо. Но нет гарантии, что мы придем именно в глобальный минимум, а не застрянем в локальном.
Кроме того, градиентный спуск будет испытывать трудности в точках перегиба функции, ведь в них градиент тоже равен нулю, и метод может остановиться вблизи этой точки.
Читайте по теме: AI Heroes: лучшие кейсы от экспертов Data Science
Еще одна причина неудачи метода — неверный выбор градиентного шага .
Например, при очень маленьком градиентном шаге метод будет идти в сторону минимума слишком медленно и остановится просто из-за ограничения на число итераций, не дойдя до него. А при слишком большом градиентном шаге метод может не попасть в минимум и «прыгать» вокруг него до тех пор, пока не остановится из-за ограничения на число итераций. Иногда метод при большом градиентном шаге может даже разойтись.
В классическом машинном обучении мы почти не сталкиваемся с описанными проблемами, но вот в Deep Learning этих проблем достаточно. Для их решения придумано множество модификаций градиентного спуска.
Задача про метрики
Пусть мы обучили логистическую регрессию и метод опорных векторов для решения задачи бинарной классификации, предсказали классы с помощью моделей на тестовых данных и измерили f1-score. Оказалось, что значение метрики у логистической регрессии на 0,1 выше, чем у метода опорных векторов.
Означает ли это, что логистическая регрессия лучше решает задачу?
Ответ: нет, не означает.
Решение
Метрика f1-score зависит от порога, по которому мы переводим предсказанные моделью «вероятности» в классы. По умолчанию порог для перевода равен 0,5: то есть если уверенность модели в положительном классе составляет 0,5 или больше, мы относим объект к положительному классу, а иначе — к отрицательному.
При увеличении порога точность (precision) растет, а полнота (recall) падает, и наоборот. Метрика f1-score нелинейно зависит от точности и полноты и вычисляется по формуле:
Поэтому она будет изменяться при изменении порога.
В условии мы измерили значение метрики на исходных классах, то есть использовали порог по умолчанию 0,5. Он мог быть не оптимальным как для логистической регрессии, так и для метода опорных векторов.
Чтобы узнать, какая из моделей лучше работает в конкретном случае с точки зрения метрики f1, необходимо для каждой из моделей подобрать свой оптимальный порог и вычислить для него значение f1. Тогда мы сможем сказать, какая модель лучше.
Читайте также: Как работает современный Data Scientist. Почему 80% работы улетает в корзину?
Задача про градиентный бустинг
Градиентный бустинг — один из самых мощных алгоритмов классического машинного обучения. Приведите пример, когда градиентный бустинг в задаче регрессии будет работать хуже линейной регрессии.
Решение
Представим себе, что данные имеют линейную зависимость и получилось так, что тренировочные данные (синие точки) находятся в одной части этой прямой, а тестовые данные (красные точки) — в другой части.
Тогда линейная регрессия проведет через тренировочные данные прямую, которая хорошо аппроксимирует и тестовые данные.
При этом бустинг подстроится исключительно под синие точки, а на границе тренировочной области поведет себя произвольно. Поэтому красные точки (тестовые) будут предсказываться с большой ошибкой.
Читайте по теме: Все о профессии дата-сайентиста: от ключевых навыков до тонкостей трудоустройства
Это простой пример.
Довольно часто такого не происходит в реальной жизни, потому что обычно мы предполагаем, что новые данные приходят из той же области, что и старые. Но этот пример хорошо показывает, что бустинг не подходит для экстраполяции функций, то есть для прогнозов на новой области определения (которой не было в тренировочных данных).
Такие задачи подобраны исходя из требований, которые обычно предъявляют к кандидатам на позицию Junior Data Scientist. Если после их решения захочется попробовать что-то посложнее, дополнительно можно почитать теоретические материалы и потренироваться в хендбуках.
А еще можете посмотреть курсы в каталоге образовательных программ на нашем сайте
Иллюстрации предоставлены автором
Фото на обложке сгенерировано нейросетью Midjourney
Нашли опечатку? Выделите текст и нажмите Ctrl + Enter
Популярное
Материалы по теме
-
Пройти курс «Как открыть кофейню»
- 1 Топ-7 идей Data Science проектов — пет-проекты и примеры анализа данных Полезные проекты на каждый день 03 марта 18:55
- 2 Анализ клиентов и построение риск-моделей в банкинге На что опираются банки, предлагая условия по кредитованию 26 октября 20:02
- 3 Названы IT-профессии, на которые в России активно ищут новичков В самом начале карьеры они могут получать от 140 тысяч рублей и выше 04 августа 08:30
- 4 Фокус на компанию. 6 советов дата-аналитику для работы с бизнесом «Дата-аналитикам не нужно опровергать или подтверждать все гипотезы» 27 сентября 15:56