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

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

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

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

Наши каналы: https://t.me/proglibrary/9197
Download Telegram
Зачем дата-сайентисту дисперсия

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

👉 Оценке и интерпретации результатов моделей
👉 Понимании поведения алгоритмов машинного обучения
👉 Снижении ошибок при построении предсказаний

В этой статье разберём, как правильно использовать дисперсию в Data Science и как она влияет на работу алгоритмов, например, в модели Random Forest.

👉 Читайте, чтобы понять, как измерять и учитывать дисперсию: https://proglib.io/sh/GDKYJQdAI2

Библиотека дата-сайентиста
Please open Telegram to view this post
VIEW IN TELEGRAM
Как справиться с шумными валидационными сигналами при использовании Early Stopping

Сильные колебания валидационной метрики могут ввести алгоритм Early Stopping в заблуждение: обучение может остановиться слишком рано или, наоборот, продолжаться слишком долго. Один из способов справиться с этим — сглаживать метрику, усредняя её значения за несколько эпох перед принятием решения об улучшении или ухудшении.

Вот несколько подходов:

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

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

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

Библиотека собеса по Data Science
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥 Завтра запускаем ML-ракету: последние места на борту

Уже завтра, 21 апреля, состоится наш воркшоп «Математика машинного обучения на практике», где теория ML превращается в практические навыки.

Что вас ждет:
📍 Работа с реальными данными — табличные датасеты и изображения
📍 Снижение размерности через PCA — научитесь отделять важное от второстепенного
📍 Обучение моделей — Random Forest и градиентный бустинг в действии
📍 Разбор метрик и гиперпараметров — как настроить модель на максимальную эффективность
📍 Написание кода на Python — прямо как реальных проектах
📍 Персональный code review от эксперта — бесценный фидбек для вашего роста
📍 Доступ в закрытый чат участников — нетворкинг и обмен опытом

Кто проводит воркшоп:

Мария Горденко — инженер-программист, старший преподаватель НИУ ВШЭ и Proglib Academy, руководитель магистратуры от ГК Самолет и Альфа-Банка.

Стоимость участия: 3990₽
Когда: завтра, 21 апреля

👉 Забронировать место на воркшопе: https://proglib.io/w/d295220d
Please open Telegram to view this post
VIEW IN TELEGRAM
Как размер батча взаимодействует с Batch Normalization и может ли он негативно повлиять на статистику слоя

При использовании слоёв Batch Normalization среднее значение и дисперсия обычно вычисляются по каждому мини-батчу.

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

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

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

Библиотека собеса по Data Science
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔 Могут ли skip-соединения мешать обучению в неглубокой нейросети

Да, если сеть слишком мелкая, skip-соединения могут ослабить мотивацию для глубоких слоёв учиться извлекать сложные признаки. Поскольку информация может легко «перепрыгивать» через слои по пути тождественности, модель может просто передавать входы напрямую к выходу — и недообучиться.

➡️ Такой эффект особенно заметен, если задача требует сложных преобразований. Решение: можно добавить «управление» потоком по skip-пути — например, с помощью гейтов или 1x1-сверток.

➡️ Если вы замечаете, что сеть не учит ничего полезного — попробуйте временно отключить skip-соединения, посмотреть на активации по слоям, или усилить регуляризацию (dropout, weight decay). Это может помочь сети начать извлекать более глубокие представления.

Библиотека собеса по Data Science
Please open Telegram to view this post
VIEW IN TELEGRAM
🔍 Как выбрать дискретные значения гиперпараметров для Grid Search

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

Обычно значения выбираются на основе:
👉 Опытных предположений или предварительных экспериментов.
👉 Понимания масштаба параметра: например, для learning rate лучше использовать экспоненциальную шкалу (0.001, 0.01, 0.1), так как он сильно влияет на обучение.
👉 Стандартных шаблонов: число нейронов в слоях часто варьируют степенями двойки (64, 128, 256), чтобы не распыляться на мелкие изменения.

🙅‍♂️ Если задать слишком много значений, общее число комбинаций быстро растёт, и поиск становится дорогим. Слишком мало — можно пропустить хорошие настройки.

✔️ Поэтому обычно начинают с грубого поиска (coarse grid), а затем уточняют диапазоны вокруг лучших значений.

Библиотека собеса по Data Science
Please open Telegram to view this post
VIEW IN TELEGRAM
🕵️‍♂️ Как обнаружить мошеннические транзакции с помощью GMM

В основе — Gaussian Mixture Model: она моделирует распределение данных как смесь нескольких многомерных нормальных распределений. У каждого — своё среднее значение и ковариационная матрица.

⚙️ Модель обучается с помощью алгоритма EM (Expectation-Maximization). После обучения она рассчитывает апостериорные вероятности — насколько транзакция вписывается в каждый из компонентов смеси.

📉 Если транзакция имеет низкую вероятность по всем компонентам, GMM считает её аномальной — потенциально мошеннической.

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

Библиотека собеса по Data Science
Как объяснить коэффициенты логистической регрессии без технических деталей

💡 Представим так:

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

Каждый признак (фактор) — это как один из аргументов «за» или «против» исхода. У каждого есть своя «весомость» — коэффициент:
➡️ Если коэффициент положительный — этот фактор повышает шанс, что событие произойдёт.
➡️ Если отрицательный — наоборот, снижает вероятность.
Чем больше по модулю число — тем сильнее влияние этого фактора.

Чтобы понять, насколько фактор влияет, можно посмотреть на exp(коэффициент)это показывает, во сколько раз увеличиваются шансы.

▶️ Например:
Если exp(коэффициент) = 1.5, это значит: каждый дополнительный «балл» этого признака повышает шансы на 50%.

Библиотека собеса по Data Science
Please open Telegram to view this post
VIEW IN TELEGRAM
👌 Как правильно инициализировать центроиды в k-means, чтобы не застрять в плохом локальном минимуме

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

🔥 Лучшее решение — использовать алгоритм k-means++

Он работает так:
1. Сначала выбирается одна случайная точка из данных.
2. Далее каждый следующий центр выбирается с вероятностью, пропорциональной квадрату расстояния до ближайшего уже выбранного центра.

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

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

Библиотека собеса по Data Science
Зачем в нейронных сетях используется техника label smoothing

Label smoothing — это техника регуляризации, при которой вместо подачи на выход модели «жестких» меток (например, [0, 0, 1, 0]) используют «размягчённые» метки (например, [0.01, 0.01, 0.96, 0.01]).

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

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

Техника особенно эффективна, когда есть шум или множество похожих классов.

Библиотека собеса по Data Science
Please open Telegram to view this post
VIEW IN TELEGRAM
Какими методами можно интерпретировать сложные модели, например, случайные леса или нейронные сети

Интерпретация сложных моделей требует специальных подходов, так как в отличие от простой логистической регрессии у них нет очевидных коэффициентов:

1️⃣ Feature Importance — метод оценки важности признаков. В деревьях отслеживается, насколько каждый признак снижает неопределенность (impurity) при разбиениях.

2️⃣ Partial Dependence Plots (PDPs) — графики зависимости, которые показывают, как меняется прогноз модели при изменении одного признака, усредняя влияние остальных.

3️⃣ LIME (Local Interpretable Model-Agnostic Explanations) — создает локальные приближённые модели вокруг отдельных предсказаний для объяснения, как конкретный результат был получен.

4️⃣ SHAP (SHapley Additive exPlanations) — использует идеи теории игр, чтобы справедливо распределить вклад каждого признака в конкретное предсказание.

Библиотека собеса по Data Science
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥 IT Breaking Memes — 30 000 ₽ за самую смешную IT-новость

Библиотека программиста запускает конкурс, который взорвет вашу ленту: создайте самую смешную альтернативную версию реальной IT-новости!

👾 Правила просты:
1. Берете настоящую новость из мира технологий.
2. Переписываете ее так, чтобы смеялись все.
3. Получаете деньги и славу.

🏆 Призы:
- 1 место: 30 000 ₽ + статус ведущего нового юмористического IT-канала
- 2 и 3 место: по 5 000 ₽ + вечный почет в IT-сообществе

Пример:
Реальная новость: «Гугл создала модель для общения с дельфинами».

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

📅 Сроки: с 29 апреля по 11 мая включительно

Для участия отправьте свою смешную новость в гугл-форму: https://forms.gle/6YShjgfiycfJ53LX8

Ждем ваших новостей!
Как PCA работает с пропущенными значениями в данных

Метод главных компонент (PCA) сам по себе не умеет обрабатывать пропущенные значенияему нужны полные строки данных для вычисления ковариационной матрицы или проведения SVD.

Однако есть несколько способов обойти это ограничение:

🔹 Удаление неполных строк (listwise deletion): самый простой вариант — убрать все строки с пропущенными значениями. Но это может сильно сократить объем данных и исказить результат, особенно если данные пропущены не случайно.

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

🔹 Expectation-Maximization PCA: специальная итеративная техника, которая попеременно оценивает пропущенные значения и обновляет компоненты PCA. Этот метод сложнее, но может дать более точные результаты, чем обычная импутация.

🔹 Robust PCA / матричное дополнение: альтернативные методы, подходящие для больших и структурированных наборов данных. Они способны восстанавливать недостающие элементы с сохранением низкоранговой структуры, аналогичной PCA.

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

Библиотека собеса по Data Science
Please open Telegram to view this post
VIEW IN TELEGRAM
🐍 Пиши как профи: 10 Python-лайфхаков для новичков

Лайфхаки от разработчиков, обжёгшихся до вас

➡️ Что вас ждет внутри:
— почему if x == True: — это преступление
— как списковые включения экономят часы
— зачем линтер важнее кофе
— и почему def func(start_list=[]) может испортить тебе вечер
— как не сойти с ума от зависимостей (и что делать с виртуальными окружениями)
— секретный power move: dir(), help() и другие встроенные суперсилы

И всё это без занудства и «книг для чайников». Просто, по делу, с примерами и личным опытом от бывалых питонистов

📎 Статья

🔵 Начинайте свой путь в программировании и прокачивайте свои навыки с нашим курсом «Основы программирования на Python»

Proglib Academy #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
💬 Можно ли эффективно обучать нейросети, если их функция потерь не является выпуклой

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

🔹 Инициализация весов (например, He или Xavier) помогает избежать плохих стартовых точек.
🔹 Batch Normalization стабилизирует и ускоряет обучение.
🔹 Адаптивные оптимизаторы (как Adam, RMSProp) и моментум помогают лучше проходить через сложные участки ландшафта.
🔹 Регуляризация и схемы изменения learning rate снижают риск переобучения и ускоряют сходимость.

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

Библиотека собеса по Data Science
Please open Telegram to view this post
VIEW IN TELEGRAM
Можно ли использовать MSE или MAE для задач классификации

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

🔸 Бинарная классификация с непрерывным выходом: если модель выдаёт не чистый класс, а значение от 0 до 1, можно рассматривать задачу как регрессию и сравнивать это значение с меткой (0 или 1) с помощью MSE или MAE. Но важно понимать, что такой подход даёт слабые градиенты и может сходиться медленнее, чем при использовании кросс-энтропии.

🔸 Порядковая классификация (ordinal): если классы имеют естественный порядок (например, маленький < средний < большой), использование MSE или MAE может быть оправдано — модель учится предсказывать ранг, и ошибки ближе к истине наказываются слабее, чем ошибки, далёкие от неё.

⚠️ Потенциальные проблемы:
При несбалансированных классах MSE/MAE могут вводить в заблуждение
Такие функции не дают вероятностной интерпретации, как логистическая регрессия
Пороговое определение класса (например, всё, что > 0.5 = класс 1) может быть плохо откалибровано

Библиотека собеса по Data Science
Please open Telegram to view this post
VIEW IN TELEGRAM
Почему логистическая регрессия не подвержена переобучению так же сильно, как деревья решений или нейросети

Логистическая регрессия — это линейная модель, и ее склонность к переобучению значительно ниже, чем у более гибких моделей, таких как decision trees или нейросети. Вот почему:

1. Ограниченная сложность модели

Логистическая регрессия линейно разделяет пространство признаков, что ограничивает ее гипотезы (модельное семейство). Это значит, что она имеет высокое смещение (bias), но низкую дисперсию (variance). Переобучение обычно связано с высокой дисперсией, которой у линейной модели меньше.

2. Малая VC-дименсия

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

3. Регуляризация встроена естественным образом

В логистическую регрессию часто добавляют L1 или L2 регуляризацию (например, через параметр C в `sklearn`). Это сдерживает веса модели и предотвращает переобучение.

4. Обучение через оптимизацию функции правдоподобия

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

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

Библиотека собеса по Data Science
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔 Какие практические соображения важны при выборе функции активации

Память, вычислительная эффективность, числовая устойчивость и простота реализации — всё это важные факторы.

Например, ReLU и её варианты являются простыми покомпонентными операциями, которые хорошо оптимизированы на современном оборудовании (GPU и TPU).

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

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

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

Библиотека собеса по Data Science
Please open Telegram to view this post
VIEW IN TELEGRAM