Библиотека собеса по Data Science | вопросы с собеседований
4.32K subscribers
422 photos
10 videos
1 file
405 links
Вопросы с собеседований по Data Science и ответы на них.

По рекламе: @proglib_adv

Учиться у нас: https://proglib.io/w/7dfb7235

Для обратной связи: @proglibrary_feeedback_bot

Наши каналы: https://t.me/proglibrary/9197
Download Telegram
🧑‍💻 Статьи для IT: как объяснять и распространять значимые идеи

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

Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.

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

👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
Назовите способы обработки пропущенных значений в датасете

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

✔️Иногда объекты с пропущенными значениями можно просто выбросить.
✔️Вместо NaN иногда можно поставить нулевое значение или любое другое выбранное число.
✔️Можно заменить пропуски на среднее значение, медиану или моду.
✔️Можно провести множественную импутацию данных (MICE). В это случае восстановление каждого значения проводится не один раз, а много. В целом, метод прогнозирует пропущенные значения на основе доступных значений переменной, в которой мы заполняем пропуски, и других переменных.
✔️Также есть импутация данных с помощью глубоко обучения. Обучение нейросети на части данных без пропусков позволяет восстанавливать недостающие значения.

#junior
Что может случиться, если в стохастическом градиентном спуске (SGD) установить гиперпараметр momentum близким к единице (например, 0.9999)?

В этом случае алгоритм, скорее всего, значительно наберёт скорость, приближаясь к глобальному минимуму (в лучшем случае), но импульс заставит его «перескочить» минимум. Затем он замедлится и вернётся назад, снова ускорится, снова «проскочит» и это будет повторяться опять и опять. Поэтому, в целом, чтобы сойтись, алгоритму потребуется гораздо больше времени, чем с меньшим значением momentum.

#junior
#middle
В чём разница между методами apply и applymap в Pandas?

Оба метода принимают функции на вход, но работают с ними по-разному. Метод applymap применяет функцию к каждому отдельному элементу DataFrame. В то же время apply применяется к целым строкам или столбцам DataFrame.

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

Начиная с версии Pandas 2.1.0 метод DataFrame.applymap считается устаревшим и был переименован в DataFrame.map.
Какие основные типы данных в Python вы знаете?

Целые числа (int) — тут всё понятно, это обычные числа.
Вещественные числа (float) — их ещё называют числа с плавающей точкой.
Комплексные числа (complex) — их можно записывать так:

x = complex(1, 2)
print(x) # -> (1+2j)

Списки (List) — изменяемые коллекции, которые могут содержать элементы различных типов, упорядочены, поддерживают операции добавления и удаления элементов.
Кортежи (Tuple) — неизменяемые коллекции, которые также могут содержать элементы различных типов, упорядочены.
Строки (String) — неизменяемые коллекции. По сути, строка — это упорядоченная последовательность символов.
Множества (Set) — изменяемые коллекции, которые содержат уникальные элементы, не поддерживают индексацию и срезы.
Неизменяемые множества (Frozenset) — это те же множества, только неизменяемые.
Словари (Dictionary) — изменяемые коллекции пар ключ-значение, упорядочены начиная с Python 3.7.

#junior
🧠Чему вы бы хотели научиться?

Расскажите нам о ваших пожеланиях: какие навыки вы хотели бы прокачать в ближайшее время или какую профессию хотели бы приобрести?

За прохождение опроса вы получите промокод на скидку 15% на все наши курсы до конца 2024 года.

👉Опрос по ссылке👈
Допустим, у вас есть категориальная переменная, которая принимает тысячи разных значений. Как бы вы её закодировали?

Ответ зависит от того, какую задачу мы решаем: классификации или регрессии.

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

Если это бинарная классификация, то можно закодировать категориальную переменную, найдя вероятность целевой переменной принять значение 1, при условии, что объект принадлежит этой категории. Например, если у вас есть категориальная переменная «Город» для прогнозирования невозврата кредита, а вероятность того, что человек, живущий в Сан-Франциско, не вернёт кредит, равна 0,4, то вы замените значение «Сан-Франциско» на 0,4.

#junior
#middle
Какие стратегии подбора гиперпараметров вы знаете?

Можно назвать три стратегии:

✔️Grid Search
При таком подходе для каждого гиперпараметра пользователю необходимо вручную указать список значений, которые алгоритм сможет опробовать. Далее модель обучается, используя каждую комбинацию гиперпараметров, и возвращает комбинацию, которая даёт оптимальный результат. Этот подход может быть довольно затратным в вычислительном отношении.
✔️Случайный поиск
Этот подход похож на Grid Search, но отличается тем, что вместо указания того, какие значения следует проверять для каждого гиперпараметра, даётся верхняя и нижняя граница значений для каждого гиперпараметра. Затем с равномерной вероятностью выбираются случайные значения в пределах этих границ. Далее пользователю возвращается лучшая комбинация.
✔️Байесовская оптимизация
Этот подход основан на теореме Байеса. Эта теорема описывает вероятность наступления события на основе имеющейся информации. При Байесовской оптимизации строится вероятностная модель из набора гиперпараметров, который оптимизирует определённый показатель. Также используется регрессионный анализ для итеративного выбора наилучшего набора гиперпараметров.

#junior
#middle
🤖 Напоминаем, что у нас есть еженедельная email-рассылка, посвященная последним новостям и тенденциям в мире искусственного интеллекта.

В ней:
● Новости о прорывных исследованиях в области машинного обучения и нейросетей
● Материалы о применении ИИ в разных сферах
● Статьи об этических аспектах развития технологий
● Подборки лучших онлайн-курсов и лекций по машинному обучению
● Обзоры инструментов и библиотек для разработки нейронных сетей
● Ссылки на репозитории с открытым исходным кодом ИИ-проектов
● Фильмы, сериалы и книги

👉Подписаться👈
В чём разница между жёстким и мягким голосованием в ансамблях?

▪️ Жёсткое голосование называют ещё голосованием большинством. В этом случае общее предсказание ансамблем метки класса, например, выбирается по принципу «большинство классификаторов предсказали эту метку».

Например, если прогноз для определённой выборки такой:

- классификатор 1 -> класс 1
- классификатор 2 -> класс 1
- классификатор 3 -> класс 2

То ансамблевый классификатор определит объект как «класс 1».

Жёсткое голосование часто используется, когда все классификаторы считаются равноценными.

▪️В мягком голосовании общее предсказание ансамблем метки класса определяется через argmax суммы всех предсказанных вероятностей. Каждому классификатору можно присвоить определённые веса с помощью weights параметра. Когда веса предоставлены, прогнозируемые вероятности классов для каждого классификатора собираются, умножаются на вес классификатора и усредняются. Выбирается метка класса, у которой самая высокая средняя вероятность.

#junior
#middle
This media is not supported in your browser
VIEW IN TELEGRAM
Что вы знаете про метод k-средних (англ. k-means)?

Этот метод кластеризации, в основе которого лежит повторение двух действий: распределение объектов по кластерам и пересчёт центров кластеров.

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

По сути, алгоритм k-means работает на уменьшение среднего квадрата евклидова расстояния от объектов до центров их кластеров.

#junior
#middle
Что вы знаете про нормальное распределение? Зачем оно нужно в Data Science?

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

У нормального распределения есть два параметра: математическое ожидание (среднее) и дисперсия. Распределение, у которого эти параметры соответственно равны нулю и единице, называют стандартным.

Также у нормального распределения есть несколько свойств:
▪️Симметричность относительно своего среднего значения.
▪️ График нормального распределения имеет характерную форму колокола.
▪️ Правило трёх сигм: около 68% значений лежат в пределах одного стандартного отклонения от среднего, около 95% — в пределах двух стандартных отклонений, и около 99.7% — в пределах трёх стандартных отклонений.

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

#junior
Что такое линейный дискриминантный анализ (LDA)?

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

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

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

#junior
Зачем может понадобиться преобразование Бокса-Кокса?

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

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

Можно пользоваться, например, методом boxcox из модуля scipy.stats.

#junior
#middle
Объясните разницу между эпохой и итерацией в машинном обучении

Здесь также стоит ввести понятие «батч». Батч — это партия данных, величину которой вы определяете сами.

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


Пример: можно разделить датасет из 2000 объектов на батчи размером 500 объектов. Тогда для завершения одной эпохи потребуется четыре итерации.

#junior
#middle
Что такое стемминг и лемматизация?

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

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

▪️Стемминг — грубый процесс «обрезания» слов. Выполняется на основе эвристик, без учёта контекста, словарей и морфологии. Его проще внедрить и он работает быстрее.
▪️Лемматизация — более сложный и тонкий метод. Приводит слово к его начальной форме (лемме), используя морфологический анализ и знания об особенностях конкретного языка.

#junior
#middle
В чём разница между CHAR и VARCHAR в SQL?

CHAR и VARCHAR — это типы данных для хранения символьных строк.

✔️CHAR: предназначен для хранения строк фиксированной длины. Если помещаемая в него строка короче заявленной длины, то она дополняется пробелами. Например, если был определён столбец с типом CHAR(5), то при внесении в него строки «cat», она дополнится двумя пробелами в конце.
✔️VARCHAR предназначен для хранения строк переменной длины. Никакие пробелы не добавляются.

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

#junior
#middle
🧑‍💻 Статьи для IT: как объяснять и распространять значимые идеи

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

Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.

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

👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
В каких ситуациях лучше не применять обобщённые линейные модели (generalized linear models, GLM)?

К ним относятся, в частности, линейная и логистическая регрессии.

1️⃣ Если отношения между переменными сильно нелинейные. В таких случаях лучше рассмотреть другие модели, которые могут это учесть.
2️⃣ Обобщённые линейные модели в идеале предполагают соблюдение некоторых условий: нормальность остатков, гомоскедастичность и отсутствие мультиколлинеарности. В противном случае, результаты модели могут быть ненадёжными.
3️⃣ GLM могут быть чувствительны к выбросам или экстремальным значениям.

#junior
#middle
Что такое метрика BLEU?

Метрика BLEU (Bilingual Evaluation Understudy) — это один из методов оценки качества машинного перевода. Основная идея BLEU заключается в сравнении переведённого моделью текста с эталонными переводами, выполненными человеком.

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

Алгоритм, если коротко, такой: для каждой длины n-граммы (от 1 до 4) подсчитывается точность. Точность — это отношение количества совпавших с эталонными n-грамм в машинном переводе к общему количеству n-грамм в этом переводе. Затем эти точности комбинируются. Есть также штраф за краткость. Более подробно можно прочесть здесь.

#middle