Признаки, предобработка и выбросы
Подтемы:
- Отбор признаков
- Обработка категориальных переменных
- Нормализация распределения
- Методы предобработки данных
- Поиск выбросов · часть 1
- Поиск выбросов · часть 2
Что делать если много признаков?
Если у вас много признаков, можно рассмотреть следующие подходы:
-
Выбор признаков
(Feature Selection): Отбор наиболее важных признаков с помощью методов, таких как анализ важности признаков или алгоритмы отбора признаков, чтобы уменьшить размерность и улучшить производительность модели. -
Методы снижения размерности
(Dimensionality Reduction): Применение методов снижения размерности, таких какPCA(Principal Component Analysis) илиt-SNE(t-distributed Stochastic Neighbor Embedding), чтобы сократить количество признаков, сохраняя при этом наибольшую часть информации. -
Регуляризация
(Regularization): Использование методов регуляризации, таких как L1 или L2 регуляризация, для уменьшения весов признаков и отбора наиболее информативных признаков. -
Инженерия признаков
(Feature Engineering): Создание новых признаков на основе имеющихся данных, чтобы улучшить представление и повысить информативность модели.
Ссылки для изучения
Примеры хороших ответов из реальных собеседований
- Middle Data Scientist | Выпуск 1. Секция ML | Собеседование | karpov.courses · 55:50–57:35Мок-собеседование · Совместный разбор
Кандидат обсуждает PCA, explained variance и другие проекционные методы при большом числе признаков.
Какие существуют методы отбора признаков?
Существует несколько методов отбора признаков, включая:
-
Отбор на основе важности признаков
(Feature Importance): Использование моделей, таких как случайный лес или градиентный бустинг, для оценки важности каждого признака и выбора наиболее информативных. -
Отбор признаков на основе статистических тестов: Использование статистических тестов, таких как t-тест или анализ дисперсии
(ANOVA), для оценки значимости признаков и отбора тех, которые значимо связаны с целевой переменной. -
Рекурсивное исключение признаков
(Recursive Feature Elimination, RFE): Итеративный процесс, в котором модель обучается на полном наборе признаков, а затем исключаются наименее важные признаки, повторяя процесс до достижения определенного критерия. -
Отбор признаков на основе вложений
(Embedded Feature Selection): Использование моделей, которые сами по себе выполняют отбор признаков, таких какL1-регуляризация в линейных моделях или методы отбора признаков в ансамблях моделей. -
Отбор признаков на основе информационных критериев: Использование информационных критериев, таких как
AIC(Akaike Information Criterion) илиBIC(Bayesian Information Criterion), для сравнения моделей с разными наборами признаков и выбора наилучшей модели.
Ссылки для изучения
Что такое permutations importance?
Пермутационная важность (Permutation Importance) - это метод оценки важности признаков в модели машинного обучения путем перестановки значений каждого признака и измерения изменения в метрике качества модели. Кратко говоря, этот метод позволяет оценить влияние каждого признака на предсказания модели путем измерения изменения в производительности модели при случайной перестановке значений данного признака.
Ссылки для изучения
Чем различаются One-hot, Label, Helmert и Frequency Encoding?
Вот сравнение этих методов кодирования категориальных переменных:
-
One-hot Encoder: Создает новый бинарный признак для каждой уникальной категории исходного признака. Используется, когда порядок категорий не имеет значения.
-
LabelEncoder в scikit-learn кодирует целевые метки y. Для категориальных признаков X используют OrdinalEncoder; при смысловом порядке категорий его задают явно.
-
Helmert Encoding: задаёт контрасты между уровнями категории. В реализации category_encoders каждый уровень сравнивается со средним предыдущих уровней через фиксированную матрицу кодирования. Это не вычисление средних целевой переменной и не сравнение только с одной предыдущей категорией.
-
Frequency Encoder: Заменяет каждую категорию на частоту ее встречаемости в исходном признаке. Может быть полезным, если частота категорий важна для модели.
Ссылки для изучения
Какие методы вы используете для преобразования категориальных переменных?
Часто используемые методы для преобразования категориальных переменных:
-
One-hot Encoding: Для переменных без упорядоченных категорий, где каждая категория равнозначна. -
Label Encoding: Для переменных с упорядоченными категориями или когда порядок имеет значение. -
Target Encoding: заменяет категорию оценкой целевой переменной, например средним y. Чтобы избежать утечки, кодирование обучающих строк рассчитывают без их собственных целевых значений, обычно через кросс-валидацию.
Ссылки для изучения
Примеры хороших ответов из реальных собеседований
- #28 Собеседование Data Scientist в Т-Банк | Теория + Лайфкодинг · 2:50–3:45Разбор интервью · Ответ кандидата
Кандидат различает типы категориальных признаков и объясняет one-hot и target encoding.
Как 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, а для новых категорий заранее задают обработку. Настоящие порядковые шкалы можно кодировать порядковыми числами.
Ссылки для изучения
Примеры хороших ответов из реальных собеседований
- #28 Собеседование Data Scientist в Т-Банк | Теория + Лайфкодинг · 2:55–3:45Разбор интервью · Ответ кандидата
Кандидат объясняет, когда категориальные признаки требуют encoding и когда модель поддерживает их нативно.
Как корректно подать категориальные признаки в линейную модель?
Для номинальных категорий обычно используют one-hot encoding. Одну категорию можно сделать reference level, особенно в нерегуляризованной модели с intercept, чтобы избежать линейной зависимости колонок. Label encoding для номинальных значений создает ложный числовой порядок. При высокой кардинальности применяют группировку редких значений, hashing или cross-fitted target encoding. Encoder обучают только на train и настраивают обработку неизвестных категорий. Масштаб коэффициента и регуляризация влияют на их интерпретацию.
Ссылки для изучения
Примеры хороших ответов из реальных собеседований
- #28 Собеседование Data Scientist в Т-Банк | Теория + Лайфкодинг · 3:00–3:40Разбор интервью · Ответ кандидата
Кандидат объясняет one-hot encoding категорий и упоминает target encoding как альтернативу.
Приведите методы преобразования ненормального распределения к нормальному.
Основные методы преобразования ненормального распределения к нормальному:
-
Преобразование Бокса-Кокса
(Box-Cox Transformation): Это семейство преобразований, которое преобразует данные так, чтобы они приближались к нормальному распределению. Он зависит от параметра λ, который можно подобрать для оптимального преобразования. -
Преобразование Йео-Джонсона
(Yeo-Johnson Transformation): Это обобщение преобразования Бокса-Кокса, которое также может работать с отрицательными значениями и нулями. -
Квантильное преобразование: сначала оценивает положение значения в эмпирическом распределении, затем отображает его в выбранное распределение, например нормальное. В QuantileTransformer для этого задают output_distribution=“normal”.
-
RobustScaler центрирует данные по медиане и масштабирует по межквартильному размаху. Он устойчив к выбросам, но не превращает распределение в нормальное.
Ссылки для изучения
Как работает WOE и когда его применяют вместо исходного числового признака, например возраста?
Метод взвешенных оценок (WOE) используется в задачах бинарной классификации для анализа влияния категориальных переменных на целевую переменную. Он преобразует категориальные переменные в числовые значения, которые отражают их влияние на целевую переменную.
WOE
:
-
Позволяет учитывать монотонную зависимость между категориальными переменными и целевой переменной.
-
Помогает уловить нелинейные отношения между переменными.
-
Устойчив к выбросам и пропущенным значениям.
Возраст можно использовать напрямую в логистической регрессии: тогда его вклад в логит линейный. Для нелинейной зависимости можно использовать интервалы, сплайны или WOE. WOE рассчитывают только по обучающим данным с защитой от утечки; пустые по классу интервалы требуют сглаживания. Монотонность зависит от выбранного разбиения, а не гарантируется самим преобразованием.
Ссылки для изучения
Какие методы поиска выбросов вы знаете?
Некоторые методы поиска выбросов:
-
Метод межквартильного размаха
(IQR): Определяет выбросы как значения, находящиеся за пределами интервала , где - первый квартиль, - третий квартиль, а - межквартильный размах. -
Z-оценка
(Z-score): Оценивает, насколько значение отклоняется от среднего значения в единицах стандартного отклонения. Значения, сильно отклоняющиеся от среднего на основе Z-оценки, могут быть выбросами. -
Local Outlier Factor (LOF): Сравнивает локальную плотность объекта с плотностями соседей. Чем больше LOF, тем подозрительнее объект. В scikit-learn атрибут negative_outlier_factor_ хранит отрицательный LOF, поэтому у выбросов он ниже.
-
Изолирующий лес
(Isolation Forest): Основанный на идее того, что выбросы имеют более короткие пути в деревьях решений, чем нормальные наблюдения. Алгоритм строит лес случайных деревьев и измеряет среднюю длину пути до выбранного объекта. -
DBSCAN
(Density-Based Spatial Clustering of Applications with Noise)
: Кластеризует точки пространства данных на основе их плотности. Точки, не попадающие в какой-либо кластер, считаются выбросами.
Ссылки для изучения
Какие типы средних являются наиболее устойчивыми к выбросам?
Для оценки центра устойчивы медиана и усечённое среднее. Межквартильный размах также устойчив, но измеряет разброс, а не среднее.
-
Медиана: Показывает значение, которое находится посередине упорядоченного набора данных. Она не зависит от точных значений выбросов и использует только порядок данных.
-
Межквартильный размах (IQR): Это разница между третьим (75-й процентиль) и первым (25-й процентиль) квартилями. Поскольку он использует ранжированные значения, он менее подвержен влиянию выбросов, чем среднее значение.
Ссылки для изучения







