Библиотека собеса по 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
📌 Почему «логистическая регрессия» — это всё ещё регрессия, а не классификация

На первый взгляд, логистическая регрессия решает задачу классификации — ведь результатом часто становится 0 или 1. Но суть метода — в другом.

🔹 Что происходит на самом деле:

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

🔹 Почему это регрессия:

Потому что модель всё равно оптимизирует непрерывную функцию — отрицательное логарифмическое правдоподобие (log-loss), а не просто учится выбирать класс. Это приближает её к регрессионным методам: мы не просто «присваиваем» метку, а подгоняем параметры, как в классической регрессии.

🔹 А что насчёт классификации:

Классификацию мы получаем постфактум — когда применяем порог (обычно 0.5) к предсказанной вероятности.

⚠️ Главное — не путать внешний вид (0 или 1) с внутренней механикой. Логистическая регрессия — это регрессия, просто на логарифме вероятностей.

Библиотека собеса по Data Science
Media is too big
VIEW IN TELEGRAM
🙈 Что скрывает дисперсия: разгадка секрета точных ML-моделей

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

🧐 Но что, если есть простая формула, способная:

• Мгновенно определить, насколько «разбросаны» ваши данные

• Значительно улучшить точность ваших ML-моделей

• Помочь обнаружить аномалии, которые вы раньше не замечали

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

Хотите узнать, как находить идеальный баланс в своих моделях, причем тут Random Forest и много другого о Data Science?

➡️Тогда смотрите бесплатный вебинар от Proglib: https://proglib.io/w/41b975da
Please open Telegram to view this post
VIEW IN TELEGRAM
Как метод силуэта отличается от метода локтя

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

📍 Метод локтя:
— Основан на внутрикластерной дисперсии (сумме квадратов расстояний до центров кластеров)
— При увеличении количества кластеров дисперсия снижается
— Нужно найти точку, в которой снижение становится менее выраженным — ту самую «локтевую точку»
— Минус: нахождение локтя субъективно и может быть неочевидным

📍 Метод силуэта:
— Для каждой точки рассчитывается оценка силуэта — насколько хорошо она вписывается в свой кластер и насколько далеко от других
— Средняя оценка по всем точкам показывает качество кластеризации
— Позволяет интерпретировать качество кластеров более детально
— Часто даёт более чёткий выбор оптимального k

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

Библиотека собеса по Data Science
Please open Telegram to view this post
VIEW IN TELEGRAM
🖼 ТОП-5 структур данных для обработки изображений

Хотите разобраться, как обрабатывать изображения в компьютерном зрении или графике?

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

👉 В этой статье — подборка топ решений и советы, как их использовать.

Библиотека питониста
Please open Telegram to view this post
VIEW IN TELEGRAM
🆚 Как сравниваются методы перерасчёта градиента и focal loss при работе с несбалансированными классами

🔘 Focal loss добавляет коэффициент, который уменьшает вклад уже хорошо классифицированных примеров, тем самым фокусируя обучение на сложных, часто ошибочно классифицируемых объектах. Это особенно полезно, когда модель быстро обучается на «лёгких» примерах и игнорирует «трудные».

🔘 Gradient re-scaling (пересчёт градиента с учётом частоты классов) нацелен на устранение дисбаланса между классами, регулируя вклад каждого класса в градиент. Часто это реализуется как взвешивание классов.

📍 Сравнение:
— Focal loss фокусируется на сложности примеров, а не на частоте классов.
— Gradient re-scaling напрямую учитывает частоту классов, но не различает лёгкие и трудные примеры внутри одного класса.

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

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

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

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

⚠️ Подводный камень

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

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

Библиотека собеса по Data Science
Please open Telegram to view this post
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
🙂 Раскрываем секрет собственных векторов: математическое оружие на собеседовании

Что объединяет успешный собес и продвинутый анализ данных? Оба требуют способности выделять главное из информационного шума!

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

Например, мы проанализировали 453 акции компаний из списка S&P 500 и выяснили, что всего одна главная компонента объясняет 38% всей динамики рынка. Как такое возможно?

😘 Расскажем на воркшопе «Математика машинного обучения на практике» 21 апреля!

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

Стоимость: 3990 ₽

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

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

📍Dropout немного увеличивает вычислительную нагрузку из-за необходимости генерировать и применять случайную маску. В таких фреймворках, как PyTorch и TensorFlow, эта нагрузка обычно мала на фоне общего обучения, но может стать заметной при большом количестве слоёв с dropout.

📍Что касается памяти — маска бинарная и хранится только для активного батча, поэтому рост потребления памяти незначителен. Однако при больших батчах и множественных dropout-слоях возможно дополнительное потребление памяти.

❗️При сложных архитектурах с ветвлениями dropout может фрагментировать память GPU и замедлять обучение. На современных GPU это редко становится проблемой, но в условиях ограниченных ресурсов (например, на мобильных устройствах) даже такая лёгкая регуляризация может оказаться ощутимой, и тогда стоит рассмотреть альтернативы.

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

Стандартный автоэнкодер (AE) и вариационный автоэнкодер (VAE) оба используют нейросети для сжатия данных (в латентное пространство) и последующего восстановления. Однако у них разный подход к латентному пространству и цели:

🟠 Автоэнкодер (AE)

— Детерминированный: каждый вход x преобразуется в фиксированный вектор z
— Цель — минимизировать ошибку реконструкции (например, MSE)
— Применения: сжатие данных, устранение шума, понижение размерности
— Ограничения: латентное пространство может быть неструктурированным, генерация новых данных — затруднена

🟠 Вариационный автоэнкодер (VAE)

— Стохастический: вместо одного z модель выдает параметры распределения (обычно гауссианского), из которого семплируется z
— Цель — максимизировать вариационную нижнюю границу (ELBO), включающую: ошибку реконструкции, KL-дивергенцию
— Плюсы: латентное пространство структурировано, можно генерировать новые осмысленные примеры, просто семплируя z из N(0,1)
— Применения: генерация изображений, data augmentation, работа с отсутствующими данными

🟠 Когда использовать VAE вместо AE

Когда нужна генерация новых данных (например, изображений)
Когда важно иметь регуляризированное латентное пространство
Когда модель должна обобщать, а не просто копировать вход
В задачах, где важна интерпретируемость или контроль над сгенерированными объектами

Библиотека собеса по Data Science
Please open Telegram to view this post
VIEW IN TELEGRAM
🧮 Как избежать ловушки округления в Power BI

Твой отчет показывает разные цифры при одинаковой логике? Не спеши винить систему – это классический кейс с округлением в Power BI.

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

➡️ Подробнее в статье: https://proglib.io/sh/TcGmatdgNV

Библиотека дата-сайентиста
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥 Почему определённые схемы инициализации весов помогают бороться с затухающими градиентами

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

➡️ Xavier (Glorot) инициализация рассчитана на линейные или сигмоидные активации. Она балансирует дисперсию между входами и выходами слоя.

➡️ Ге инициализация подходит для ReLU-подобных функций и учитывает, что ReLU «отбрасывает» половину входов (всё, что меньше нуля), поэтому она использует чуть большую дисперсию.

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

❗️Если используется нестандартная функция активации или сложная архитектура, стандартные схемы инициализации могут не подойти. Их нужно адаптировать, иначе можно снова столкнуться с затухающими/взрывающимися градиентами.

Библиотека собеса по Data Science
Please open Telegram to view this post
VIEW IN TELEGRAM
🚀 Приручи алгоритмы: из формул в код за один воркшоп

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

Что вас ждет на воркшопе:
🟢 Работа с реальными данными — никаких учебных датасетов, только то, что встречается в настоящих проектах.

🟢Снижение размерности с PCA — научитесь выделять главное из информационного шума.

🟢Случайный лес vs градиентный бустинг — разберемся, в чём ключевое различие и когда какой алгоритм эффективнее.

🟢Мастерство гиперпараметров — освоите тонкую настройку моделей для максимальной точности.

На нашем воркшопе вы не просто слушаете — вы делаете сами! Вы будете писать код на Python, применять популярные библиотеки и сразу видеть результат своей работы.

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

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

Только сегодня, до конца дня: 10 мест по промокоду kulich → 2 990 ₽.

➡️ Записаться на воркшоп: https://proglib.io/w/d295220d
📉 Почему добавление новых данных иногда не улучшает качество модели

Если метрики перестают расти, возможны несколько причин:

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

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

➡️ Данные содержат шум или ошибки в меткахдобавление «плохих» примеров только ухудшает обучение.

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

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

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

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

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

Embedded-методы — работают вместе с обучением модели. Удобны, если модель поддерживает регуляризацию (например, Lasso, Decision Trees), так как отбор признаков происходит прямо во время обучения.

На практике часто применяют комбинацию: сначала отфильтровывают явно нерелевантные признаки (filter), потом wrapper или embedded на отобранных признаках.

Библиотека собеса по Data Science
Please open Telegram to view this post
VIEW IN 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