Перейти к содержимому
На этой странице

Валидация и метрики качества

Все темы Data Scientist

Подтемы:

Чем тестовая выборка отличается от валидационной?

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

Тестовая выборка (Test Set):

  • Используется для окончательной оценки качества модели после ее обучения и настройки.

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

  • Помогает оценить, насколько хорошо модель обобщает данные, которые она ранее не видела.

Валидационная выборка (Validation Set):

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

  • Помогает выбирать лучшие параметры модели и предотвращать переобучение.

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


Как настроить early stopping без утечки из test set?

Early stopping настраивают по метрике отдельной validation-выборки: задают направление улучшения, patience, min_delta и сохранение лучшего checkpoint. Последняя эпоха не обязательно лучшая, поэтому после остановки восстанавливают лучшие веса. Validation уже участвует в выборе числа итераций и считается частью обучения. Test set не просматривают до фиксации модели и порога, а затем используют один раз для финальной оценки. Для временных или групповых данных сам split тоже должен исключать утечку.


Когда при разбиении данных нужна стратификация?

Стратификация нужна, когда важно сохранить доли классов или других заранее выбранных страт в train, validation и test. Она особенно полезна при редком классе и небольшой выборке, где случайный split может почти не оставить положительных объектов в одном наборе. Слишком мелкие или многомерные страты становятся нестабильными. Стратификация не заменяет group split: связанные объекты нельзя разносить между наборами. Для временных данных приоритет имеет порядок времени, даже если доли классов получатся разными.


Какие метрики вы применяли для оценки результатов классификации и кластеризации?

Для оценки результатов классификации часто используются следующие метрики:

Для бинарной классификации:

  • Точность (Accuracy)

  • Полнота (Recall)

  • Точность (Precision)

  • F1-мера (F1-score)

  • AUC-ROC (Area Under the Receiver Operating Characteristic Curve)

Для многоклассовой классификации:

  • Матрица ошибок (Confusion Matrix)

  • Макро и микро F1-мера

  • Взвешенная точность и полнота

Для оценки результатов кластеризации часто используются следующие метрики:

  1. Silhouette Score: Измеряет, насколько объект хорошо согласуется со своим кластером по сравнению с другими кластерами.

  2. Davies-Bouldin Index: Мера сходства внутри кластера и различия между кластерами. Чем меньше значение, тем лучше разделение.

  3. Calinski-Harabasz Index: Оценивает плотность и разделение между кластерами.

  4. Adjusted Rand Index (ARI): Измеряет сходство между двумя кластерными разбиениями, учитывая случайные перестановки.


Что такое MAPE?

MAPE (Mean Absolute Percentage Error) - это метрика оценки точности прогнозирования, которая измеряет среднее абсолютное процентное отклонение между прогнозируемыми и фактическими значениями. Это выражается в процентах и позволяет оценить точность модели прогнозирования, особенно при работе с временными рядами и прогнозировании количественных значений. Чем ниже значение MAPE, тем лучше модель.


Вычислить кумулятивную сумму для определенной метрики по месяцам.

Решение:
import pandas as pd

# Загрузка данных
data = pd.read_csv("your_data.csv")

# Преобразование столбца с датой в формат даты
data['date'] = pd.to_datetime(data['date'])

# Сортировка данных по дате
data = data.sort_values('date')

# Группировка данных по месяцам и вычисление кумулятивной суммы
data['cumulative_metric'] = data.groupby(data['date'].dt.to_period('M'))['metric'].cumsum()

Как выбрать метрику классификации под задачу?

Метрику выбирают по типу прогноза и цене ошибок. Если классы сбалансированы и ошибки сопоставимы, подойдёт accuracy. При дорогих ложных срабатываниях смотрят precision, при дорогих пропусках смотрят recall; нужный компромисс задают $F_\beta$. Формулы этих метрик выводятся из матрицы ошибок.

Для качества ранжирования без фиксированного порога используют ROC-AUC, а при редком положительном классе обычно информативнее PR-AUC. Если важны сами вероятности, оценивают log loss или Brier score и отдельно проверяют калибровку. В многоклассовой задаче заранее выбирают macro-, weighted- или micro-усреднение: macro одинаково учитывает классы, weighted учитывает их частоты, micro агрегирует все объекты.

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


Когда применять метрику accuracy вместо loss в машинном обучении?

Метрика accuracy обычно используется для оценки качества модели в случае задач классификации, когда интересует доля правильных предсказаний по всей выборке. Это особенно полезно, когда классы в данных сбалансированы. Однако, метрика accuracy может давать искаженные результаты в случае несбалансированных классов, поэтому в таких случаях часто предпочтительнее использовать другие метрики, такие как precision, recall или F1-score. Loss-функции, напротив, обычно используются в процессе обучения модели для оптимизации параметров на основе разницы между предсказанными и истинными значениями.


Почему MSE сильнее MAE реагирует на выбросы?

MAE растет линейно: ошибка 10 в десять раз дороже ошибки 1. MSE возводит ошибку в квадрат, поэтому тот же промах становится в сто раз дороже и несколько выбросов могут определять обучение и оценку. MSE имеет квадратные единицы таргета; RMSE возвращает исходные единицы, сохраняя сильный штраф за большие ошибки. На выбор влияют выбросы и реальная цена крупных промахов. Для устойчивости также рассматривают Huber loss.


Почему MRR плохо оценивает качество длинного списка рекомендаций?

MRR для каждого запроса берет только обратный ранг первого релевантного результата: позиция 1 дает 1, позиция 10 дает 0,1. Второй и последующие релевантные объекты не меняют оценку. Поэтому две выдачи с одинаковым первым попаданием, но совершенно разным остальным top-K, имеют одинаковый MRR. Метрика уместна в задачах с одним нужным ответом. Для качества длинного списка чаще используют MAP, Recall@K или NDCG@K, которая учитывает позиции нескольких релевантных результатов.


Симметрична ли MAPE к недопрогнозу и перепрогнозу?

MAPE несимметрична из-за факта в знаменателе. Для факта 100 прогнозы 80 и 120 оба дают 20%, но если сравнивать взаимно обратные ошибки, прогноз 100 при факте 80 дает 25%, а прогноз 80 при факте 100 дает 20%. При нуле MAPE не определена, а около нуля становится нестабильной. В зависимости от задачи рассматривают MAE, WAPE, MASE или RMSLE. Альтернатива тоже требует проверки: например, sMAPE имеет собственные пограничные эффекты.


Напишите формулу для метрик Recall и F1

Формула для Recall (Полноты) выглядит так:

Recall=TPTP+FN\text{Recall} = \frac{TP}{TP + FN}

где:

  • TPTP — количество истинно положительных результатов (true positives),

  • FNFN — количество ложно отрицательных результатов (false negatives).

Формула для F1 Score (F1-меры), которая является гармоническим средним между точностью (Precision) и полнотой (Recall), выглядит следующим образом:

F1=2×Precision×RecallPrecision+RecallF1 = 2 \times \frac{\text{Precision} \times \text{Recall}}{\text{Precision} + \text{Recall}}

где:

  • Precision=TPTP+FP\text{Precision} = \frac{TP}{TP + FP},

  • Recall=TPTP+FN, \text{Recall} = \frac{TP}{TP + FN},
  • FPFP — количество ложно положительных результатов (false positives).


Расскажите про Confusion Matrix.

Confusion Matrix (матрица ошибок) — это инструмент, используемый для оценки производительности модели классификации. Она визуализирует, как модель классифицирует объекты по сравнению с их истинными метками. Матрица состоит из четырех различных комбинаций предсказанных и истинных классов:

  1. True Positive (TP): Количество правильно классифицированных положительных случаев.

  2. True Negative (TN): Количество правильно классифицированных отрицательных случаев.

  3. False Positive (FP): Количество отрицательных случаев, ошибочно классифицированных как положительные.

  4. False Negative (FN): Количество положительных случаев, ошибочно классифицированных как отрицательные.

Структура матрицы обычно следующая:
Предсказано Положительным Предсказано Отрицательным
Истинно Положительный True Positive (TP) False Negative (FN)
Истинно Отрицательный False Positive (FP) True Negative (TN)

У какой модели лучше ROC-AUC: 0.51, 0.65 или 0.88?

Модель с AUC-ROC 0.88 будет иметь более высокую предсказательную способность. AUC-ROC (Area Under the Receiver Operating Characteristic curve) измеряет способность модели различать между классами. Чем выше значение AUC-ROC, тем лучше модель разделяет классы и, следовательно, имеет более высокую предсказательную способность.


Что произойдёт с графиком если мы возведём все предсказания в квадрат?

Если предсказания неотрицательны, например вероятности от 0 до 1, возведение в квадрат сохраняет их порядок. ROC-кривая и AUC не изменятся, изменятся только пороги. Для оценок с отрицательными значениями порядок может измениться, поэтому инвариантность не гарантирована.


Что будет с графиком и метрикой если к предикту добавить константу?

При добавлении одной константы ко всем оценкам порядок сохраняется, поэтому ROC-кривая и AUC не изменятся. Изменятся пороги; метрики при фиксированном числовом пороге могут стать другими.


Расскажите о метрике ROC-AUC. Что означает значение 0.5 ROC-AUC?

Метрика ROC-AUC (Receiver Operating Characteristic - Area Under the Curve) измеряет качество бинарной классификации, оценивая способность модели разделять классы. ROC-AUC представляет собой площадь под кривой ROC (Receiver Operating Characteristic), которая отображает отношение между долей истинно положительных результатов (True Positive Rate) и долей ложно положительных результатов (False Positive Rate) при изменении порога классификации.

Значение ROC-AUC находится в диапазоне от 0 до 1. Чем ближе значение к 1, тем лучше модель отличает между классами: положительным и отрицательным. Значение 0.5 ROC-AUC говорит о том, что модель не различает между классами лучше, чем случайный выбор, что соответствует отсутствию дискриминирующей способности модели.


Как изменится roc_auc, если мы продублируем в выборке единицы 4 раза, а нули 7 раз?

Если мы продублируем единицы 4 раза и нули 7 раз в выборке, то ROC AUC не изменится, поскольку он оценивает порядок ранжирования классов, а не их абсолютные частоты. Как только порядок ранжирования останется неизменным, ROC AUC будет таким же, как и до дублирования.


Как строится ROC-AUC?

ROC-AUC

(Receiver Operating Characteristic - Area Under the Curve)

— это графический метод оценки качества бинарных классификаторов и состоит из двух основных компонентов: кривой ROC и площади под этой кривой (AUC).

Как строится кривая ROC:

  1. Оси графика: Ось X отображает False Positive Rate (FPR), а ось Y — True Positive Rate (TPR).

    • True Positive Rate (TPR), также известен как Recall или Sensitivity, рассчитывается как TPTP+FN\frac{TP}{TP + FN}.

    • False Positive Rate (FPR) рассчитывается как FPTN+FP\frac{FP}{TN + FP}.

  2. Пороги классификации: Для построения кривой ROC модель применяется к данным, чтобы получить оценки вероятностей принадлежности к положительному классу. Затем изменяется порог, при котором предсказания считаются положительными, от низкого к высокому. Для каждого порога вычисляются значения TPR и FPR.

  3. График: Каждая пара значений (FPR, TPR), полученная в результате изменения порога, отмечается на графике, образуя кривую.

AUC (Area Under the Curve):

  • AUC — это мера, которая позволяет оценить, насколько хорошо модель способна различать классы. Значение AUC лежит в диапазоне от 0 до 1, где 1 означает идеальное различение классов, а 0.5 — что модель не имеет дискриминационной способности (работает на уровне случайных предсказаний).

Значение ROC-AUC:

ROC-AUC широко используется для оценки и сравнения моделей, поскольку площадь под кривой ROC не зависит от конкретного порога классификации и позволяет увидеть, насколько хорошо модель управляется с различением классов при разных уровнях чувствительности и специфичности.


Как вообще интерпретировать PR-AUC или ROC-AUC?

Площадь под PR-кривой (PR AUC) и площадь под ROC-кривой (ROC AUC) являются метриками оценки качества модели классификации.

  1. PR AUC (площадь под PR-кривой): Оценивает качество модели, учитывая точность и полноту. Чем выше PR AUC, тем лучше модель способна находить положительные классы и минимизировать ложные срабатывания.

  2. ROC AUC (площадь под ROC-кривой): Оценивает способность модели различать между классами. ROC AUC показывает отношение между долей истинно положительных и долей ложно положительных предсказаний при различных пороговых значениях. Чем выше ROC AUC, тем лучше модель различает между классами.

Интерпретация:

  • PR AUC: более высокое значение обычно лучше при оценке на одной выборке. Базовый уровень precision случайного ранжирования равен доле положительного класса, поэтому универсального ориентира 0.5 нет. При сравнении уточняйте, используется площадь с интерполяцией или Average Precision.

  • ROC AUC: Чем больше значение ROC AUC, тем лучше модель. Значение 0.5 также означает случайное угадывание, а значение 1 означает идеальную модель.


Что произойдёт с ROC-AUC если помножить предсказания на константу?

При умножении на положительную константу ROC-AUC не меняется. Отрицательная константа обращает порядок, и AUC становится 1 − AUC при стандартном учёте совпадений. Умножение на ноль делает все оценки равными и даёт AUC 0.5, если в выборке есть оба класса.


Расскажите про PR-кривую и как она строится.

PR-кривая (Precision-Recall curve) является инструментом для оценки производительности модели в задачах классификации, особенно в случаях, когда классы в данных несбалансированы. Она показывает отношение между точностью (precision) и полнотой (recall) модели при различных пороговых значениях для принятия решения.

  1. Точность (Precision): Это доля истинно положительных результатов среди всех положительных результатов, предсказанных моделью. Формула: TP(TP+FP)\frac {TP} {(TP + FP)}, где TP - количество истинно положительных предсказаний, а FP - количество ложно положительных предсказаний.

  2. Полнота (Recall): Это доля истинно положительных результатов среди всех реальных положительных результатов в данных. Формула: TP(TP+FN)\frac {TP} {(TP + FN)}, где TP - количество истинно положительных предсказаний, а FN - количество ложно отрицательных предсказаний.

PR-кривая строится путем изменения порогового значения для классификации и подсчета точности и полноты при каждом значении порога. Затем эти точки объединяются в кривую, где по оси X отображается полнота, а по оси Y - точность.

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

Собеседования: Data Science

Смотри записи интервью, узнай, какие вопросы задают и как отвечают кандидаты.

Вопросы и ответы

Не нашли ответ? Напишите мне в чат. Я делаю Шпаргалку и сам отвечаю на сообщения. Расскажите, что не работает или чего вам не хватает. Может, смогу сразу взять это в работу.

Откуда взяты вопросы?

Из реальных собеседований. Основой подборки стал опыт Вадима Новосёлова: он проходил интервью и записывал вопросы. Подробнее о материалах.

Насколько эти вопросы актуальны?

Эти вопросы встречались нам на реальных собеседованиях в 2025 году. Мы регулярно проходим собеседования и пополняем подборку новыми вопросами. Основы профессии и ключевые технологии остаются востребованными годами, а детали конкретных инструментов и версий стоит сверять с текущей документацией.

На какой уровень рассчитана подборка?

Мы проходили собеседования на вакансии уровня Middle+, а иногда и на Senior-позиции. Вопросы из этих интервью вошли в подборку. Направления работы: Data Scientist, ML-инженер. Глубина обсуждения зависит от вакансии: будь готов объяснить основную идею, привести практический пример и разобрать ограничения и альтернативы решения.

Этот вопрос точно будет на моём собеседовании?

Гарантии нет: набор вопросов зависит от компании, задач команды, уровня вакансии и самого интервьюера. Эти вопросы уже встречались на реальных собеседованиях, но на твоём интервью ту же тему могут проверить другой формулировкой, практической задачей или обсуждением твоего опыта. Используй подборку, чтобы разобраться в теме: объясняй идею своими словами, приводи примеры и готовься обсудить ограничения и альтернативы решения. Так будет проще ответить и на знакомый вопрос, и на неожиданные уточнения.