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

Признаки, предобработка и выбросы

Все темы Data Scientist

Подтемы:

Что делать если много признаков?

Если у вас много признаков, можно рассмотреть следующие подходы:

  1. Выбор признаков (Feature Selection) : Отбор наиболее важных признаков с помощью методов, таких как анализ важности признаков или алгоритмы отбора признаков, чтобы уменьшить размерность и улучшить производительность модели.

  2. Методы снижения размерности (Dimensionality Reduction): Применение методов снижения размерности, таких как PCA (Principal Component Analysis) или t-SNE (t-distributed Stochastic Neighbor Embedding), чтобы сократить количество признаков, сохраняя при этом наибольшую часть информации.

  3. Регуляризация (Regularization): Использование методов регуляризации, таких как L1 или L2 регуляризация, для уменьшения весов признаков и отбора наиболее информативных признаков.

  4. Инженерия признаков (Feature Engineering): Создание новых признаков на основе имеющихся данных, чтобы улучшить представление и повысить информативность модели.


Какие существуют методы отбора признаков?

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

  1. Отбор на основе важности признаков (Feature Importance): Использование моделей, таких как случайный лес или градиентный бустинг, для оценки важности каждого признака и выбора наиболее информативных.

  2. Отбор признаков на основе статистических тестов: Использование статистических тестов, таких как t-тест или анализ дисперсии (ANOVA), для оценки значимости признаков и отбора тех, которые значимо связаны с целевой переменной.

  3. Рекурсивное исключение признаков (Recursive Feature Elimination, RFE): Итеративный процесс, в котором модель обучается на полном наборе признаков, а затем исключаются наименее важные признаки, повторяя процесс до достижения определенного критерия.

  4. Отбор признаков на основе вложений (Embedded Feature Selection): Использование моделей, которые сами по себе выполняют отбор признаков, таких как L1 -регуляризация в линейных моделях или методы отбора признаков в ансамблях моделей.

  5. Отбор признаков на основе информационных критериев: Использование информационных критериев, таких как AIC (Akaike Information Criterion) или BIC (Bayesian Information Criterion), для сравнения моделей с разными наборами признаков и выбора наилучшей модели.


Что такое permutations importance?

Пермутационная важность (Permutation Importance) - это метод оценки важности признаков в модели машинного обучения путем перестановки значений каждого признака и измерения изменения в метрике качества модели. Кратко говоря, этот метод позволяет оценить влияние каждого признака на предсказания модели путем измерения изменения в производительности модели при случайной перестановке значений данного признака.


Чем различаются One-hot, Label, Helmert и Frequency Encoding?

Вот сравнение этих методов кодирования категориальных переменных:

  1. One-hot Encoder: Создает новый бинарный признак для каждой уникальной категории исходного признака. Используется, когда порядок категорий не имеет значения.

  2. LabelEncoder в scikit-learn кодирует целевые метки y. Для категориальных признаков X используют OrdinalEncoder; при смысловом порядке категорий его задают явно.

  3. Helmert Encoding: задаёт контрасты между уровнями категории. В реализации category_encoders каждый уровень сравнивается со средним предыдущих уровней через фиксированную матрицу кодирования. Это не вычисление средних целевой переменной и не сравнение только с одной предыдущей категорией.

  4. Frequency Encoder: Заменяет каждую категорию на частоту ее встречаемости в исходном признаке. Может быть полезным, если частота категорий важна для модели.


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

Часто используемые методы для преобразования категориальных переменных:

  1. One-hot Encoding: Для переменных без упорядоченных категорий, где каждая категория равнозначна.

  2. Label Encoding: Для переменных с упорядоченными категориями или когда порядок имеет значение.

  3. Target Encoding: заменяет категорию оценкой целевой переменной, например средним y. Чтобы избежать утечки, кодирование обучающих строк рассчитывают без их собственных целевых значений, обычно через кросс-валидацию.


Как ordered target statistics в CatBoost снижают target leakage?

Обычный mean encoding может включить таргет самой строки и завысить качество. CatBoost строит target statistics по случайным перестановкам: для обучающего объекта использует только предыдущие объекты перестановки, добавляя prior и сглаживание для редких категорий. Так собственный таргет строки не попадает в ее кодировку. Модель также комбинирует категориальные признаки. Механизм не защищает от внешних утечек в агрегатах, join и split, поэтому временную и групповую валидацию все равно проектируют отдельно.


Когда дереву решений нужно кодирование категориальных признаков?

Это зависит от реализации. Дерево математически может делить категории, но sklearn.tree ожидает числовые признаки, поэтому нужен encoder. Для номинальной категории ordinal encoding навязывает искусственный порядок; one-hot честнее по смыслу, но раздувает пространство при высокой кардинальности. CatBoost и некоторые бустинги поддерживают категории нативно. Encoder обучают только на train, target encoding делают cross-fitted, а для новых категорий заранее задают обработку. Настоящие порядковые шкалы можно кодировать порядковыми числами.


Как корректно подать категориальные признаки в линейную модель?

Для номинальных категорий обычно используют one-hot encoding. Одну категорию можно сделать reference level, особенно в нерегуляризованной модели с intercept, чтобы избежать линейной зависимости колонок. Label encoding для номинальных значений создает ложный числовой порядок. При высокой кардинальности применяют группировку редких значений, hashing или cross-fitted target encoding. Encoder обучают только на train и настраивают обработку неизвестных категорий. Масштаб коэффициента и регуляризация влияют на их интерпретацию.


Приведите методы преобразования ненормального распределения к нормальному.

Основные методы преобразования ненормального распределения к нормальному:

  1. Преобразование Бокса-Кокса (Box-Cox Transformation): Это семейство преобразований, которое преобразует данные так, чтобы они приближались к нормальному распределению. Он зависит от параметра λ, который можно подобрать для оптимального преобразования.

  2. Преобразование Йео-Джонсона (Yeo-Johnson Transformation): Это обобщение преобразования Бокса-Кокса, которое также может работать с отрицательными значениями и нулями.

  3. Квантильное преобразование: сначала оценивает положение значения в эмпирическом распределении, затем отображает его в выбранное распределение, например нормальное. В QuantileTransformer для этого задают output_distribution=“normal”.

  4. RobustScaler центрирует данные по медиане и масштабирует по межквартильному размаху. Он устойчив к выбросам, но не превращает распределение в нормальное.


Как работает WOE и когда его применяют вместо исходного числового признака, например возраста?

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

Преимущества метода WOE :
  1. Позволяет учитывать монотонную зависимость между категориальными переменными и целевой переменной.

  2. Помогает уловить нелинейные отношения между переменными.

  3. Устойчив к выбросам и пропущенным значениям.

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


Какие методы поиска выбросов вы знаете?

Некоторые методы поиска выбросов:

  1. Метод межквартильного размаха (IQR) : Определяет выбросы как значения, находящиеся за пределами интервала Q1−1.5×IQRиQ3+1.5×IQRQ1−1.5×IQR и Q3+1.5×IQR, где Q1Q1 - первый квартиль, Q3Q3 - третий квартиль, а IQRIQR - межквартильный размах.

  2. Z-оценка (Z-score): Оценивает, насколько значение отклоняется от среднего значения в единицах стандартного отклонения. Значения, сильно отклоняющиеся от среднего на основе Z-оценки, могут быть выбросами.

  3. Local Outlier Factor (LOF): Сравнивает локальную плотность объекта с плотностями соседей. Чем больше LOF, тем подозрительнее объект. В scikit-learn атрибут negative_outlier_factor_ хранит отрицательный LOF, поэтому у выбросов он ниже.

  4. Изолирующий лес (Isolation Forest): Основанный на идее того, что выбросы имеют более короткие пути в деревьях решений, чем нормальные наблюдения. Алгоритм строит лес случайных деревьев и измеряет среднюю длину пути до выбранного объекта.

  5. DBSCAN

    (Density-Based Spatial Clustering of Applications with Noise)

    : Кластеризует точки пространства данных на основе их плотности. Точки, не попадающие в какой-либо кластер, считаются выбросами.


Какие типы средних являются наиболее устойчивыми к выбросам?

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

  1. Медиана: Показывает значение, которое находится посередине упорядоченного набора данных. Она не зависит от точных значений выбросов и использует только порядок данных.

  2. Межквартильный размах (IQR): Это разница между третьим (75-й процентиль) и первым (25-й процентиль) квартилями. Поскольку он использует ранжированные значения, он менее подвержен влиянию выбросов, чем среднее значение.

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

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

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

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

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

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

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

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

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

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

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

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