18 января 2021

📊 Проверьте свои навыки: 26 вопросов и ответов с собеседований по Data Science

Разработчик ПО (системы PDM/PLM) с 1993 года, компания "ИНТЕРМЕХ" (www.intermech.ru). В 2020-м успешно закончил курсы "Основы Data Science" (минская IT Academy) Референт-переводчик технической литературы с английского языка.
Если вы уже освоили основы профессии, стоит проверить свои шансы на трудоустройство. Публикуем 26 вопросов и ответов с реальных собеседований на позиции в Data Science.
📊 Проверьте свои навыки: 26 вопросов и ответов с собеседований по Data Science

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

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

Сможете ли вы правильно ответить на все вопросы? Поехали!

1. В чем отличие между искусственным интеллектом, машинным обучением и Data Science? (Тема: Общее)

"Искусственный интеллект" (ИИ) – термин, относящийся к широкому диапазону приложений от робототехники до анализа текста, и являющийся комбинацией бизнес-аспектов и технических аспектов. Машинное обучение – это подмножество ИИ, фокусирующееся на узком диапазоне задач и выполняющее сугубо техническую роль. Data Science ("наука о данных") – не подмножество машинного обучения, но использует его для анализа и предсказаний будущего. Она в основном ориентирована на бизнес-приложения.

2. Что такое рекомендательные системы? (Тема: Словарь)

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

3. Что такое нормальное распределение? (Тема: Статистика, Словарь)

Нормальное распределение, также известное как "график колокола", можно описать как распределение, при котором большинство наблюдений находится в центре, и по мере удаления от центра количество наблюдений падает. С точки зрения статистики наиболее важно то, что при нормальном распределении 68% данных находится в пределах одного стандартного отклонения от среднего значения, 95% – в пределах двух стандартных отклонений, и 99.7% – в пределах трех стандартных отклонений от среднего.

График нормального распределения.
График нормального распределения.

4. В чем разница между линейной и логистической регрессией? (Тема: Алгоритмы регрессии и классификации)

Линейная регрессия – это статистический метод, в котором линия (или n-мерная плоскость в случае множества параметров) подстраивается под данные. Он используется для регрессии – когда целевое значение представляет собой действительное число. Логистическая регрессия – это метод классификации. Это трансформация линейной регрессии посредством функции сигмоиды, возвращающей вероятность соответствия входного набора классу 0 или классу 1.

5. Как выбрать число k для алгоритма кластеризации "метод k-средних" (k-Means Clustering), не смотря на кластеры?

Есть два метода выбора значения k для метода k-средних. Первый – это "метод локтя". Строится график зависимости функции потерь от количества кластеров k, и если представить, что график – это "рука", то лучшее значение количества кластеров будет там, где "локоть" этой "руки".

Иллюстрация "метода локтя"
Иллюстрация "метода локтя"

В данном случае очевидно, что "локоть" находится при k=3. Однако, это не всегда так очевидно, поэтому в тех случаях, когда это не так, используется метод силуэта. Этот метод использует "рейтинг силуэта", находящийся в диапазоне от -1 до 1 для каждого количества кластеров. Количество кластеров с максимальным рейтингом обычно является оптимальным.

6. Тест имеет показатель истинной позитивности 100% и ложной позитивности 5%. В вашей популяции каждый тысячный имеет болезнь, на которую проверяет тест. Учитывая только то, что вы получили положительный результат теста, какова вероятность того, что вы действительно болеете этой болезнью? (Тема: Показатели классификации)

Если вы больны, тест это покажет (поскольку истинная позитивность абсолютна). Но если вы не больны, то тест выдаст результат, что вы больны, с вероятностью 5%, и с вероятностью 95%, что не больны. То есть, присутствует 5% ошибка, если вы не больны. Из 1000 человек один больной получит истинный положительный результат. Из остальных 999 человек 5% получат ложные положительные результаты – почти 50 человек. То есть, из 1000 человек 51 получит положительный результат теста, но всего один будет болен на самом деле. Вероятность, что вы больны даже при положительном результате теста, составляет всего около 2%!

7. Как преобразование Бокса-Кокса улучшает качество модели? (Тема: Статистика, Алгоритмы)

Преобразование Бокса-Кокса заключается в возведении данных в некоторую степень: в квадрат, куб, взятие квадратного корня (степень 1/2). Поскольку возведение в степень 0 всегда дает 1, под "степенью 0" в методе Бокса-Кокса подразумевается логарифмическая трансформация.

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

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

8. Всегда ли методы градиентного спуска сходятся в одной и той же точке? (Тема: Нейронные сети)

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

Ниже приведены GIF'ы разных оптимизаторов (методов градиентного спуска) с демонстрацией их работы в пространстве ошибок.

📊 Проверьте свои навыки: 26 вопросов и ответов с собеседований по Data Science
Анимированное изображение можно посмотреть <a href="https://miro.medium.com/max/930/1*XVFmo9NxLnwDr3SxzKy-rA.gif" target="_blank" rel="noopener noreferrer nofollow">здесь</a>.
Анимированное изображение можно посмотреть здесь.

9. Каковы ключевые шаги аналитического проекта? (Тема: Организация)

  • Изучение бизнес-проблемы и целей анализа.
  • Исследование данных и знакомство с ними.
  • Подготовка данных к моделированию путем их очистки (обнаружение выбросов и пропусков, трансформация переменных и т.д.)
  • Запуск модели и нахождение оптимальных гиперпараметров.
  • Валидация модели на новых данных.
  • Ввод модели в эксплуатацию и получение выводов на основе ее предсказаний.

10. Что такое "проклятие размерности" (curse of dimensionality)? (Тема: Данные)

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

11. Что такое полнота (recall) и точность (precision)? (Тема: Показатели классификации)

Полноту можно описать как "процент реально истинных результатов, которые наша модель правильно распознала". Точность можно описать как "процент реально истинных результатов среди тех, которые наша модель посчитала истинными".

12. Как бы вы справились с разными формами сезонности при моделировании временных рядов? (Тема: Временные ряды).

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

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

Пример годичной и месячной сезонности (<a href="https://people.duke.edu/~rnau/411seas_files/image004.png" target="_blank" rel="noopener noreferrer nofollow">источник</a>).
Пример годичной и месячной сезонности (источник).

13. Часто считается, что Ложный Негативный результат хуже, чем Ложный Позитивный. Можете ли вы привести пример, когда Ложный Позитивный результат хуже Ложного Негативного? (Тема: Показатели классификации, Организация)

Вот один пример из многих. Предположим, компания электронной торговли решила подарить чек на $1000 клиентам, которые, по ее мнению, купят товаров не менее чем на $5000. Если модель, используемая компанией, выдаст Ложный Негативный результат, она (ошибочно) не пошлет чек данному клиенту, поскольку считает, что он не потратит $5000 на товары. Хотя это далеко не идеально, компания не потеряет на этом денег. А вот если компания пошлет чек клиенту c Ложным Позитивным результатом (для которого модель ошибочно утверждает, что он купит на $5000), она потеряет на этом деньги.

14. В чем разница между тестовым и валидационным наборами данных? (Тема: Данные, Организация)

Тестовый набор данных используется для оценки качества модели после ее обучения. Валидационный набор используется в процессе обучения для выбора гиперпараметров и предотвращения переобучения на тренировочном наборе.

15. В каких случаях вы бы предпочли использовать SVM, а не Случайный Лес (и наоборот)? (Тема: Алгоритмы)

И SVM, и Случайный Лес – мощные алгоритмы классификации. Если данные хорошо очищены и не содержат выбросов, SVM будет хорошим выбором. В противном случае, Случайный Лес может суметь адаптироваться к этим данным. SVM (особенно с широким поиском параметров) потребляет намного больше вычислительной мощности, чем Случайные Леса, так что при нехватке памяти Случайный Лес будет предпочтительнее. Случайный Лес также предпочтителен для задач мультиклассовой классификации, тогда как SVM предпочтителен для задач высокой размерности, таких, как классификация текста.

16. Что такое ансамбли, и чем они полезны? (Тема: Алгоритмы)

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

17. Какие методы можно использовать для заполнения пропущенных данных, и каковы последствия невнимательного заполнения данных? (Тема: Очистка данных)

Данные из реального мира часто имеют пропуски. Есть множество методов для их заполнения. Полное "лечение" – это процесс удаления каждой строки, содержащей значение NA. Это допустимо, если значений NA не очень много, они задевают не очень много строк, и данных достаточно – в противном случае, мы можем потерять что-нибудь важное. В данных из реального мира удаление любых строк, содержащих NA, может привести к потере наблюдаемых паттернов в данных.

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

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

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

18. Каковы основные предположения о данных, которые должны быть сделаны перед их передачей в модель линейной регрессии? (Тема: Алгоритмы)

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

19. В чем разница между Байесовской оценкой решения и Методом максимального правдоподобия? (Тема: Алгоритмы)

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

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

20. В каких случаях вы бы использовали MSE и MAE? (Тема: Метрики точности)

Среднеквадратичная ошибка (Mean Squared Error, MSE) используется чаще, поскольку она "подсвечивает" большие ошибки. Поскольку производная от x2 равна 2x, чем больше x, тем больше разность между x и x-1. Однако, иногда выбирают Среднюю ошибку по модулю (Mean Absolute Error, MAE), поскольку она выдает результат, который проще интерпретировать. Таким образом, MSE может быть лучше, если вам просто нужно сравнивать модели друг с другом, но не нужно интерпретировать саму метрику, но если нужно интерпретировать результат метрики, лучше использовать MAE (например, модель в среднем ошибается на $4).

21. Что показывает P-значение о данных? (Тема: Статистика)

P-значение используется для проверки значимости результатов после статистического теста гипотезы. P-значения помогают анализирующему делать выводы и всегда находятся в диапазоне между 0 и 1.

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

22. Что такое ROC-кривая? Что такое AUC? (Тема: Метрики точности)

ROC-кривая – это кривая роста процента истинно позитивных результатов по мере роста процента ложных позитивных результатов. Полностью случайное предсказание будет изображаться прямой диагональной линией (черная штриховая линия на рисунке). Оптимальная модель будет как можно более близкой к оси y и к линии "y=1".

ROC-кривые для разных классов (<a href="https://i.stack.imgur.com/yXkG7.png" target="_blank" rel="noopener noreferrer nofollow">источник</a>)
ROC-кривые для разных классов (источник)

Одна из метрик того, насколько близка кривая ROC к этим линиям – AUC, или площадь под кривой (Area Under Curve). Чем выше AUC, тем лучше работает модель.

23. Что такое PCA, и чем он может помочь? (Тема: Алгоритмы)

Метод главных компонент (Principal Component Analysis, PCA) – метод сокращения размерности путем нахождения n ортогональных векторов, представляющих наибольшую вариантность из данных, где n – это размерность, до которой пользователь хочет сократить данные. Эти n векторов служат измерениями для новых данных.

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

24. Объясните дилемму смещения-дисперсии (bias-variance tradeoff) и приведите примеры алгоритмов с высоким и низким смещением. (Тема: Алгоритмы)

Смещение (bias) – это ошибка, внесенная в вашу модель из-за чрезмерного упрощения алгоритма машинного обучения, которое может привести к недообучению. В процессе обучения модели делаются упрощенные предположения, чтобы сделать целевую функцию более простой для понимания. Алгоритмы машинного обучения с низким смещением включают деревья решений, KNN и SVM. Высоким смещением, в частности, отличаются линейная и логистическая регрессия.

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

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

Дилемма смещения-дисперсии (<a href="http://scott.fortmann-roe.com/docs/docs/BiasVariance/biasvariance.png" target="_blank" rel="noopener noreferrer nofollow">источник</a>).
Дилемма смещения-дисперсии (источник).

25. Почему нелинейная функция Softmax часто бывает последней операцией в сложной нейронной сети? (Тема: Нейронные сети)

Потому, что она принимает вектор действительных чисел и возвращает распределение вероятностей. Какой бы вектор x ни подали на ее вход (неважно, положительных или отрицательных), на выходе будет набор чисел, пригодный в качестве распределения вероятностей: каждый элемент выходного значения будет неотрицательным, и их сумма будет равна 1.

26. Что такое векторизация TF/IDF? (Тема: NLP)

TF/IDF – это сокращение для Term Frequency/Inverse Document Frequency. Это числовая статистика, которая должна отражать, насколько данное слово важно для документа, являющегося частью набора документов. Она часто используется в качестве взвешивающего множителя при получении информации и извлечении текста. Значение TF/IDF увеличивается пропорционально количеству появлений этого слова в документе, но уменьшается пропорционально частоте использования этого слова во всем наборе документов, что помогает компенсировать тот факт, что некоторые слова в принципе встречаются чаще других.

На сколько вопросов вы ответили правильно? Эти вопросы относились к широкому диапазону тем, от нейронных сетей до очистки данных, от SVM до NLP, и от показателей классификации до статистики. Они должны хорошо показать, насколько вы знакомы с концепциями Data Science.

В следующей статье мы рассмотрим еще 26 вопросов и ответов с собеседований по Data Science. Спасибо за внимание!

Источники

Комментарии

ВАКАНСИИ

Добавить вакансию
Разработчик C++
Москва, по итогам собеседования

ЛУЧШИЕ СТАТЬИ ПО ТЕМЕ