Подготовка данных для ML

Корпоративное обучениеОбучите команду работать с ИИПрограммы под ваш запрос — от основ до внедрения.Подробнее →

Начните с выгрузки сырых данных из проверенных источников. Используйте SQL-запросы для извлечения информации из баз данных, CSV-файлы для статических наборов или API-интерфейсы (например, Twitter API для текстовых данных). Проверьте лицензионные ограничения: например, изображения из Flickr должны соответствовать правилам Creative Commons.

Проверьте аномалии в первых 1000 строк. Примените df.describe() в Pandas для выявления отклонений в числовых признаках. Для категориальных данных используйте df.value_counts(), чтобы найти редкие метки (менее 1% от общего объема). Автоматизируйте удаление дубликатов через df.drop_duplicates(subset=[‘email’]).

Онлайн-форумРЕФОРУМ: будущее без шумаЭксперты-практики о технологиях, навыках и трендах.Смотреть →

Нормализуйте числовые признаки до единого масштаба. Для нейросетей применяйте MinMaxScaler(feature_range=(0,1)), для линейных моделей – StandardScaler(). Категории преобразуйте через OneHotEncoder(), если классов меньше 10, или TargetEncoder(), если больше. Для временных рядов добавьте lag-признаки: df[‘lag_1’] = df[‘price’].shift(1).

Разделите данные на три группы: 60% – обучение, 20% – валидация, 20% – тест. Для временных рядов сохраняйте хронологический порядок. Используйте StratifiedKFold(), если целевая переменная несбалансирована (например, 95% класса «0» и 5% класса «1»). Экспортируйте наборы в отдельные файлы: train.csv, val.csv, test.csv.

Добавьте автоматические проверки перед передачей данных в модель. Напишите скрипт, который проверяет совпадение типов признаков в train и test (dtypes), допустимые диапазоны значений (assert df[‘age’].between(0, 120).all()), отсутствие NaN в целевом столбце. Зафиксируйте версию датасета через DVC или MLflow.

Сбор исходных данных и устранение пропущенных значений

Определите источники данных: открытые репозитории (Kaggle, UCI Machine Learning Repository), внутренние базы данных компании или API сторонних сервисов. Используйте библиотеки Python (requests, Scrapy) для автоматизации парсинга.

Проверьте данные на пропуски:

  • Используйте метод .isnull().sum() в pandas для подсчета пропущенных значений по каждому столбцу.
  • Если пропуски составляют менее 5% данных – удалите строки с помощью .dropna().
  • При высоком проценте пропусков (>20%) рассмотрите удаление столбца или генерацию синтетических данных через алгоритмы SMOTE или KNNImputer.

Для заполнения пропусков:

  • Числовые данные: замена на медиану или среднее значение (.fillna(df['column'].median())).
  • Категориальные данные: добавьте отдельную категорию «Unknown» или используйте модуль SimpleImputer(strategy='most_frequent').
  • Временные ряды: заполните пропуски интерполяцией (.interpolate()).

Проверьте распределение данных после обработки. Если пропуски не случайны (например, связаны с определенной группой), добавьте бинарный признак-индикатор пропуска (df['column_missing'] = df['column'].isnull().astype(int)).

Для работы с текстовыми данными удалите пустые строки или замените их на стандартный токен («[MISSING]»). Используйте CatBoost или LightGBM, если пропуски содержат информацию для моделей, учитывающих NA как отдельное значение.

Преобразование признаков и настройка форматов данных для алгоритмов

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

  • One-Hot Encoding для номинальных категорий (например, города или цвета), если количество уникальных значений ≤15. Используйте pd.get_dummies() или OneHotEncoder.
  • Label Encoding для порядковых признаков (например, уровни образования: «школа»→0, «бакалавр»→1). Примените OrdinalEncoder с явным указанием порядка категорий.

Telegram-каналРЕФОРУМ в TelegramКоротко о будущем и технологиях — в вашей ленте.Подписаться →

Нормализуйте числовые признаки, если алгоритм чувствителен к масштабу (например, нейросети, метод опорных векторов):

  • Min-Max Scaling (MinMaxScaler) для данных в диапазоне [0,1], если распределение не нормальное.
  • Z-Score Standardization (StandardScaler) для признаков с выбросами, чтобы среднее = 0, стандартное отклонение = 1.

Обработайте пропущенные значения:

  • Для числовых данных: замена медианой (для распределений с выбросами) или средним (для нормальных распределений). Используйте SimpleImputer.
  • Для категориальных данных: добавьте категорию «Unknown» или используйте наиболее частую категорию.
  • Добавьте бинарный признак-индикатор пропуска (0/1) для сохранения информации.

Создайте производные признаки для улучшения интерпретируемости модели:

  • Комбинируйте числовые признаки: площадь квартиры = длина × ширина.
  • Разделите временные метки на компоненты: год, месяц, день недели из даты.
  • Для текстов: выделите длины строк, количество чисел или специальных символов.

КурсРекрутмент с ИИЗакрывайте вакансии быстрее с помощью нейросетей.О курсе →

Форматируйте данные для специфических алгоритмов:

  • Древовидные модели (Random Forest, XGBoost): не требуют масштабирования, но чувствительны к дисбалансу классов.
  • Нейросети: преобразуйте все признаки в числовые, масштабируйте до диапазона [-1,1] или [0,1].
  • Алгоритмы кластеризации: удалите шумы с помощью DBSCAN или примените PCA для снижения размерности.
26.06.2025ТехнологииНавыки
Корпоративное обучениеРазвиваем команды под задачи бизнесаОт нейросетей и новых навыков до построения отделов — программы под ваш запрос.Подробнее →
Смотрите также
ТехнологииБизнес
Сравнение AI-ассистентов для бизнеса
Узнайте, как выбрать лучший AI-ассистент для вашего бизнеса, сравнив различные решения для оптимизации процессов.
ТехнологииНавыки
Что такое интеллектуальная собственность
Все немонетарные активы, принадлежащие физическим или юрлицам, защищенные на правовом уровне от использования извне, являются интеллектуальной собственностью. Это могут быть любые произведения искусства, литература, логотипы, изображения, наименования и прочие продукты, созданные интеллектом человека.
БудущееНавыки
Топ-5 востребованных профессий будущего
Выбор профессии – это очень ответственный момент. Конечно, в первую очередь нужно учитывать свои склонности и интересы, но нельзя и не принимать во внимание и востребованность профессии на рынке.
ТехнологииБизнес
Рейтинг ИИ-платформ для цифровой трансформации
Узнайте о лучших ИИ-платформах для цифровой трансформации бизнеса, которые помогут оптимизировать процессы и улучшить производительность.