🎲 40 вопросов по статистике с собеседований на должность Data Scientist

🎲 40 вопросов по статистике с собеседований на должность Data Scientist Аналитика

Что спрашивают на собеседовании

Цель собеседования по Data Science, как и везде, – понять, насколько хорошо человек разбирается в своей предметной области. Сначала интервьюер задает вопросы по основам машинного обучения и статистики. По ответам можно понять глубину и ширину знаний кандидата по базовым вопросам.

После этого задают специфические вопросы, например, по обработке естественного языка, работе с временными рядами или рекомендательными системами. Если кандидат говорит, что умеет работать с графами, изображениями или другими данными, его спросят и об этом.

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

Вот какие вопросы могут задать на собеседовании:

• Нейросети

— Какие методы предотвращения переобучения (регуляризации) для нейронных сетей вы знаете? Как они работают? Куда вставлять batch normalization?

— Чем отличается нейронная сеть с одним выходом и сигмоидальной функции активации и такая же нейронная сеть, но с двумя выходами и softmax?

— Представим, что у нас есть многослойная полносвязанная сеть с нелинейной функцией активации. Что будет с нейронной сетью, если мы уберём нелинейность?

— Для чего используют global pooling?

• Распознавание изображений

— Как оценивают качество в задачах object detection? — Какие архитектуры нейронных сетей для семантической сегментации вы знаете? — Как и зачем использовать transfer learning?

• Временные ряды

— Как правильно тестировать качество моделей в работе с временными рядами? — Что мы должны делать с сезонностью в данных? — Как искать аномалии во временных рядах?

• Обработка естественного языка

— Что лежит в основе моделирования тематик? Как работает этот алгоритм? Как вы выберете число тематик, которые будут обучаться этим алгоритмом?

— У вас есть текст отзывов и рейтинг, пользователи используют 5-балльную шкалу. Как бы вы построили систему, которая сможет предсказывать оценку по тексту отзыва? Как оценивать качество этой системы?

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

«Что вы будете делать, если дата-сет несбалансированный?»«Как вы будете решать проблему, если есть пропуски в данных?»«Как поступите, если будут выбросы в данных?»

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

№ 1. гистограммы

Контекст:

Допустим, у нас есть таблица

sessions

, где каждая строка представляет собой сеанс потоковой передачи видео с длиной в секундах:

| session_id | length_seconds |
|------------|----------------|
| 1          | 23             |
| 2          | 453            |
| 3          | 27             |
| ..         | ..             |

Задача:

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

| bucket  | count |
|---------|-------|
| 20-25   | 2     |
| 450-455 | 1     |


Максимальная оценка засчитывается за надлежащие метки строк (“5-10” и т. д.)

Решение:

WITH bin_label AS 
(SELECT 
    session_id, 
    FLOOR(length_seconds/5) as bin_label 
 FROM
    sessions 
 )
 SELECT 
    CONCATENTATE(STR(bin_label*5), '-', STR(bin_label*5 5)) bucket, 
    COUNT(DISTINCT session_id) count 
 GROUP BY 
    bin_label
 ORDER BY 
    bin_label ASC 

№ 1. найти идентификатор с максимальным значением

Контекст:

Допустим, у нас есть таблица

salaries

с данными об отделах и зарплате сотрудников в следующем формате:

  depname  | empno | salary |     
----------- ------- -------- 
 develop   |    11 |   5200 | 
 develop   |     7 |   4200 | 
 develop   |     9 |   4500 | 
 develop   |     8 |   6000 | 
 develop   |    10 |   5200 | 
 personnel |     5 |   3500 | 
 personnel |     2 |   3900 | 
 sales     |     3 |   4800 | 
 sales     |     1 |   5000 | 
 sales     |     4 |   4800 |

Задача

: написать запрос, чтобы получить

empno

с самой высокой зарплатой. Убедитесь, что ваше решение обрабатывает случаи одинаковых зарплатами!

Решение:

WITH max_salary AS (
    SELECT 
        MAX(salary) max_salary
    FROM 
        salaries
    )
SELECT 
    s.empno
FROM 
    salaries s
JOIN 
    max_salary ms ON s.salary = ms.max_salary

Альтернативное решение с использованием

RANK()

WITH sal_rank AS 
  (SELECT 
    empno, 
    RANK() OVER(ORDER BY salary DESC) rnk
  FROM 
    salaries)
SELECT 
  empno
FROM
  sal_rank
WHERE 
  rnk = 1;

№ 2. маркировка древовидной структуры

Контекст:

предположим, у вас есть таблица

tree

с двумя столбцами: в первом указаны узлы, а во втором — родительские узлы.

node   parent
1       2
2       5
3       5
4       3
5       NULL 

Задача:

написать SQL таким образом, чтобы мы обозначили каждый узел как внутренний (inner), корневой (root) или конечный узел/лист (leaf), так что для вышеперечисленных значений получится следующее:

node    label  
1       Leaf
2       Inner
3       Inner
4       Leaf
5       Root

(Примечание: более подробно о терминологии древовидной структуры данных можно почитать

. Однако для решения этой проблемы она не нужна!)

Решение:Благодарность: это более обобщённое решение предложил Фабиан Хофман 2 мая 2020 года. Спасибо, Фабиан!

WITH join_table AS
(
    SELECT 
        cur.node, 
        cur.parent, 
        COUNT(next.node) AS num_children
    FROM 
        tree cur
    LEFT JOIN 
        tree next ON (next.parent = cur.node)
    GROUP BY 
        cur.node, 
        cur.parent
)

SELECT
    node,
    CASE
        WHEN parent IS NULL THEN "Root"
        WHEN num_children = 0 THEN "Leaf"
        ELSE "Inner"
    END AS label
FROM 
    join_table 

Альтернативное решение, без явных соединений:

Благодарность: Уильям Чарджин 2 мая 2020 года обратил внимание на необходимость условия WHERE parent IS NOT NULL, чтобы это решение возвращало Leaf вместо NULL. Спасибо, Уильям!

SELECT 
    node,
    CASE 
        WHEN parent IS NULL THEN 'Root'
        WHEN node NOT IN 
            (SELECT parent FROM tree WHERE parent IS NOT NULL) THEN 'Leaf'
        WHEN node IN (SELECT parent FROM tree) AND parent IS NOT NULL THEN 'Inner'
    END AS label 
 from 
    tree

Бизнес аналитика

image

  • Устраняйте двусмысленные требования на самых ранних этапах

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

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

Кейс из практики: месяц разработки был потрачен на функционал переноса списка активностей из объекта №1 в объект №2. На этапе приемочного тестирования обнаружилось, что заказчик ожидал совершенно иной функционал — копирование, а не перенос активностей. В процессе переделывания функционала и детализации двусмысленности IT-команда, во-первых, договорилась с заказчиком о MVP, а, во-вторых, о необходимости работы с корнем бизнес-проблемы. Было выдвинуто предположение, что сам функционал копирования требуется только лишь по причине недостаточно качественно реализованного функционала подгрузки шаблонов активностей.

  • Не бойтесь уточнять у заказчика о целях требования

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

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


Записывайте цели вместе с заказчиком, чтобы абсолютно все участники процесса в любой момент времени понимали, зачем они выполняют свою работу.

  • Требуйте у заказчика своего присутствия на бизнес-встречах

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

Во время очной встречи руководителя подразделения с подчиненным, где мы — аналитик и UX-дизайнер — сидели «в фоне», выявился целый ряд требований, который не проявлялся в течение целого года работы команды. Мы обращали внимание на все детали: ручные записи руководителя и сотрудника, на стикеры, на пометки в windows-блокноте, на действия внутри системы. По итогу такой встречи бэклог был существенно дополнен, а мы приступили к глубокой переделке реализованного в системе функционала.

  • Старайтесь достигать соглашения и не формировать отписки

Больше советов по анализу бизнес-аналитиков

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

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

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

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

Вопросы для интервью с бизнес-аналитиками

  • Сколько вы занимались бизнесом? Каково было ваше участие?
  • Расскажите мне о времени, когда вы создали долгосрочные планы у предыдущего работодателя.
  • Как вы определяете, какие средства бизнес-аналитики (BI) использовать? С чем вы работали?
  • Если две компании объединяются, объясните, какие задачи вы бы выполнили для успешного слияния, и как вы будете выполнять эти задачи.
  • Объясните шаги, которые необходимо предпринять для создания прецедентов при работе с конкретными требованиями к документу.
  • Расскажите мне о времени, когда вам приходилось работать с трудными заинтересованными сторонами и как вы его обрабатывали.
  • Опишите три разных типа диаграмм, которые чаще всего используют бизнес-аналитики.
  • Определить и описать разницу между основным потоком, потоком исключений и альтернативным потоком в случаях использования.
  • Расскажите, как вы обычно подходите к проекту.
  • Как вы справлялись с заинтересованными сторонами, которые были трудными?
  • Можете ли вы определить диаграммы, которые используют бизнес-аналитики?
  • Почему, по-вашему, важны блок-схемы?
  • Где вы видите роль бизнес-аналитика в организации?
  • Какова ваша стратегия вызывания требований?

Системная аналитика

image

  • При постановке задачи на front и back старайтесь описывать sequence диаграммы
Дополнительный анализ:  Бизнес-аналитик: обучение и обязанности на работе, зарплата аналитиков бизнес-процессов, востребованность профессии. Где учиться и какие предметы сдавать?

Или, по-русски, диаграммы последовательности. Диаграммы окажутся полезными даже не с точки зрения разработки, но с точки зрения верификации собственных требований. Очень часто при описании потока сообщений я выявлял «дыры» в собственном процессе. Например, неактуальный API.

Для быстрого «рисования» sequence диаграмм используйте плагин PlantUML для Confluence. Мне показалось, что быстрее набирать код, нежели ручками корректировать расположение блоков и стрелок. Но у каждого в этой части свой опыт и свои предпочтения.

С точки зрения анализа

позволит вам закрывать ваши же дыры в требованиях. Где-то упустили атрибут, где-то забыли создать задачу в JIRA для доработки базы данных. Не пытайтесь зазубрить синтаксис Сваггера, а создайте шаблоны под разные типы API (справочники, фильтры и так далее), чтобы упростить себе жизнь в будущем.

  • Активно используйте инструмент разработчика в целевом браузере, чтобы анализировать запросы клиента и ответы от сервера

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

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


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

Этот подход позволил нашей команде выводить достаточно хитрые доработки в пром в рамках спринтов без задержек.

Список литературы

Всем, кто хочет заниматься Data Science, советуем посмотреть/прочитать:

• Курс «Программирование на Python» на Stepik• Курс «Введение в машинное обучение» на Coursera• Курс «Машинное обучение и анализ данных» на Coursera• Курс «Машинное обучение» Константина Воронцова • Курсы по deep learning на Coursera• Курс «Нейронные сети» на Stepik• Книга Deep Learning Book• Книга «Глубокое обучение: погружение в мир нейронных сетей» – первая книга о глубоком обучении на русском языке • Книга по NLP Speech and Language Processing• Книга по информационному поиску и NLP «Introduction to Information Retrieval»• Статьи на opendatascience• Курс «Алгоритмы и структуры данных» Максима Бабенко

Типичные ошибки на собеседованиях

Кандидат не понимает, как работают алгоритмы, которые он использовал

Интервьюеры всегда спрашивают об алгоритмах, которые использовали кандидаты: какие параметры в них есть, как их настроить. Если ответа нет, или кандидат отвечает, что настроил алгоритм «по наитию» – это плохо. Если вы берете алгоритм, стоит потратить время, чтобы понять, как его настроить.

https://www.youtube.com/watch?v=Puw1iameyJw

• Кандидат не понимает, как применять свои знания в «боевых условиях»Бывает так: кандидат хорошо знает теорию, но не представляет, как справляться с проблемами на проектах. Важно не только уметь находить инсайты в данных, делать фича-инжинеринг, строить модели, но и понимать, как поместить все это в продакшен или сделать решение, которое будет работать быстрее.

• Кандидат не может рассуждать самостоятельноЕсли человек слишком часто отвечает на вопрос: «Я погуглю» – это нехороший знак. Конечно, дата-сайентисты гуглят, но уметь рассуждать самостоятельно тоже важно: иногда встречаются проблемы, для которых нет готового решения, и нужно придумывать что-то свое.

• Кандидат выдумывает, как работает системаИногда люди не могут ответить на вопрос, как работает та или иная система, и начинают придумывать, надеясь попасть пальцем в небо. Так делать не рекомендуется: интервьюер это заметит. Лучше честно сказать:

Часть 1. подача заявки и я.контест

После прохождения десятка курсов на степике, я понял, что хочется применить этот опыт где-то и решил подать заявку на стажировку в Яндекс на позицию стажёра по направлению “Аналитик данных”. Зашёл на сайт, заполнил анкету, через час получил ссылку на тестовое задание в Яндекс Контест. Увидел, что даётся 6 часов на решение задач и принял решение выделить утро субботы на прохождение теста.

UPD: условия задач удалены по просьбе

Тест оказался не очень сложным, было 6 задач. 2 из них на математическую статистику (задачи A и B), 2 стандартные задачи на Питоне (C и D), 1 задача на базовые знание библиотеки Pandas (E) и задача на логику и аналитическое мышление.С последними двумя задачами я справился за полчаса, с первой задачей по матстату ещё минут за 10, на вторую задачу было потрачено 20 минут, и осталось целых 5 часов на 2 задачи на питоне.

На каждую я потратил минут по 30, но в одной задаче не прошёл несколько тестов (скорее всего, условие мною было проинтерпретировано неверно), а в другой выдавал memory limit. В итоге, оптимизировать код и дорешать задачи до конца не вышло. Ещё раз проверил 4 прошлые задачи и отправил решения.

Часть 2. первое интервью

Интересный момент, что получилось провести интервью только через неделю, тк то у меня не получалось, то интервьюера. Мы созвонились в зуме, он представился, сказал, что возглавляет отдел аналитики Яндекс.Маркета, начал общение сразу на “ты”, позднее мне рекрутер сказал, что в Яндексе так принято.

Интервьюер, назовём его Сергей, рассказал как будет устроено интервью: 10 минут я должен рассказать о себе, потом ТЗ (задача на питоне) и задачи на теорвер.Я вкратце рассказал о себе, своем проекте про алгоритмы кластеризации, которым я занимаюсь в институте.

Он позадавал пару стандартных вопросов из разряда: “Почему Яндекс?”, “Какие качества мне стоит развивать?”, “Что было моим успехом?” .Далее была ТЗ: вывести список уникальных слов, считываемых из файла. Я код написал, в целом, ему важна была идея и знания синтаксиса. Всё подводные камни я разгадал у этой задачи, но не сразу. Вот сами камни:

  1. Если файл пустой

  2. Английский и русский язык (что будет?)

  3. Отделение знаков препинания

  4. Первые слова в предложении

Сергей сказал (в конце интервью), что я с задачей справился и что были ребята, которые не до всех пунктов могли додуматься(я был польщён). Далее были задачи по теорверу:

  1. Бросаем монетку 10 раз. Какова вероятность, что выпадет 10 орлов? [(1/2)^10] 

  2. Бросаем монетку 10 раз. Какова вероятность, что выпадет 9 орлов? [10*(1/2)^10]

  3. В ящике есть 4 вида носков. Носков бесконечно много. Сколько нужно изьятий, чтобы получить пару? [5]

Далее, задача на математику: “У Аркадия много жён. У него есть коллекция кактусов, которые он решил раздать всем жёнам. Первой жёне отдал 1000 кактусов и 10% от остатка. Второй жене 2000 кактусов и 10% от остатка. И так далее… Каждая жена получила поровну.

Сколько жён у Аркадия?Ход решения я тоже рассказал. Чтобы не ждать, пока я посчитаю, он мне сказал, сколько всего было кактусов и я дал ответ. [81000 всего кактусов, 9000 каждой жене]. Последней была задачка на проверку аналитических способностей:20 детям в детском садике задали вопрос: живут ли их родители вместе?

На что 2 ребёнка ответили, что не живут. На следующий день в местной газете выходит статья с заголовком: “10% семей в нашем городе в разводе”. Почему данное утверждение неверно? Всего есть 6 ключевых пунктов, до 2х последних я, к сожалению, не додумался:

  1. Дети могут быть из одной семьи

  2. Разный возраст детей, и, соответственно, разные группы, то-то более осознанный, кто-то ещё не понимает вопроса.

  3. Месторасположение садика, может выборка была только в благополучном/неблагополучном районе.

  4. У ребёнка может быть один родитель или у ребёнка может быть мачеха/отчим, отсюда неверные результаты.

  5. Дети врут.

  6. Есть семьи, где дети не ходят в садик.

После этой задачи Сергей рассказал мне как я в целом отвечал и рассказал, чем занимается отдел аналитики.У них есть 2 типа задач:

  1. Визуализация данных, представление менеджерам отчётов, в частности, работа в Tableau, то есть создание дашбордов.

  2. Прогонка данных из одного сервиса в другой

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

После интервью создалось приятное впечатление о интервьюере и о возможных задачах и в целом от общения.

🎲 40 вопросов по статистике с собеседований на должность data scientist

Каждый Data Scientist знает, что фундаментальные знания статистики необходимы для успеха в его профессии. Поэтому мы прошерстили Интернет и нашли сорок вопросов по статистике, задаваемых аналитикам данных на собеседовании.

1. Как оценить статистическую значимость анализа?

Для оценки статистической значимости нужно провести проверку гипотезы. Сначала определяют нулевую и альтернативную гипотезы. Затем рассчитывают p – вероятность получения наблюдаемых результатов, если нулевая гипотеза верна. Наконец, устанавливают уровень значимостиalpha. Если p < alpha, нулевая гипотеза отвергается – иными словами, анализ является статистически значимым.

2. Приведите три примера распределений с длинным хвостом. Почему они важны в задачах классификации и регрессии?

Пример распределения с «длинным хвостом»
Пример распределения с «длинным хвостом»

Три практических примера: степенной закон, закон Парето и продажи продуктов (например, продукты-бестселлеры против обычных).

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

3. Что такое центральная предельная теорема, и почему она важна?

🎲 40 вопросов по статистике с собеседований на должность Data Scientist

Центральная предельная теорема (ЦПТ) говорит о том, что сумма достаточно большого количества слабо зависимых случайных величин с примерно одинаковыми масштабами имеет распределение, близкое к нормальному.

Центральная предельная теорема важна, поскольку она используется при проверке гипотез и расчете доверительных интервалов.

4. Что такое статистическая мощность?

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

5. Что такое ошибка отбора (в отношении данных), и почему она важна? Как предварительная обработка данных может ухудшить ситуацию?

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

Существуют следующие виды ошибок отбора:

  • ошибка выборки: выборка, полученная не в результате случайного отбора.
  • интервал времени: выбор особого интервала времени, поддерживающего желаемый вывод – например, исследование продаж перед Рождеством.
  • воздействие: включает клиническую уязвимость, протопатическую ошибку и ошибку показателей (подробнее см. здесь).
  • ошибка данных: выборочное представление фактов, избирательный подход, выборочное цитирование.
  • ошибка истощения: включает «ошибку выжившего», когда в анализ включаются только те, кто «пережил» длительный процесс и «ошибку неудачников», когда в анализ включаются только те, кто потерпел неудачу.

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

6. Дайте простой пример того, как постановка экспериментов может помочь ответить на вопрос о поведении. Как экспериментальные данные контрастируют с данными наблюдений?

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

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

Дополнительный анализ:  Новости и аналитика отрасли добычи нерудных материалов
🎲 40 вопросов по статистике с собеседований на должность Data Scientist

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

7. Является ли подстановка средних значений вместо пропусков допустимым? Почему?

Подстановка средних значений – это метод замены пропусков в наборе данных средними значениями соответствующих признаков.

Как правило, подстановка средних значений – плохой метод, поскольку он не принимает во внимание корреляцию между признаками.

Например, у нас есть таблица с данными о возрасте и уровне физической формы, и для 80-летнего человека уровень физической формы пропущен. Если мы возьмем средний уровень физической формы для всех возрастов от 15 до 80 лет, очевидно, что наш 80-летний получит более высокий уровень, чем имеет на самом деле.

Кроме того, подстановка средних значений уменьшает дисперсию данных и повышает уровень ошибок. Это приводит к менее точной модели и более узким доверительным интервалам.

8. Что такое выброс и внутренняя ошибка? Объясните, как их обнаружить, и что бы вы делали, если нашли их в наборе данных?

Выброс (англ. outlier) – это значение в данных, существенно отличающееся от прочих наблюдений.

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

1) Z-оценка/стандартные отклонения: если мы знаем, что 99.7% данных в наборе лежат в пределах тройного стандартного отклонения, мы можем найти элементы данных, выходящие за эти пределы. Точно так же, мы можем рассчитать z-оценку каждого элемента, и если она равна /- 3, это выброс.

🎲 40 вопросов по статистике с собеседований на должность Data Scientist

2) Межквартильное расстояние (Inter-Quartile Range, IQR) – концепция, положенная в основу ящиков с усами (box plots), которую также можно использовать для нахождения выбросов. МКР – это расстояние между 3-м и 1-м квартилями. После его расчета можно считать значение выбросом, если оно меньше Q1-1.5*IQR или больше Q3 1.5*IQR. Это составляет примерно 2.7 стандартных отклонений.

🎲 40 вопросов по статистике с собеседований на должность Data Scientist

Другие методы включают кластеризацию DBScan, Лес Изоляции и устойчивый случайно-обрубленный лес.

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

9. Как вы обрабатываете пропуски? Какие методы подстановки вы рекомендуете?

Существует несколько способов обработки пропущенных данных:

  • удаление строк с пропущенными данными;
  • подстановка среднего значения, медианы или моды;
  • присваивание уникального значения;
  • предсказание пропущенных значений;
  • использование алгоритма, допускающего пропуски – например, случайный лес.

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

10. Есть данные о длительности звонков в колл-центр. Разработайте план кодирования и анализа этих данных. Приведите пример, как может выглядеть распределение этих данных. Как бы вы могли проверить, хотя бы графически, подтверждаются ли ваши ожидания?

Чтобы очистить, исследовать и представить данные, я бы провел EDA – Exploratory Data Analysis (разведочный анализ данных). В процессе EDA я бы построил гистограмму длительности звонков, чтобы увидеть их распределение.

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

Пример логнормального распределения
Пример логнормального распределения

Чтобы подтвердить, распределена длительность звонков логнормально или нет, мы могли бы использовать график КК (QQPlot).

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

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

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

12. Вы составляете отчет по объему загруженного пользователями контента, и обнаруживаете пик загрузок в октябре – причем это пик загрузки изображений. Что могло послужить причиной этого, и как бы вы проверили свою догадку?

Есть несколько потенциальных причин пика загрузки изображений.

  1. В октябре могла появиться новая возможность, завоевавшая популярность пользователей. Например, возможность создания фотоальбомов.
  2. Возможно, до октября процесс загрузки изображений не был понятен пользователям, но именно в октябре это изменилось.
  3. В социальных сетях могло появиться вирусное движение, включающее загрузку фотографий, которое продолжалось весь октябрь.
  4. Возможно, люди публиковали свои фотографии в костюмах для Хэллоуина.

Метод проверки зависит от причины пика, но для тестирования правильности догадки используется проверка гипотез.

13. Вы летите в Казань, и хотите решить, стоит ли брать зонт. Вы звоните трем случайным казанцам и спрашиваете, идет ли дождь. Каждый из них говорит правду с вероятностью 2/3, а с вероятностью 1/3 обманывает вас. Все трое говорят, что дождь идет. Какова вероятность, что он идет на самом деле?

Поскольку последнее предложение фактически спрашивает: «какова вероятность A при условии, что верно B?», можно сразу сказать, что здесь нужна теорема Байеса. Нам потребуется информация о вероятности дождя в Казани в произвольный день, не связанный с полетом Допустим, она равна 25%.

P(A) = вероятность дождя = 25%

P(B) = вероятность, что все три казанца говорят, что идет дождь.

P(A|B) = вероятность дождя, при условии, что все трое говорят, что он идет.

P(B|A) = вероятность, что все трое говорят, что идет дождь, при условии, что он действительно идет = (2/3)3=8/27.

Шаг 1. Находим P(B)

Формулу Байеса P(A|B) = P(B|A) * P(A) / P(B) можно переписать в виде

P(B) = P(B|A) * P(A) P(B| не А) * P(не A)

P(B) = (2/3)3*0.25 (1/3)3*0.75 = 0.25*8/27 0.75*1/27.

Шаг 2. Находим P(A|B)

P(A|B) = 0.25*(8/27) / (0.25*8/27 0.75*1/27) = 8 / (8 3) = 8/11.

Таким образом, если все три казанца говорят, что идет дождь, то он действительно идет с вероятностью 8/11.

14. В первой коробке 12 черных и 12 красных карт, а во второй – 24 черных и 24 красных. Если вытянуть две случайные карты из одной коробки, для какой коробки вероятность вытянуть две карты одного цвета будет выше?

Вероятность вытянуть две карты одного цвета выше для второй коробки, содержащей по 24 карты каждого цвета.

Если мы вытянули, например, красную карту из первой коробки, там останется 11 красных карт и 12 черных, то есть вероятность вытянуть вторую красную карту будет 11 / (11 12) = 11/23.

Во второй коробке после вытягивания первой карты останется 23 карты того же цвета и 24 карты другого, то есть вероятность вытянуть вторую карту того же цвета будет 23 /(23 24) = 23/47.

Поскольку 23/47 > 11/23, вероятность вытянуть две карты одного цвета из коробки, в которой больше карт, выше.

15. Что такое подъем (lift), ключевые показатели эффективности (KPI), робастность, обучение модели, планирование эксперимента, правило 80/20?

Подъем (lift) – мера качества предсказаний модели по сравнению с моделью, выбирающей результат случайным образом. Иными словами, подъем определяет, насколько модель лучше, чем отсутствие какой-либо модели.

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

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

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

Планирование эксперимента (design of experiment, DOE) – подготовка задач для описания и объяснения изменений информации, которые предположительно должны отражать поведение переменной. Фактически, эксперимент пытается предсказать результат, основываясь на изменении одного или более входных параметров – независимых переменных.

Правило 80/20 (закон Парето) гласит, что 80% эффекта получается от 20% случаев. Например, 80% продаж приходится на 20% клиентов.

16. Дайте определение понятиям «обеспечение качества» и «шесть сигм».

Обеспечение качества (Quality Assurance, QA) – действия или набор действий, направленных на поддержание желаемого уровня качества, минимизацию ошибок и дефектов.

Шесть сигм – вид методологии обеспечения качества, включающий набор техник и инструментов, улучшающих процесс. Процесс «шесть сигм» – тот, в котором 99.99966% результатов не имеют дефектов.

17. Приведите пример данных, распределение которых не Гауссово и не логнормальное.

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

18. Что такое RCA (root cause analysis)? Как отличить причину от корреляции? Приведите примеры.

Анализ причин (root cause analysis, RCA) – метод решения задач, используемый для выявления причин некоторого явления.

Корреляция измеряет уровень зависимости между двумя переменными, от -1 до 1. Причинно-следственная связь – это когда первое событие вызывает второе. Причинно-следственные связи учитывают только прямые зависимости, тогда как корреляция – и косвенные зависимости.

Провести анализ причинно-следственных связей можно с помощью проверки гипотез или A/B тестирования.

19. Приведите пример, когда медиана лучше описывает данные, чем среднее значение.

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

20. Вы бросаете два шестигранных кубика. Какова вероятность, что сумма выпавших значений будет равна 4? А 8?

Выбросить 4 можно тремя комбинациями: (1 3, 2 2, 3 1). Поскольку всего комбинаций 36, P(4) = 3/36 = 1/12.

Выбросить 8 можно пятью комбинациями: (2 6, 3 5, 4 4, 5 3, 6 2). P(8) = 5/36.

21. Что такое Закон больших чисел?

Закон больших чисел – это теорема, согласно которой при увеличении количества испытаний среднее значение будет приближаться к ожидаемому.

Например, после 100 тыс. бросков правильной монеты процент выпавших гербов будет ближе к 50%, чем после 100 бросков.

22. Как рассчитать необходимый размер выборки?

Для определения желаемого размера выборки можно использовать формулу предельной ошибки (margin of error):

  • t или z – значение t/z, использованное при расчете доверительного интервала.
  • S – стандартное отклонение выборки.

23. Какие ошибки вы можете внести, когда делаете выборку?

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

24. Как уменьшить количество ошибок выборки?

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

Дополнительный анализ:  Зачем ритейлу считать ROPO: три кейса — Маркетинг на

25. Что такое вмешивающиеся переменные?

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

26. Что такое A/B тестирование?

A/B тестирование – это метод проверки гипотез по двум выборкам для одной и той же переменной, контрольной и тестовой. Широко применяется для улучшения обслуживания пользователей и в маркетинге.

27. Уровень заражений в больнице, превышающий 1 заражение на 100 человеко-дней, считается высоким. В некоторой больнице было 10 заражений за последние 1787 человеко-дней. Вычислите P-значение верного одностороннего теста, чтобы определить, высок ли уровень заражений в этой больнице.

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

Нуль-гипотеза: 1 заражение на 100 человеко-дней или меньше

Альтернативная гипотеза: больше 1 заражения на 100 человеко-дней.

k (фактическое) = 10 заражений.

Лямбда (теоретическое) = 1/100 * 1787.

P = 0.032372 или 3.2372% (можно рассчитать с помощью using.poisson() в Excel, ppois в R или scipy.stats.poisson в Python)

Поскольку значение P меньше альфы (при уровне значимости 5%), мы отвергаем нулевую гипотезу, и делаем вывод, что больница не соответствует стандарту.

28. Вы бросаете жульническую монету (вероятность герба=0.8) пять раз. Какова вероятность, что выпадет минимум три герба?

Для ответа на этот вопрос используем общую формулу биномиальной вероятности:

В нашей задаче p = 0.8, n=5, k=3, 4, 5.

P(3 или больше гербов) = P(3 герба) P(4 герба) P(5 гербов) = 0.94 или 94%.

29. Случайная величина X распределена нормально со средним значением 1020 и стандартным отклонением 50. Вычислите P(X>1200).

Используем Excel: p = 1-norm.dist(1200, 1020, 50, true). Получаем p=0.000159.

30. Пусть количество пассажиров на автобусной станции имеет распределение Пуассона со средним значением 2.5 в час. Какова вероятность, что за 4 часа появится не более трех человек?

x=3, а среднее значение за 4 часа = 2.5*4=10.

Используем Excel: p=poisson.dist(3, 10, true), и получаем p=0.010336.

31. Тест на ВИЧ имеет чувствительность 99.7% и специфичность 98.5%. Пациент из окружения с распространенностью заболевания 0.1% получил положительный результат теста. Какова точность теста (то есть, вероятность, что он ВИЧ-позитивен)?

Точность теста = PV = (0.001*0.997)/[(0.001*0.997) ((1–0.001)*(1–0.985))] = 0.0624 или 6.24%.

Более подробно об этом уравнении можно прочитать здесь.

32. Вы баллотируетесь на пост, и ваш социолог опросил 100 избирателей, 60 из которых сказали, что собираются голосовать за вас. Можете ли вы быть уверены в победе?

  • Примем для простоты, что у вас только один соперник.
  • Также примем, что желаемый доверительный интервал составляет 95%. Это даст нам z-оценку 1.96.

В нашей задаче p = 0.6, z = 1.96, n = 100, что дает доверительный интервал [50.4, 69.6].

Таким образом, при доверительном интервале 95% вы можете расслабиться, только если ничего не имеете против победы с минимальным перевесом. В противном случае придется добиться 61 голоса из 100 опрошенных, чтобы не беспокоиться.

33. Счетчик Гейгера записывает 100 радиоактивных распадов за 5 минут. Найдите приблизительный 95% интервал для количества распадов в час.

  • Поскольку это задача на распределение Пуассона, среднее = лямбда = дисперсия, что также означает, что стандартное отклонение = квадратному корню из среднего.
  • Доверительный интервал 95% соответствует z-оценке 1.96.
  • Одно стандартное отклонение = 10.

То есть, доверительный интервал равен 100 /- 19.6 = [964.8, 1435.2].

34. Количество убийств в Шотландии упало со 115 до 99. Является ли это изменение значимым?

Эта задача аналогична предыдущей – зесь тоже используется распределение Пуассона. Доверительный интервал равен 115 /- 21.45 = [93.55, 136.45]. Поскольку 99 находится в этом доверительном интервале, мы можем сделать вывод, что это изменение не является значимым.

35. Рассмотрим эпидемию инфлюэнцы для гетеросексуальных семей с двумя родителями. Предположим, что вероятность заражения хотя бы одного родителя 17%. Вероятность заражения отца 12%, а заражения обоих родителей – 6%. Какова вероятность заражения матери?

Используем общее правило сложения вероятностей:

P(мать или отец) = P(мать) P(отец) – P(мать и отец)

P(мать) = P(мать или отец) P(мать и отец) – P(отец) = 0.17 0.06 – 0.12 = 0.11

36. Предположим, что диастолическое кровяное давление мужчин от 35 до 44 распределено нормально со средним значением 80 (мм. рт. столба) и стандартным отклонением 10. Чему примерно равна вероятность того, что давление случайного мужчины меньше 70?

Поскольку 70 – это одно стандартное отклонение вниз от среднего значения, нужно взять площадь Гауссова распределения до минус одного стандартного отклонения: 2.3 13.6 = 15.9%.

37. Выборка 9 человек из интересующей нас популяции выявила средний объем мозга = 1100 куб.см. со стандартным отклоненим 30 куб.см. Каким будет 95% Т-доверительный интервал Стьюдента для среднего объема мозга в этой популяции?

Используем формулу доверительного интервала для выборки:

Учитывая уровень доверительности 95% и количество степеней свободы, равное 8, t-оценка = 2.306.

Доверительный интервал = 1100 /- 2.306*(30/3) = [1076.94, 1123.06].

38. Девять испытуемых получали диетические пилюли на протяжении 6 недель. Средняя потеря веса составила -2 кг. Каким должно быть стандартное отклонение потери веса, чтобы верхняя граница 95% Т-доверительного интервала была равна 0?

Верхняя граница = среднее t-оценка * (стандартное отклонение / квадратный корень из размера выборки).

0 = -2 2.306*(s/3)

2 = 2.306 * s / 3

s = 2.601903

Таким образом, стандартное отклонение должно быть примерно 2.60, чтобы Т-доверительный интервал заканчивался в нуле.

39. Для тестирования новой и старой систем сортировки пациентов неотложной помощи исследователи выбрали 20 ночей и случайным образом назначили новую систему сортировки на 10 из них, в остальных оставив старую. Они рассчитали среднее время ожидания (СВО) доктора для каждой ночи. Для новой системы СВО = 3 часа с отклонением 0.60, тогда как для старой было 5 часов с отклонением 0.68. Оцените 95% доверительный интервал для разницы в среднем СВО между системами. Считайте дисперсию постоянной.

Воспользуемся формулой нахождения доверительного интервала для двух независимых выборок (используем t-таблицу для n1 n2-2 степеней свободы):

Доверительный интервал – это среднее /- t-оценка * стандартную ошибку.

Среднее значение = новое среднее – старое среднее = 3-5 = -2.

t-оценка равна 2.101, учитывая 18 степеней свободы (20-2) и 95% доверительный интервал.

Стандартная ошибка = sqrt(0.62*9 0.682*9)/(10 10–2)) * sqrt(1/10 1/10) = 0.352. Доверительный интервал = [-2.75, -1.25].

40. Для дальнейшего тестирования системы сортировки пациентов администраторы выбрали 200 ночей и случайным образом назначили новую систему на 100 из них, оставив старую для 100 остальных. Они посчитали среднее время ожидания (СВО) каждой ночи – для новой системы 4 часа со стандартным отклонением 0.5, а для старой – 6 часов со стандартным отклонением 2 часа. Рассмотрите гипотезу о сокращении времени ожидания при новой системе. Что предполагает 95% независимый групповой доверительный интервал с неравными дисперсиями для этой гипотезы? (Поскольку измерений на группу так много, просто используйте Z-квантиль вместо T).

Предположим мы вычитаем в порядке «Новая система – Старая система». Используем формулу доверительных интервалов для двух независимых выборок и Z-таблицу для стандартного нормального распределения:

среднее значение = новое среднее – старое среднее = 4-6 = -2

z-оценка = 1.96 для доверительного интервала 95%

Стандартная ошибка = sqrt((0.52*99 0.22*99)/(100 100–2)) * sqrt(1/100 1/100) = 0.205061.

Нижняя граница = -2–1.96*0.205061 = -2.40192

Верхняя граница = -2 1.96*0.205061 = -1.59808

Доверительный интервал равен[-2.40192, -1.59808]

Часть 5. заключение

Пройдусь по каждому пункту.

1) Задачи на Яндекс Контесте – 9/10

Несложные, интересные задачи, но непонятен момент с проверкой некоторых задач на оптимальность кода. Действительно ли аналитик должен придумывать самый оптимальный по времени и памяти код или аналитик нужен для других целей?

2) Общение с рекрутером – 10/10

Рекрутер довольно развернуто и оперативно отвечал на все вопросы по почте, после 1го интервью сразу перешел в телеграм для удобства

3) Первое интервью – 10/10

Первое интервью мне очень понравилось. Задачи, подсказки от Сергея, лёгкое и приятное общение.

4) Второе интервью – 5/10

Было слишком много стандартных вопросов, словесная нагрузка в начале интервью от Светланы. Считаю, что можно было кратко и менее нагружено представиться и рассказать, чем занимается отдел. Непростые вопросы на аналитику, сейчас поясню. Должен ли человек, который подаёт на позицию стажёра “Аналитик данных” знать продуктовую аналитику? Наверное, да.

5) Выводы

К сожалению, я получил только фидбек, только написанный в части 4. Проанализировав 2 интервью, я сделал вывод о том, что нужно подтянуть sql. Насчёт продуктовой аналитики я не знаю, в каждой компании свои процессы и заранее вникать в особенности ее работы, наверное, тяжело и затратно по времени. Я согласен, что если ты работаешь уже внутри, то ты обязан знать все подробности, но до этого – вряд ли.

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

Буду рад, если этот пост поможет кому-то подготовиться и попасть в Яндекс.

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

№ 4. нарастающий итог

Благодарность:

эта задача адаптирована из статьи в блоге SiSense

Контекст: допустим, у нас есть таблица transactions в таком виде:

| date       | cash_flow |
|------------|-----------|
| 2021-01-01 | -1000     |
| 2021-01-02 | -100      |
| 2021-01-03 | 50        |
| ...        | ...       |

Где

cash_flow

— это выручка минус затраты за каждый день.

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

| date       | cumulative_cf |
|------------|---------------|
| 2021-01-01 | -1000         |
| 2021-01-02 | -1100         |
| 2021-01-03 | -1050         |
| ...        | ...           |

Решение:

SELECT 
    a.date date, 
    SUM(b.cash_flow) as cumulative_cf 
FROM
    transactions a
JOIN b 
    transactions b ON a.date >= b.date 
GROUP BY 
    a.date 
ORDER BY 
    date ASC

Альтернативное решение с использованием оконной функции (более эффективное!):

SELECT 
    date, 
    SUM(cash_flow) OVER (ORDER BY date ASC) as cumulative_cf 
FROM
    transactions 
ORDER BY 
    date ASC

Заключение

Мы подошли к концу нашей статьи “Что должен знать системный аналитик перед интервью по SAS?”. Мы начали с некоторых более простых вопросов, а затем рассмотрели несколько наиболее часто встречающихся примеров сложных вопросов, с которыми вы можете столкнуться во время собеседования.

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

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

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

Оцените статью
Аналитик-эксперт
Добавить комментарий