Feature Engineering
Изучи разработку признаков для повышения производительности модели. Узнай о таких методах, как масштабирование и аугментация, чтобы оптимизировать Ultralytics YOLO26 для большей точности.
Проектирование признаков — это процесс преобразования необработанных данных в осмысленные входные данные, которые повышают производительность моделей машинного обучения. Он включает использование предметной области для выбора, изменения или создания новых переменных, известных как признаки, которые помогают алгоритмам лучше понимать закономерности в данных. Хотя современные архитектуры глубокого обучения, такие как свёрточные нейронные сети (CNN), способны автоматически обучаться признакам, явное проектирование признаков остаётся критически важным этапом многих рабочих процессов, особенно при работе со структурированными данными или при оптимизации эффективности моделей на периферийных устройствах. Уточняя входные данные, разработчики часто могут достичь более высокой точности с помощью более простых моделей, снижая потребность в огромных вычислительных ресурсах.
Роль проектирования признаков в ИИ#
В контексте искусственного интеллекта (AI) необработанные данные редко готовы к немедленной обработке. Изображения может потребоваться изменить по размеру, текст — токенизировать, а табличные данные часто содержат пропущенные значения или нерелевантные столбцы. Проектирование признаков устраняет разрыв между необработанной информацией и математическими представлениями, необходимыми алгоритмам. Эффективное проектирование может выявить важные взаимосвязи, которые модель иначе могла бы не обнаружить, например объединение признаков «расстояние» и «время» для создания признака «скорость». Этот процесс тесно связан с предварительной обработкой данных, однако если предварительная обработка сосредоточена на очистке и форматировании, то проектирование признаков направлено на творческое улучшение данных для повышения прогностической способности.
В задачах компьютерного зрения проектирование признаков значительно изменилось. Традиционные методы включали ручное создание дескрипторов, таких как масштабно-инвариантное преобразование признаков (SIFT), для выявления границ и углов. Сегодня модели глубокого обучения, такие как YOLO26, выполняют автоматическое извлечение признаков в своих скрытых слоях. Однако проектирование по-прежнему играет важную роль при подготовке наборов данных, например при создании синтетических данных или применении методов аугментации данных, таких как мозаичное объединение и mixup, чтобы во время обучения познакомить модели с более разнообразными и устойчивыми вариациями признаков.
Распространённые методы и области применения#
Проектирование признаков охватывает широкий спектр стратегий, адаптированных к конкретной задаче и типу данных.
- Снижение размерности: такие методы, как метод главных компонент (PCA), уменьшают количество переменных, сохраняя важную информацию и предотвращая переобучение на наборах данных высокой размерности.
- Кодирование категориальных переменных: алгоритмам обычно требуются числовые входные данные. Такие методы, как one-hot-кодирование, преобразуют категориальные метки (например, «Красный», «Синий») в двоичные векторы, которые могут обрабатывать модели.
- Нормализация и масштабирование: приведение признаков к стандартному диапазону гарантирует, что переменные с большими значениями (например, цены на дома) не будут доминировать над переменными с меньшими диапазонами (например, количеством комнат), что крайне важно для оптимизации на основе градиента в нейронных сетях.
- Бинирование и дискретизация: группировка непрерывных значений по интервалам (например, возрастным группам) может помочь моделям эффективнее обрабатывать выбросы и выявлять нелинейные взаимосвязи.
Примеры из реального мира#
Проектирование признаков применяется в различных отраслях для решения сложных задач.
-
Прогнозное обслуживание в производстве: в сфере умного производства датчики собирают необработанные данные о вибрации и температуре оборудования. Инженеры могут создавать признаки, отражающие «скорость изменения» температуры или «скользящее среднее» интенсивности вибрации. Эти спроектированные признаки позволяют моделям обнаружения аномалий предсказывать отказ оборудования за несколько дней, а не просто реагировать на текущие показания датчиков.
-
Оценка кредитного риска: финансовые учреждения используют проектирование признаков для оценки возможности выдачи кредита. Вместо того чтобы учитывать только исходное значение «дохода», они могут создать признак «отношение долга к доходу» или «процент использования кредита». Эти производные признаки дают более детальное представление о финансовом состоянии заёмщика, обеспечивая более точную классификацию рисков.
Пример кода: пользовательская аугментация признаков#
В компьютерном зрении мы можем «проектировать» признаки, дополняя изображения для имитации различных условий окружающей среды. Это помогает моделям, таким как YOLO26, лучше обобщать данные. В следующем примере показано, как применить простое преобразование в градации серого с помощью инструментов ultralytics, которое заставляет модель изучать структурные признаки, а не полагаться исключительно на цвет.
import cv2
from ultralytics.data.augment import Albumentations
# Load an example image using OpenCV
img = cv2.imread("path/to/image.jpg")
# Define a transformation pipeline to engineer new visual features
# Here, we convert images to grayscale with a 50% probability
transform = Albumentations(p=1.0)
transform.transform = A.Compose([A.ToGray(p=0.5)])
# Apply the transformation to create a new input variation
augmented_img = transform(img)
# This process helps models focus on edges and shapes, improving robustnessОтличие от связанных терминов#
Чтобы избежать путаницы при обсуждении рабочих процессов, полезно отличать проектирование признаков от схожих понятий.
- Проектирование признаков и извлечение признаков: хотя эти термины часто используются как взаимозаменяемые, между ними есть нюанс. Проектирование признаков подразумевает ручной творческий процесс создания новых входных данных на основе знаний предметной области. В свою очередь, извлечение признаков часто означает автоматизированные методы или математические проекции (например, PCA), которые преобразуют данные высокой размерности в плотное представление. В глубоком обучении (DL) слои свёрточных нейронных сетей (CNN) выполняют автоматическое извлечение признаков, обучаясь фильтрам для обнаружения границ и текстур.
- Проектирование признаков и эмбеддинги: в современном обработке естественного языка (NLP) ручное создание признаков (например, подсчёт частоты слов) в значительной степени вытеснено эмбеддингами. Эмбеддинги — это плотные векторные представления, которым сама модель обучается для передачи семантического значения. Хотя эмбеддинги являются разновидностью признаков, они обучаются с помощью процессов автоматизированного машинного обучения (AutoML), а не создаются вручную.
Освоив проектирование признаков, разработчики могут создавать модели, которые не только точнее, но и эффективнее, требуя меньше вычислительных ресурсов для достижения высокой производительности. Такие инструменты, как Ultralytics Platform, упрощают этот процесс благодаря интуитивно понятным интерфейсам для управления наборами данных и обучения моделей, позволяя пользователям быстро итеративно улучшать свои стратегии проектирования признаков.









