Трансформация данных (Data Transformation)
Трансформация данных — это процесс преобразования исходных данных в форму, более подходящую для обучения и эффективной работы моделей машинного обучения и нейронных сетей.
Представьте, что вы готовите блюдо по рецепту. Сырые ингредиенты (овощи, мясо, крупы) — это исходные данные. Прежде чем положить их в кастрюлю или на сковороду, вы их моете, режете, отмеряете нужные пропорции, возможно, замачиваете или маринуете. Эти действия — аналог трансформации данных: вы преобразуете «сырой» материал в форму, пригодную для дальнейшего процесса (приготовления блюда / обучения модели).
Исторический контекст
Необходимость трансформации данных осознавалась с самых ранних этапов развития машинного обучения. Уже в 1950–1960‑х годах, при разработке перцептронов и первых алгоритмов классификации, исследователи сталкивались с проблемой неоднородности признаков (например, рост в сантиметрах и вес в килограммах). Постепенно сформировались стандартные приёмы: нормализация, стандартизация, кодирование категориальных переменных. В 1980–1990‑х годах с ростом сложности моделей и объёмов данных трансформация стала более систематизированной; появились библиотеки (например, в R и позже в Python) с готовыми функциями предобработки. Сегодня трансформация данных — ключевой этап пайплайна ML, часто автоматизируемый с помощью инструментов вроде Scikit-learn, TensorFlow Transform или Apache Spark MLlib.
Смежные понятия и различия
- Очистка данных (data cleaning) — устраняет ошибки, пропуски, выбросы; часто предшествует трансформации.
- Выбор признаков (feature selection) — отбирает подмножество наиболее информативных признаков; трансформация же изменяет сами признаки.
- Извлечение признаков (feature extraction) — создаёт новые признаки (например, через PCA); трансформация может включать извлечение, но шире по охвату.
Примеры использования
- Нормализация (приведение к диапазону [0, 1]) — часто применяется для изображений перед подачей в свёрточные сети (CNN).
- Стандартизация (вычитание среднего и деление на стандартное отклонение) — типична для табличных данных перед обучением логистической регрессии или SVM.
- Одногорячее кодирование (one-hot encoding) — преобразует категориальные признаки (например, «красный», «зелёный», «синий») в бинарные векторы для ввода в нейронную сеть.
- Логарифмическое преобразование — смягчает влияние выбросов в данных с тяжёлыми хвостами (например, доходы пользователей).
- Аугментация данных (для изображений: поворот, обрезка, изменение яркости) — разновидность трансформации, увеличивающая объём обучающей выборки для CNN.
Популярные реализации
- В Python:
sklearn.preprocessing(StandardScaler, MinMaxScaler, OneHotEncoder),tensorflow.keras.preprocessing. - В Spark:
pyspark.ml.feature(StandardScaler, StringIndexer, OneHotEncoder).
