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

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

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

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

Наши каналы: https://t.iss.one/proglibrary/9197
Download Telegram
🔮 Можно ли считать, что модель, которая хорошо работает на данных прошлого, «понимает» будущее

Не совсем. Модель учится на исторических данных и выявляет в них закономерности. Но будущее может отличаться из-за новых факторов, изменений среды, смещения данных или неожиданных событий — это называется сдвигом распределения (data drift).

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

Библиотека собеса по Data Science
2👍1
🤔 Может ли модель машинного обучения «обмануть» нас, даже если метрики говорят, что всё хорошо

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

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

2️⃣ Модель для детекции токсичных комментариев может научиться просто игнорировать сленг или грамматические ошибки, если их нет в тренировке, и при этом «наказывать» культурные диалекты.

3️⃣ Модель детектирует трещины на снимках труб, но в обучающих данных почти все трещины были сфотографированы в солнечную погоду — и модель на самом деле распознаёт освещение, а не дефекты.

Формально — всё отлично: log-loss низкий, ROC-AUC высокий. Но по сути — модель научилась «читерить». Это называют спурием-корреляциями (spurious correlations) и data leakage.

Библиотека собеса по Data Science
Please open Telegram to view this post
VIEW IN TELEGRAM
4👍2
Зачем использовать функции потерь, нечувствительные к масштабу ошибки, например Huber loss, вместо стандартной MSE в регрессии

Среднеквадратичная ошибка (MSE) сильно штрафует большие отклонения, из-за чего становится очень чувствительной к выбросам. Один аномальный объект может доминировать в градиентах и «утащить» всю модель.

Huber loss — это гибрид MSE и MAE:
❇️ При малых ошибках она ведёт себя как MSE — гладко и удобно для градиентных методов.
❇️ При больших — как MAE, линейно, не позволяя выбросам слишком сильно влиять на обучение.

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

Библиотека собеса по Data Science
Please open Telegram to view this post
VIEW IN TELEGRAM
4
Первый вебинар нашего курса по AI-агентам уже прошёл!

Запись уже выложили на обучающей платформе — можно влетать и догонять с комфортом.

Первые слушатели уже оставили фидбэки — и, кажется, мы попали в точку:
— «теперь наконец понял, как выбирать модели под задачу — раньше брал первую попавшуюся»
— «без лишнего, по делу, в лайве — кайф»
— «огонь, ожидания 100% оправданы лично у меня»

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

Ещё можно догнать и пройти всё вместе с потоком.

👉 Залетай на курс
Зачем в задачах классификации можно использовать регрессию перед классификацией

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

Примеры:
▶️ В задаче определения уровня токсичности (0 — «нейтрально», 1 — «слегка агрессивно», 2 — «очень токсично») можно сначала регрессировать «степень токсичности», а затем порогами разделить на классы. Это называется ordinal regression.

▶️ В медицинской диагностике — если заболевание имеет стадии, и они близки по смыслу, а не просто «класс 0/1», регрессия может дать более тонкие различия, чем жёсткая классификация.

Иногда модель классификации может быть уверена на 51% в одном классе и 49% в другом — и потерять важную информацию. Регрессионный подход позволяет сохранить нюансы.

Библиотека собеса по Data Science
Please open Telegram to view this post
VIEW IN TELEGRAM
👍81🔥1
👇 Зачем обучать модель на синтетически сгенерированных данных, если есть реальные

Синтетические данные могут показаться искусственными, но в некоторых ситуациях они становятся незаменимым инструментом, особенно когда:

➡️ Реальных данных мало, и модель склонна к переобучению. Синтетика помогает обобщить.

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

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

➡️ Анализ worst-case behavior. Можно сгенерировать «провокационные» примеры, чтобы проверить, как модель реагирует на сложные случаи.

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

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

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

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

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

Нужно вытянуть максимум информации из сложных и «богатых» данных. Иногда регуляризация отрезает важные высокоуровневые зависимости. Переобученная модель может их уловить — главное, вовремя остановиться.

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

Библиотека собеса по Data Science
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
🔎 Как и почему возникает проблема каллибровки вероятностей в моделях машинного обучения

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

Во многих задачах (медицина, финансы, риск-менеджмент) важна не только метка класса, но и уверенность модели. Например, предсказать, что событие с вероятностью 0.9 действительно случится примерно в 90% случаев.

Почему возникает несоответствие:
➡️ Используемые функции потерь (например, cross-entropy) и оптимизаторы не гарантируют идеальную калибровку.
➡️ Модели могут быть избыточно уверены (overconfident), особенно глубокие нейросети с ReLU и batch normalization.
➡️ Недостаток данных или несбалансированность классов искажает распределение вероятностей.

Методы исправления

Постобработка:
➡️ Плацинг (Platt Scaling) — логистическая регрессия по выходам модели.
➡️ Изотоническая регрессия — монотонная калибровка.
➡️ Температурное шкалирование (Temperature Scaling) — масштабирование логитов перед softmax.

Встроенные методы:
➡️ Использование бэйесовских моделей или методы, учитывающие неопределённость (например, dropout в режиме теста).
➡️ Обучение с учётом калибровки (calibration-aware loss).

Библиотека собеса по Data Science
Please open Telegram to view this post
VIEW IN TELEGRAM
1
👉 Почему в задачах с имбалансом классов часто возникает проблема маскировки (masking) при обучении, и как с ней бороться

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

Почему возникает:
➡️ Стандартные функции потерь (например, cross-entropy) суммируют ошибки по всем объектам без учёта дисбаланса. Большой класс «перекрывает» вклад маленького, и градиенты, связанные с редким классом, оказываются незначительными.

➡️ При классическом обучении модель «ленится» выделять сложные и редкие паттерны, так как проще минимизировать ошибку на доминирующем классе.

Как бороться:
➡️ Взвешивание классов — увеличить вес ошибки на редком классе в функции потерь.
➡️ Использование специализированных функций потерь, например, focal loss, которая уменьшает вклад легко классифицируемых объектов и фокусируется на трудных.
➡️ Семплирование: oversampling редких классов или undersampling частых, чтобы выровнять распределение.
➡️ Генерация синтетических данных (SMOTE, ADASYN) для редких классов.
➡️ Использование ансамблей, где отдельные модели могут специализироваться на редких классах.

Библиотека собеса по Data Science
Please open Telegram to view this post
VIEW IN TELEGRAM
2
☝️ Последний шанс купить курсы Proglib Academy с доступом навсегда!

Это не просто летняя распродажа, это финал эпохи. Мы дарим скидку 40% на все курсы, включая полностью обновлённый курс по Python (предложение НЕ ДЕЙСТВУЕТ только на курс по AI-агентам для DS-специалистов).

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

👉 Выбрать курс
2
Как взаимосвязаны информационная энтропия и функции потерь в машинном обучении

Информационная энтропия — это мера неопределённости. Чем выше энтропия, тем больше «хаоса» в распределении: например, если модель предсказывает 50/50 между двумя классами, она максимально неуверенна.

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

😶‍🌫️Некоторые функции потерь — например, кросс-энтропия — специально построены так, чтобы наказывать модель за неуверенность, особенно если она неуверенно ошибается.

Если модель говорит:
«Я почти уверен, что это класс А»,
а на самом деле правильный ответ — класс B,
то функция потерь даст сильное наказание.

А если она ошибается, но честно признаётся:
«Я не знаю, вероятно, 50/50 между A и B»,
то наказание будет мягче.

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


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

Неопределённость в предсказаниях модели может иметь разные причины, и важно понимать, откуда она берётся:

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

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

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

Библиотека собеса по Data Science
Please open Telegram to view this post
VIEW IN TELEGRAM
2👍1
📍 Почему важно учитывать «индуктивные смещения» (inductive biases) при выборе архитектуры модели

Индуктивное смещение — это всё, что модель предполагает о данных до обучения: структура, ограничения, способ обработки информации. Любая модель не учится «с нуля» — она делает предположения о том, как устроен мир.

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

Почему это важно:
➡️ Помогает эффективно использовать данные: хорошее смещение направляет обучение.
➡️ Позволяет сократить переобучение: модель не тратит усилия на бессмысленные гипотезы.
➡️ Даёт более интерпретируемое поведение, если смещение явно соответствует задаче.

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