Тестовое задание для Северсталь
Класс DataPreprocessor выполняет базовые операции по очистке и трансформации
табличных данных в формате pandas DataFrame: удаление и заполнение пропусков,
кодирование категориальных признаков, нормализация числовых столбцов.
Очистка данных от NaN значений:
- Удаление столбцов: Если доля пропусков превышает заданный порог (
threshold). - Заполнение пропусков:
- Для числовых данных: стратегии
'mean','median','mode'. - Для категориальных/строковых данных: всегда используется
'mode', независимо от выбранной стратегии.
- Для числовых данных: стратегии
Автоматическое преобразование строковых признаков (object, category) в числовой вид методом One-Hot Encoding.
Приведение числовых признаков к единому масштабу.
- Методы:
'minmax'- масштабирование в диапазон [0, 1].
'std'- Z-score стандартизация (используетсяddof=0).
- Бинарные столбцы, полученные после One-Hot Encoding, автоматически исключаются из нормализации, чтобы сохранить их интерпретируемость.
Класс реализует интерфейс, схожий с scikit-learn:
fit_transform()- вычисляет статистики на обучающей выборке и преобразует её.transform()- применяет те же самые параметры (сохраненные вPipelineState) к новым данным.