Ultralytics YOLO27: Вступи в список ожидания.
Лицензия YOLO
Назад к глоссарию Ultralytics

Feature Engineering

Конструирование признаков преобразует исходные данные в удобные для обучения модели входные данные с учётом предметной области. Основные методы, риски утечки данных, применение и код.

Инжиниринг признаков — это процесс создания, преобразования и отбора входных переменных, или признаков, на основе которых обучается модель машинного обучения. Для этого используют знания о предметной области и данных. Исходную временную метку преобразуют в час суток и день недели, список карточных транзакций — в сумму расходов клиента за последние 30 дней, а расстояние и продолжительность поездки — в скорость. Правильно подобранные признаки позволяют простой модели выявлять закономерности, которые иначе остались бы незамеченными. Особенно важны признаки для табличных данных и временных рядов, где модель может использовать только предоставленные ей столбцы. Модели глубокого обучения извлекают признаки непосредственно из исходных изображений, аудио и текста. Поэтому в этих областях инжиниринг признаков теперь в большей степени связан с подготовкой данных и созданием признаков на основе выходов модели.

Распространённые методы#

  • Масштабирование и нормализация: приведение признаков к нулевому среднему и единичной дисперсии не дает признакам с большими единицами измерения доминировать при вычислении расстояний и градиентном обучении, а логарифмическое преобразование сжимает асимметрично распределенные значения, например доходы или цены.
  • Кодирование категориальных данных: кодирование one-hot преобразует категорию, например цвет, в двоичные столбцы, а целевое кодирование заменяет каждую категорию средним целевым значением для этой категории. Среднее вычисляется на отдельных фолдах, чтобы при кодировании не раскрывалась метка самой строки.
  • Отношения и взаимодействия: отношение долга к доходу, цена за квадратный фут и индекс массы тела объединяют два исходных значения в величину, которая действительно влияет на результат.
  • Признаки даты и времени: час, день недели, месяц и признаки праздников выявляют циклы, а кодирование часа синусом и косинусом располагает 23:00 рядом с 00:00.
  • Лаги и скользящие окна: предыдущие значения, скользящие средние и подсчеты за последние интервалы предоставляют модели недавнюю историю датчика, учетной записи или продукта.
  • Разбиение на интервалы: группировка непрерывных значений по диапазонам, например по возрастным группам, помогает учитывать ступенчатые эффекты и ограничивает влияние экстремальных значений.
  • Снижение размерности с помощью PCA: метод главных компонент сжимает множество коррелирующих признаков до нескольких некоррелирующих.
  • Отбор признаков: фильтрующие методы ранжируют признаки по корреляции или взаимной информации с целевой переменной, оберточные методы проверяют подмножества признаков с помощью модели, а встроенные методы, такие как L1-регуляризация, удаляют признаки во время обучения.

Признак-отношение показывает, почему это работает. Дерево решений с ограниченной глубиной может разделять данные только по одному признаку за раз, поэтому по одной лишь дистанции и длительности оно плохо аппроксимирует правило «средняя скорость выше 90 км/ч», а после вычисления скорости — точно:

import numpy as np
from sklearn.model_selection import cross_val_score
from sklearn.tree import DecisionTreeClassifier

# 1,000 trips: raw distance (km) and duration (h); label = average speed above 90 km/h
rng = np.random.default_rng(0)
distance = rng.uniform(10, 300, 1000)
hours = rng.uniform(0.5, 4.0, 1000)
y = (distance / hours > 90).astype(int)

raw = np.column_stack([distance, hours])
engineered = (distance / hours).reshape(-1, 1)  # domain knowledge: speed = distance / time

tree = DecisionTreeClassifier(max_depth=2, random_state=0)
for name, X in [("Raw distance and duration", raw), ("Engineered speed", engineered)]:
    print(f"{name}: accuracy {cross_val_score(tree, X, y, cv=5).mean():.3f}")

При той же модели дерева глубины 2 точность перекрёстной проверки повышается с 0.861 для исходных значений дистанции и длительности до 1.000 для спроектированного признака скорости, потому что диагональная граница в пространстве «дистанция — длительность» превращается в один порог скорости.

Проверка признаков без утечки данных#

Признак допустим, только если его значение известно в момент предсказания. Модель оттока клиентов, использующая «количество обращений в службу поддержки за месяц после отмены подписки», или целевое кодирование, рассчитанное по всему набору данных, показывает хорошие результаты при тестировании, но не работает в продакшене — это разновидность утечки данных. Поэтому каждое преобразование с обучаемыми параметрами, например средними значениями масштабирования или кодировками категорий, подгоняется только на обучающих фолдах, как это автоматически делают конвейеры scikit-learn, а каждый новый признак сохраняется, только если он улучшает оценку при перекрёстной проверке. В продакшене каждый признак также нужно вычислять точно так же, как при обучении; хранилища признаков обеспечивают это, предоставляя обеим сторонам одни и те же определения признаков.

Проектирование признаков в компьютерном зрении#

В классическом компьютерном зрении использовались признаки, разработанные вручную: карты границ, дескрипторы ключевых точек SIFT и гистограммы ориентированных градиентов, по которым затем классификаторы, например метод опорных векторов, назначали метки. После победы AlexNet в конкурсе ImageNet в 2012 году свёрточные нейронные сети научились извлекать собственные карты признаков из пикселей, и инженерные усилия переключились на обучающие данные — через аугментацию данных — и на выходы моделей компьютерного зрения. Ultralytics SpeedEstimator строит признак скорости по результатам отслеживания объектов моделью YOLO26: когда у трека есть пять положений, он переводит смещение в пикселях между первым и последним положениями в метры с помощью масштаба meter_per_pixel и делит результат на прошедшее время, чтобы получить скорость в км/ч.

Применение#

  • Кредитный риск: кредиторы рассчитывают отношение долга к доходу, коэффициент использования кредитного лимита и количество месяцев с момента последнего пропуска платежа по исходным данным счетов. Эти признаки лучше предсказывают дефолт, чем исходные остатки.
  • Предиктивное обслуживание: Скользящие средние, скорости изменения и энергия в частотных диапазонах, рассчитанные по потокам вибрации и температуры, выявляют развивающийся износ до того, как какое-либо исходное показание превысит аварийный порог.
  • Обнаружение мошенничества: Признаки интенсивности, например количество транзакций по карте за последний час и расстояние между местом покупки и обычным местоположением владельца карты, позволяют отличить мошенничество от обычных трат.
  • Прогнозирование спроса: розничные модели объединяют для каждого магазина и товара лаги продаж, скользящие средние, изменения цен, признаки проведения акций и индикаторы праздников.
  • Извлечение признаков: Автоматически вычисляет признаки с помощью фиксированного алгоритма или обученной модели, например PCA или базовой сети нейронной сети. Эти два термина часто используют как синонимы, хотя проектирование признаков охватывает более широкий процесс, учитывающий предметную область.
  • Предварительная обработка данных: Очищает данные и приводит их к нужному формату: исправляет ошибки, заполняет пропущенные значения и преобразует типы. Этот этап предшествует разработке признаков.
  • Эмбеддинги: Плотные векторы, которые модель обучается формировать для представления слов, изображений или пользователей; в большинстве языковых систем и систем компьютерного зрения они заменяют признаки, созданные вручную, например частоты слов.

Изучи решения

Компьютерное зрение в спорте

Компьютерное зрение в спорте

Узнай, как Ultralytics YOLO обеспечивает компьютерное зрение в спорте: отслеживание игроков и мяча, аналитика результатов, полезные выводы для тренеров и реабилитация спортсменов.
Подробнее
Компьютерное зрение для аэросъёмки

Компьютерное зрение для аэросъёмки

Превращай снимки с дронов и аэрофотоснимки в полезные данные в реальном времени для сельского хозяйства, аквакультуры, охраны природы и геопространственного анализа с Ultralytics YOLO.
Подробнее
Компьютерное зрение в аэрокосмической отрасли

Компьютерное зрение в аэрокосмической отрасли

Применяй компьютерное зрение в аэрокосмической отрасли с Ultralytics YOLO: для осмотра самолётов, обнаружения посторонних предметов на взлётно-посадочных полосах, наземного обслуживания аэропортов и выявления дефектов композитных материалов.
Подробнее
Компьютерное зрение в сфере безопасности

Компьютерное зрение в сфере безопасности

Защити любой объект с помощью моделей Ultralytics YOLO. ИИ на базе компьютерного зрения обеспечивает мониторинг периметра, обнаружение угроз, распознавание номерных знаков и безопасность на рабочем месте.
Подробнее
Компьютерное зрение в робототехнике

Компьютерное зрение в робототехнике

Создавай более интеллектуальные машины с моделями Ultralytics YOLO. ИИ на базе компьютерного зрения в робототехнике обеспечивает автономную навигацию, восприятие, отслеживание объектов и управление в реальном времени.
Подробнее
Компьютерное зрение в логистике

Компьютерное зрение в логистике

Оптимизируй логистику с моделями Ultralytics YOLO. Визуальный AI обеспечивает проверку посылок, сортировку, отслеживание транспорта и мониторинг безопасности на складе в реальном времени.
Подробнее
Компьютерное зрение в розничной торговле

Компьютерное зрение в розничной торговле

Переосмысли розничную торговлю с моделями Ultralytics YOLO. Визуальный AI обеспечивает отслеживание запасов, мониторинг полок, управление очередями и более глубокое понимание поведения покупателей.
Подробнее
Компьютерное зрение в здравоохранении

Компьютерное зрение в здравоохранении

Создавай решения для здравоохранения с моделями Ultralytics YOLO. Визуальный AI в здравоохранении ускоряет медицинскую визуализацию, улучшает диагностику и мониторинг пациентов.
Подробнее
Компьютерное зрение в производстве

Компьютерное зрение в производстве

Оптимизируй производство с моделями Ultralytics YOLO. Компьютерное зрение на базе ИИ обеспечивает контроль качества, обнаружение дефектов, контроль использования СИЗ и автоматизацию сборочных линий.
Подробнее
Компьютерное зрение в автомобильной отрасли

Компьютерное зрение в автомобильной отрасли

Применяй компьютерное зрение в автомобильной отрасли с моделями Ultralytics YOLO. Компьютерное зрение на базе ИИ повышает безопасность дорожного движения, улучшает помощь водителю и автоматизацию автомобилей, делая дороги умнее.
Подробнее
Компьютерное зрение в сельском хозяйстве

Компьютерное зрение в сельском хозяйстве

Внедряй ИИ для компьютерного зрения в умное сельское хозяйство с моделями Ultralytics YOLO. Используй их для мониторинга посевов, отслеживания скота и точного земледелия, чтобы повысить урожайность и эффективность.
Подробнее

Давай вместе строить будущее ИИ!

Начни свой путь в будущее машинного обучения