Масштабирование признаков перед разделением на обучающую/тестовую выборки.
→Сначала разделите, затем подгоните преобразователи только к обучающей выборке и примените (`transform`) к тестовой. Оберните шаги в scikit-learn Pipeline.
Почему: Подгонка к полному набору данных приводит к утечке тестовой статистики в обучение и завышает оценочные баллы.
Числовой столбец имеет 8% пропущенных значений.
→Импутируйте медианой (устойчивой к асимметрии) через `SimpleImputer`; рассмотрите флаг индикатора пропусков.
Почему: Медиана устойчива к выбросам; индикатор сохраняет сигнал, когда само отсутствие является информативным.
Категориальный столбец имеет пробелы.
→Импутируйте модой или явной категорией «Неизвестно» / «Отсутствует».
Почему: Явная категория сохраняет схему отсутствия как полезный сигнал, а не отбрасывает строки.
Номинальный признак с низкой мощностью (например, регион с 5 значениями).
→Примените однократное кодирование (`OneHotEncoder`); отбросьте один столбец, если модель не нуждается в коллинеарности.
Почему: Однократное кодирование позволяет избежать наложения ложного порядка на номинальные категории; отбрасывание уровня предотвращает ловушку фиктивных переменных.
Признак имеет естественный порядок (низкий / средний / высокий).
→Используйте порядковое кодирование, которое сохраняет ранг.
Почему: Однократное кодирование отбросило бы порядок; кодирование с учетом ранга позволяет модели использовать его.
Категориальный признак с тысячами уровней (например, почтовый индекс).
→Используйте целевое/частотное кодирование или группировку, а не однократное кодирование.
Почему: Однократное кодирование взрывает размерность; целевое кодирование компактно, но должно быть подогнано внутри CV, чтобы избежать утечки.
Признаки охватывают очень разные масштабы перед моделью, основанной на расстоянии.
→StandardScaler (нулевое среднее, единичная дисперсия) для примерно гауссовых признаков; MinMaxScaler для ограничения [0,1].
Почему: KNN, SVM, PCA и градиентный спуск чувствительны к масштабу; древовидные модели — нет.
Положительный признак с правым скосом вредит линейной модели.
→Примените логарифмическое или степенное преобразование Box-Cox/Yeo-Johnson для сжатия хвоста.
Почему: Уменьшение асимметрии стабилизирует дисперсию и линеаризует отношения для линейных и дистанционных моделей.
Хотите зафиксировать нелинейный эффект возраста в линейной модели.
→Разделите непрерывный признак на диапазоны (равной ширины или квантильные) и трактуйте как категориальный.
Почему: Биннинг позволяет линейным моделям фиксировать ступенчатые изменения, ценой некоторой потери информации.
Истинные экстремальные значения дестабилизируют обучение модели.
→Ограничьте/винсоризуйте по процентилю или используйте робастный масштабировщик; удаляйте только подтвержденные ошибки.
Почему: Ограничение уменьшает влияние экстремальных значений, сохраняя записи; удаление теряет реальный сигнал редких событий.
Положительный класс составляет всего 3% обучающих строк.
→Передискретизация — SMOTE/передискретизация меньшинства или недодискретизация большинства — подгонка только на обучающем фолде; или установка весов классов.
Почему: Балансировка тестовой выборки даст ложный результат; передискретизация должна быть внутри конвейера обучения.
Исходные временные метки и суммы показывают низкую производительность.
→Создавайте признаки — день недели, время с последнего события, соотношения, агрегаты по клиенту.
Почему: Производные признаки, основанные на предметной области, часто дают больший прирост, чем замена алгоритма.
Сотни признаков, многие из которых избыточны или зашумлены.
→Выбирайте с помощью методов фильтрации (корреляция/взаимная информация), обертки (RFE) или встроенных (L1/важность деревьев).
Почему: Меньшее количество релевантных признаков снижает переобучение, стоимость обучения и улучшает интерпретируемость.
Множество коррелированных числовых признаков замедляют обучение и приводят к переобучению.
→Примените PCA для проецирования на главные компоненты, захватывающие большую часть дисперсии; сначала масштабируйте.
Почему: PCA устраняет мультиколлинеарность и сжимает размерность, обменивая некоторую интерпретируемость на стабильность.
Несколько шагов предварительной обработки должны применяться идентично при обучении и обслуживании.
→Свяжите импутаторы, кодировщики и масштабировщики в `Pipeline` / `ColumnTransformer`, подогнанные только на обучающих данных.
Почему: Единый подогнанный конвейер гарантирует согласованные преобразования и предотвращает утечку между фолдами.
Источник↗
Столбец с исходной датой имеет небольшую предсказательную ценность.
→Разложите на год, месяц, день недели, признак выходного дня и циклические sin/cos кодировки.
Почему: Модели не могут считывать календарную семантику из исходной временной метки; явные части выявляют сезонность.