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

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

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

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

Наши каналы: https://t.me/proglibrary/9197
Download Telegram
🗨 Когда стоит рассматривать разбиение датасета вместо применения глобального преобразования

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

🔍 Пример:
Если есть данные о доходах из разных регионов. Один регион — с высоким уровнем доходов, другой — с низким. В совокупности распределение выглядит сильно смещённым или даже мультимодальным (несколько пиков).

В такой ситуации попытка применить глобальное преобразование (например, логарифм или Box-Cox) ко всему датасету сразу не устраняет проблему. Это всё ещё не одно распределение, а смесь разных.

Что делать:
📍 Разбить данные на логически обоснованные подгруппы (по региону, демографии, сегменту бизнеса и т.д.).
📍 Применить отдельные преобразования или даже обучить отдельные модели для каждой подгруппы.
📍 При необходимости объединить результаты анализа или прогнозы обратно.

Что важно учитывать:
📍 Разделение должно быть обосновано теоретически или доменной экспертизой. Разделение «наугад» может привести к переобучению или утечке информации.
📍 Объём данных в каждой подгруппе должен быть достаточным для построения статистически надёжных моделей или трансформаций.

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

Библиотека собеса по Data Science
Please open Telegram to view this post
VIEW IN TELEGRAM
🚨 Смешные новости про IT теперь в одном канале

Мы запустили @hahacker_news — наш новый юмористический IT-канал.

Туда будем постить лучшие шутки до 19го мая, которые вы присылали на конкурс.

👉 @hahacker_news — голосование уже идёт, переходите, читайте, угарайте и оставляйте реакции
⚙️ Работает ли Adam при экстремально разреженных градиентах

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

💡 Почему Adam может быть полезен:
⭕️ Он масштабирует шаги обучения по каждому параметру отдельно, используя скользящие средние градиентов (1-го и 2-го порядка).
⭕️ Даже если градиенты редкие, Adam может обеспечить значимые апдейты по тем параметрам, которые активируются нечасто, например, для редких токенов в эмбеддингах.

⚠️ Но есть и подводные камни:
⭕️ Если параметр обновляется крайне редко, его скользящие средние могут оставаться почти нулевыми слишком долго → шаг становится почти нулевым.
⭕️ В таких условиях нужно особенно тщательно настраивать «beta1», «beta2» и «learning rate» — слишком «инерционные» настройки могут замораживать обновления навсегда.
⭕️ Примеры таких кейсов — миллионные эмбеддинг-таблицы в рекомендательных системах, где важна тонкая настройка скорости обучения для редких признаков.

Библиотека собеса по Data Science
Please open Telegram to view this post
VIEW IN TELEGRAM
В чём разница между активным обучением (Active Learning) и полунаблюдаемым обучением (Semi-Supervised Learning)

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

🔍 Активное обучение:
— Фокусируется на выборке самых информативных примеров из неразмеченного пула.
Эти выбранные примеры отправляются эксперту для разметки.
— Цель — максимизировать прирост качества модели на каждый новый размеченный экземпляр, минимизируя трудозатраты на аннотацию.

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

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

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

Только с оговорками. Feature importance помогает понять, какие признаки влияют на предсказание, но интерпретация зависит от типа модели и метода оценки важности.

Что нужно учитывать

1. Важность ≠ причинность
Высокое значение признака в модели не означает, что он вызывает результат — он просто помогает предсказывать его.

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

3. Разные методы — разные результаты
В деревьях часто используется Gini importance или gain, но они чувствительны к масштабам.
В моделях типа XGBoost можно использовать SHAP для более надёжной оценки вклада признаков.
Линейные модели дают понятные веса, но только при отсутствии мультиколлинеарности.

Как подходить к анализу признаков

Используйте несколько методов (например, permutation importance + SHAP).
Учитывайте контекст задачи и доменную экспертизу.
Не делайте выводов о «причинности» только по важности признаков — используйте дополнительные анализы.

Библиотека собеса по Data Science
Please open Telegram to view this post
VIEW IN TELEGRAM
📊 Может ли использование MSE в логистической регрессии привести к другим локальным минимумам по сравнению с кросс-энтропией

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

🔍 Почему так происходит

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


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


🔎 Кросс-энтропия лучше «соотнесена» с логистической регрессией
Она прямо оптимизирует логарифмическое правдоподобие и ведёт к более «чистому» и выпуклому ландшафту потерь, что помогает градиентному спуску быстрее находить оптимум.


Библиотека собеса по Data Science
Please open Telegram to view this post
VIEW IN TELEGRAM
🧠 Как понять, когда использовать сегментацию, а когда кластеризацию

Всё зависит от вашей цели и уровня знаний о данных.

Когда использовать сегментацию

— Уже есть чёткие правила или бизнес-категории, по которым нужно делить данные (например, по возрасту, региону, доходу).
— Сегменты заранее определены и имеют бизнес-смысл.
— Вы хотите сравнивать или таргетировать заранее известные группы.

📌 Пример: маркетинговая кампания по заранее определённым возрастным категориям клиентов.

Когда использовать кластеризацию

— Вы не знаете заранее, как устроена структура данных.
— Хотите найти естественные группы на основе признаков.
— Исследуете поведение пользователей, клиентов или объектов без предварительных гипотез.

📌 Пример: кластеризация пользователей по поведению в приложении, чтобы выявить скрытые паттерны.

Библиотека собеса по Data Science
Please open Telegram to view this post
VIEW IN TELEGRAM
В чём разница между MCAR, MAR и MNAR

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

🔍 MCAR (Missing Completely at Random)
Пропуски появляются совершенно случайно — не зависят ни от наблюдаемых, ни от ненаблюдаемых переменных.

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

🔍 MAR (Missing At Random)
Пропуски зависят от других наблюдаемых признаков, но не от самого недостающего значения.

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

🔍 MNAR (Missing Not At Random)
Пропуски зависят от самого значения, которое пропущено.
То есть в данных есть систематическая причина, скрытая внутри пропуска.


📌 Пример: люди с высоким доходом не указывают его в анкете — именно потому, что он высокий.
Что делать: здесь простые методы не помогут. Часто требуется:
Моделировать механизм пропуска явно.
Включать индикаторы пропусков как отдельные признаки.
Использовать экспертные знания или специализированные байесовские подходы.

Библиотека собеса по Data Science
Please open Telegram to view this post
VIEW IN TELEGRAM
🚫 Что делать с пропущенными значениями перед нормализацией или стандартизацией признаков

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

Основные варианты

1️⃣ Импутация (восстановление) пропущенных значений

Простые методы: среднее, медиана, мода.
Продвинутые: KNN, модели на деревьях, многократная импутация (Multiple Imputation).

2️⃣ Удаление строк с пропусками

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

3️⃣ Использование моделей, устойчивых к пропускам

Некоторые алгоритмы (например, XGBoost, CatBoost) умеют обрабатывать пропуски без предварительной импутации.

📌 Вывод

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

Библиотека собеса по Data Science
Please open Telegram to view this post
VIEW IN TELEGRAM
🥵 Устали от статей, где эйчары рассказывают, как на самом деле выглядит рынок труда в ИТ?

Мы тоже! Поэтому решили узнать правду и представить ее всем айтишникам — но нам нужен ваш голос. Опрос займет 3 минуты, а пользы — вагон для всего сообщества.

Результаты этого исследования помогут понять, как специалистам искать работу в 2025-м (а компаниям — специалистов).

👉 Если вы готовы сделать свой вклад в исследование — велком: https://clc.to/VGgyNA
Может ли одна модель показывать одновременно высокий bias в одних сегментах данных и высокий variance в других

Да, такое вполне возможно. Модель может хорошо работать на одних подмножествах данных, но плохо — на других.

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

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


🛠 Как это исправить

1️⃣ Локальная адаптация модели:

Разбить данные на сегменты (например, по диапазонам признаков или кластерам).
Обучить отдельные модели для каждого сегмента (например, ансамбли или модели с разными параметрами).

2️⃣ Использовать гибридные или иерархические модели:

Методы типа Mixture of Experts, которые «специализируются» на разных областях.
Иерархические модели или модели с ветвлениями, учитывающие неоднородность данных.

3️⃣ Добавить или улучшить признаки:

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

4️⃣ Улучшить сбор и баланс данных:

Недостаток данных в некоторых сегментах вызывает высокую дисперсию — собрать больше данных или использовать аугментацию.

Библиотека собеса по Data Science
Please open Telegram to view this post
VIEW IN TELEGRAM
Что делать, если распределение данных меняется со временем? Как это влияет на валидацию и Early Stopping

Когда данные со временем «плывут» (то есть меняется их распределение), фиксированный валидационный набор устаревает. В этом случае Early Stopping может остановить обучение в «лучшей» точке для старого распределения, но не для актуального.

🔍 Что можно сделать

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


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


3. Переобучать или дообучать модель при обнаружении дрейфа
— Если обнаружили drift, стоит не просто дообучить модель, а пересобрать или адаптировать её с учётом новых данных.


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

Библиотека собеса по Data Science
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔 Что делать, если в небольшом размеченном наборе сильно несбалансированные классы, но среди неразмеченных данных, возможно, есть представители миноритарного класса

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


🛠 Как с этим справиться

1. Усиливаем вклад миноритарного класса в функцию потерь
Используем взвешивание классов или focal loss, который автоматически усиливает вклад трудных примеров.

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

3. Активный отбор редких примеров среди неразмеченного пула
Можно применять кластеризацию и отбирать для разметки точки из «редких» кластеров — это метод active cluster labeling.

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

Библиотека собеса по Data Science
Что делать, если в обучающем наборе для методов на основе соседей часть меток отсутствует или указана неполностью

Методы, основанные на ближайших соседях (например, k-NN), предполагают, что каждая обучающая точка имеет метку. Отсутствие меток усложняет обучение и прогнозирование, особенно если таких точек много.

📝 Варианты решений

1. Игнорировать объекты без меток
Можно обучаться только на размеченных примерах, но при этом теряется часть данных, что особенно критично при малом объёме обучающей выборки.

2. Использовать полубезнадзорные методы (semi-supervised)
Например, распространение меток (label propagation): метки итеративно «перетекают» от размеченных точек к близким неразмеченным, если они достаточно похожи.

3. Изучение структуры данных через неразмеченные точки
Даже если метки отсутствуют, сами объекты помогают определить геометрию признакового пространства и уточнить, кто кому «сосед».

📝 Подводные камни:

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

📝 Вывод

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

Библиотека собеса по Data Science
Please open Telegram to view this post
VIEW IN TELEGRAM
Зачем использовать stratifed sampling при разбиении на обучающую и тестовую выборки

Stratified sampling (стратифицированная выборка) используется для того, чтобы сохранить пропорции классов (или других важных характеристик) при разбиении данных на обучающую и тестовую части. Это особенно важно, если классы несбалансированы.

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

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

Библиотека собеса по Data Science
😳 Почему дата-сайентисты застревают на уровне «делаю отчеты и строю модельки»

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

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

🔥Поэтому мы запускаем курс «AI-агенты для DS-специалистов»

🧐 Что будет на курсе:
— Рассмотрим реализацию памяти в цепочках langchain и создадим пару простых агентов.
— Соберем полный пайплайн RAG-системы с оценкой качества.
— Изучим основные понятия мультиагентных систем (MAS) и библиотеки для их построения.
— Рассмотрим протокол MCP и фреймворк FastMCP, создадим end-to-end приложение.

🎁 В честь запуска курса мы дарим промокод PROGLIBAI на 10 000 ₽ на два других обучения:
Математика для Data Science
Алгоритмы и структуры данных

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

👉 Успейте использовать промокод и забрать новый курс по приятной цене до 1 июня: https://clc.to/Cttu7A
👌 Когда метод опорных векторов (SVM) может превосходить глубокую нейросеть на практике

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

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

⚠️ На что стоит обратить внимание:
— Глубокие нейросети склонны к переобучению на малых данных. Без правильной настройки регуляризации и архитектуры они могут хуже обобщать, чем более простые модели.
— Нейросетям часто нужны хорошие инициализации весов, продвинутые оптимизаторы и большие вычислительные ресурсы. При неправильной конфигурации они могут проигрывать по скорости и стабильности SVM.
— SVM проще интерпретировать и отлаживать в задачах с ограниченными ресурсами или когда важна воспроизводимость.

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

Библиотека собеса по Data Science
Please open Telegram to view this post
VIEW IN TELEGRAM
😱 Вся правда об увольнениях в IT в 2025-м

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

Но для этого нам нужна ваша помощь! Мы собираем данные от разработчиков, тестировщиков, менеджеров и всех, кто работает в ИТ, чтобы создать честное исследование о:

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

Почему это важно? Потому что сила в правде. Зная реальную ситуацию, вы сможете лучше понимать тренды рынка и планировать карьеру.

⚡️Пройдите опрос и помогите всему сообществу: https://clc.to/yJ5krg