Skip to content

chekrizh/talk_about_ml

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 

Repository files navigation

Что здесь происходит?

материал будет дополняться. поправки и критика приветствуются

В рамках образовательного проекта Мамкин Data Scientist был проведен опрос, на основании которого образовался ресурс, содержащий распространенные вопросы из собеседований мира Data Science.

Список постоянно обновляется, пользователи голосуют за популярные вопросы, дают свои трактовки и ответы в комментариях.

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

Вопросы для интервью по специальности Data Science

В чем отличие градиентного бустинга над деревьями от случайного леса? Какие базовые параметры настраиваются?

Оба алгоритма являются ансамблями, но реализуют разные подходы: бустинг и беггинг соотвествтенно.

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

Бустинг - подход, при котором модели обучаются последовательно.
Эта техника использует идею о том, что следующая модель будет учится на ошибках предыдущей. Они имеют неравную вероятность появления в последующих моделях, и чаще появятся те, что дают наибольшую ошибку. Обучающая выборка на каждой итерации определяется, исходя из ошибок классификации на предыдущих итерациях. Из-за того, что предсказатели обучаются на ошибках, совершенных предыдущими, требуется меньше времени для того, чтобы добраться до реального ответа. Плюсы: быстрый и точный Минусы: переобучается и не параллелится

Беггинг - подход, при котором несколько базовых моделей обучаются параллельно на различных подвыборках, при чем выборка может быть не только срезом строк, но и содержать в себе лишь некотурую часть столбцов (признаков) выбранных случайно. Результаты обучения всех моделей усредняются.
Эффективность бэггинга достигается благодаря тому, что базовые алгоритмы, обученные по различным подвыборкам, получаются достаточно различными, и их ошибки взаимно компенсируются при голосовании, а также за счёт того, что объекты-выбросы могут не попадать в некоторые обучающие подвыборки. Случайный лес - беггинг, в основе которого лежат модели деревьев решений. Плюсы: довольно точен, устойчив к выбросам Минусы: очень большой размер моделей, которые получаются в результате

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

Картинки взяты отсюда, крутая статья, рекомендую к прочтению

Как вычислить минимальный размер выборки для проведения A/B теста?

Для того чтобы понять, какой объем выборки нам нужен, нам нужно зафиксировать некоторые вещи. Во-первых, минимальный размер эффекта, который мы хотим померить. То есть для нашей метрики, насколько большие отклонения от показателя, который мы предполагаем, сохранится по умолчанию, если наши изменения вообще никак не влияют на пользователей, какой размер вот этого отклонения мы хотим замечать в эксперименте. Эта штука называется «размер эффекта». Далее, следующий показатель, который надо зафиксировать, — это допустимые вероятности ошибок первого и второго рода.

В A/B-тестах, как правило, мы проверяем гипотезы о том, что никакие наши примененные изменения не повлияли на пользователей вообще никак, и проверяем ее против альтернативы, что как-то повлияли. Ошибкой первого рода в этой ситуации будет отвержение неверной нулевой гипотезы, то есть принятие не влияющих на самом деле на пользователей изменений. Ошибка второго рода — это, наоборот, отклонение действительно хороших и влияющих на пользователей изменений. Вот мы должны, для того чтобы рассчитать необходимый объем выборки, зафиксировать допустимые вероятности ошибок первого и второго рода. В статистике, как правило, используется вероятность ошибки первого рода — 0,05, а вероятность ошибка второго рода — 0,2. В вашем конкретном эксперименте стоимости ошибок первого и второго рода могут быть какими-то существенно разными, поэтому часто может оказаться выгодно вручную выбрать эти пороги на вероятности ошибок первого и второго рода. Наконец, когда вы зафиксировали размер эффекта и допустимой вероятности ошибок, вы можете поступить следующим образом: вы берете название метода, который вы планируете использовать для сравнения ваших контрольных групп и экспериментальных групп, например Z-критерий или T-критерий, и вы используете калькулятор мощности этого критерия. Вообще, для всех статистических критериев между собой связаны сложными взаимосвязями несколько величин: тип альтернативы, размер эффекта, размер выборки и допустимые вероятности ошибок первого и второго рода. Если вы какие-то из этих величин фиксируете, вы можете рассчитать оставшиеся. То есть если вы фиксируете конкретный критерий и фиксируете конкретный тип альтернативы, вероятности ошибок первого и второго рода и минимальный интересующий вас размер эффекта, вы можете вычислить объем выборки, который для этого нужен. Для того чтобы это сделать, нужно использовать калькулятор мощности. Вы просто гуглите его, и для каждого конкретного критерия вы легко найдете десятки различных реализаций, в том числе не требующих никакого знания программирования.

Как объяснить бизнесу, что значат ошибки I и II рода?

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

Ошибку второго рода иногда называют пропуском события или ложноотрицательным срабатыванием — человек болен, но анализ крови этого не показал, или у пассажира имеется холодное оружие, но рамка металлодетектора его не обнаружила (например, из-за того, что чувствительность рамки отрегулирована на обнаружение только очень массивных металлических предметов).

Какой функционал оптимизируется в задаче линейной регрессии? Как записать это в векторной записи?

Осторожно! Баян!

Напомню, что линейная регрессия - это метод восстановления зависимости между двумя переменными. Её оптимизация сводится к максимизации прадоподобия, что эквивалентно минимизации среднеквадратичной ошибки (MSE), которая широко используется в реальных задачах.

Виды метрик машинного обучения?

(я так понимаю речь идет о метриках качества)

За шпорами сюда и сюда

Классификация:

  • accuracy
  • precision
  • recall
  • F-measure
  • AUC-ROC и AUC-PR
  • Logistic Loss (Данная метрика нечасто выступает в бизнес-требованиях, но часто — в задачах на kaggle. Крутая статья )

Регрессия

  • MSE
  • R2 (Коэффициент детерминации)
  • MAE
  • Квантильная ошибка (нормальных мануалов не нашел, в двух словах - сильнее штрафует за недопрогноз, чем за перепрогноз)

Кластеризация (почитать можно тут)

  • Adjusted Rand Index (ARI)
  • Adjusted Mutual Information (AMI)
  • Homogenity
  • Completeness
  • V-measure
  • Silhouette

Как объяснить бизнесу метрику машинного обучения?

Больше графиков, красивая диграмма, три раза сказать "business value", можно подключать мимику.

На этот вопрос нет истинно верного ответа, я хотел написать о использовании интерпретируемых моделей, где на язык бизнеса можно перенести веса признаков в сетях/линейных алгоритмах или feature importance моделей на базе деревьев решений. Или упомянуть о силе аллегорий.. но не уверен, что таким вещам тут место. Но раз уж есть мемасик, то вопрос определенно стоит включить.

Mean/median/mode — что это?

(Рекомендую к прочтению книгу В. Савельева "Статистика и котики")

Mean - среднее значение, полученное путем деления суммы элементов на их количество.
Median - медиана это число в середине выборки чисел: половина данных находится ниже этого значения, а половина выше.
Mode - мода, соответствующая значению, которое встречается чаще всего.

Что такое интерквантили?

Интерквартиль (IQR - одна из мер разброса или рассеяния данных. Он равен разности между верхним и нижним (первым и третьим) квартилями. Другими словами IQR - это ширина интервала, содержащего средние 50% выборки. Таким образом, чем меньше IQR, тем меньше рассеяние. Положительной чертой этого показателя является его устойчивость (робастность), т.е. на него слабо влияют выбросы.

Что такое boxplot?

boxplot, ящик с усами, диаграмма размаха — график, использующийся в описательной статистике, компактно изображающий одномерное распределение вероятностей. (прим. часто помогает визуально определить выбросы)

Выглядит следующим образом:

Что такое скользящее среднее?

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

Простое скользящее среднее - арифметическое среднее за заданный период.
Рассмотрим на примере количества коммитов в гитхаб. 5-ти дневное среднее скользящее на сегодня высчитывается путем прибавления пяти количеств коммитов за предыдущие дни (т.е. сегодняшнее плюс четыре прошлых) и разделением их на 5. Т.е. если статистика была такой: 9, 8, 8, 9, 10, то простое среднее скользящее будет равно (9+8+8+9+10)/5=8,8. Следовательно, если я сегодня сделал 10 коммитов, среднее скользящее числа коммитов в день будет равно 8,8.

Экспоненциальное среднее скользящее - считает более поздние данные более важными, за счет чего более быстро реагирует на изменения. Просчет значения экспоненциального среднего скользящего более сложный: вычисление значения 5-ти дневного экспоненциального среднего скользящего на сегодня производится по следующей формуле: EMA[k, n] = EMA[k-1, n]+(2/(n+1))·(P-EMA[k-1, n]), где

  • EMA[k, n] — экспоненциальное скользящее среднее периода n на момент k
  • P — текущая цена

(*прости, друг, тут вроде нельзя использовать Latex для формул. Когда-нибудь я перепишу их красиво, но это не точно)

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

Взвешенное скользящее среднее, как и экспоненциальное, тоже придает более поздним данным больше «веса», но оно делает это более выражено и проще. При просчете 5-ти дневного взвешенного скользящего среднего, мы придаем сегодняшнему количеству коммитов пятикратный вес, вчерашнему — четырехкратный, позавчерашнему — трехкратный и т.д., а потом делим сумму всех произведений на сумму добавленного веса. Т.е. (1·8+2·8+3·9+4·10+5·11)/(1+2+3+4+5) = 146/15 = 9,73.
Формула расчета проста: каждое значение, входящее в просчет взвешенного скользящего среднего, необходимо умножить на его порядковый номер, а потом разделить всю эту сумму на сумму порядковых номеров.

Объяснить, что такое ROC/AUC

ROC/AUC - это метрика, позволяющая оценить качество бинарной классификации,более информативная, нежели accuracy и показывающая, как часто мы ошибаемся и как мы ошибаемся. Задача бинарной классификации подразумевает два возможных класса, 0 и 1.

Например, мы хотим понять, будет ли в какой-то день дождь (класс 1) или нет (класс 0). И ошибиться мы можем двумя способами: * сказать что дождя не будет, а он пойдет (False Negative/ложнонегативное предсказание) * сказать что дождь пойдет, а его не будет (False Positive/ложнопозитивное предсказание) Если мы сказали что дождь пошел и угадали - это True Positive/ верноположительное предсказание.

Roc-кривая - это график зависимости True Positive от False Positive, а roc_auc - площадь под этой кривой. (между синеньким и зелененьким)

Что такое F-score и зачем его используют?

Посмотри предыдущий вопрос, про roc_auc, где описано что такое False Negative и False Positive.

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

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

Например тебе нужно определить порок сердца у человека. Тут лучше лишний раз допустить False Positive, и предположить болезнь у здорового человека, нежели упустить больного и не заметить ее. Метрика, которую мы бы максимизировали в этом случае называется recall.

Если мы пытаемся как можно реже делать ложноположительные предсказания - (например это слишком дорого, как если мы ищем где копать нефть) - то мы максимизируем метрику precision.

F-мера же представляет собой гармоническое среднее между precision и recall. Она стремится к нулю, если любой из этих параметров стремится к нулю. Эту метрику мы хотим видеть высокой если нам важен баланс.

Что значит AUC <0.5? Что с ним делать?

В случае бинарной классификации (когда у нас есть только два класса), AUC — эквивалентна вероятности, что классификатор присвоит большее значение классу 1, чем классу 0, а если AUC < 0.5, то можно просто перевернуть выдаваемые значения классификатором потому, что у тебя противоположная ситуация.

About

🔨 Сборник ответов на распространенные вопросы из собеседований по Data Science

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published