피처 엔지니어링은 머신 러닝(ML) 모델에 더 적합하도록 원시 데이터에서 피처를 선택, 변환, 생성하는 중요한 프로세스입니다. 여기에는 도메인 지식과 데이터 분석 기술을 사용하여 근본적인 문제를 더 잘 나타내는 입력을 만들어 궁극적으로 모델 성능, 정확성 및 해석 가능성을 개선하는 것이 포함됩니다. 아무리 숙련된 요리사(또는 모델)라 할지라도 품질이 좋지 않은 재료(학습 데이터)로는 요리를 만들기가 어렵다고 생각하면 됩니다. 이 단계는 종종 ML 워크플로우에서 가장 중요하고 시간이 많이 소요되는 부분 중 하나로 간주됩니다.
기능 엔지니어링이 중요한 이유는 무엇인가요?
현실 세계에서 수집된 원시 데이터는 ML 알고리즘에 바로 사용할 수 있는 경우가 드뭅니다. 누락된 값, 불일치, 관련 없는 정보가 포함되어 있거나 모델 사용에 부적합한 형식(예: 텍스트 또는 범주형 데이터)일 수 있습니다. 피처 엔지니어링은 이러한 문제를 다음과 같이 해결합니다:
- 모델 성능 향상: 잘 설계된 기능은 문제와 관련된 패턴을 강조하여 모델이 더 쉽게 학습하고 일반화할 수 있도록 합니다.
- 복잡성 감소: 더 많은 정보 입력을 제공하여 모델을 단순화할 수 있으며, 때로는 매우 복잡한 객체 감지 아키텍처나 알고리즘의 필요성을 줄일 수 있습니다.
- 다양한 데이터 유형 처리하기: 다양한 데이터 유형(텍스트, 이미지, 범주형)을 알고리즘이 이해할 수 있는 수치 표현으로 변환하는 방법을 제공합니다. 더 자세히 알아보려면 데이터 전처리 기법을 살펴보세요.
- 해석 가능성 향상: 의미 있는 기능은 때때로 모델이 특정 예측을 하는 이유를 더 쉽게 이해할 수 있게 하여 설명 가능한 AI(XAI)에 기여할 수 있습니다.
일반적인 기능 엔지니어링 기술
피처 엔지니어링에는 여러 가지 기술이 포함됩니다:
- 추론: 추정값(예: 평균, 중앙값 또는 보다 정교한 방법)으로 공백을 채워서 누락된 데이터를 처리합니다. 누락된 데이터를 처리하는 것은 일반적인 첫 번째 단계입니다.
- 스케일링 및 정규화: 수치 특징의 범위 또는 분포(예: 최소-최대 스케일링, Z-점수 정규화)를 조정하여 값이 큰 특징이 학습 과정을 지배하는 것을 방지합니다.
- 범주형 변수 인코딩: 숫자가 아닌 데이터(예: '빨강', '초록', '파랑' 범주)를 숫자 형식(예: 원핫 인코딩, 레이블 인코딩)으로 변환하는 작업입니다. 범주형 데이터 인코딩하기를 참조하세요.
- 기능 생성(생성): 도메인 지식 또는 상호작용 분석을 기반으로 기존 피처에서 새로운 피처를 도출하는 작업(예: 'date_of_birth'에서 '나이'를 생성하거나 '키'와 '몸무게'를 결합하여 'BMI'로 만들거나 TF 사용하여 텍스트 피처 추출)을 수행합니다.
- 비닝(이산 구간차원화): 연속적인 숫자 데이터를 불연속적인 구간 또는 간격으로 그룹화합니다.
- 로그 변환: 로그 변환을 적용하여 왜곡된 데이터 분포를 처리합니다. 자세한 내용은 데이터 변환을 살펴보세요.
- 기능 선택: 가장 관련성이 높은 피처만 식별하여 유지하고, 중복되거나 관련성이 없는 피처는 삭제하여 모델을 단순화하고 잠재적으로 성능을 개선합니다. 이는 차원 축소와 밀접한 관련이 있습니다.
특징 엔지니어링 대 특징 추출
종종 같은 의미로 사용되기도 하지만, 특징 엔지니어링과 특징 추출은 서로 다른 뉘앙스를 가지고 있습니다.
- 피처 엔지니어링: 피처 추출을 포함하지만 도메인 전문 지식을 바탕으로 새로운 피처를 수동으로 만들고, 기존 피처를 변형하고, 최상의 피처를 선택하는 광범위한 프로세스입니다. 종종 창의력과 데이터 및 문제에 대한 깊은 이해가 필요합니다.
- 특징 추출: 특히 이미지나 원시 센서 판독값과 같은 고차원의 원시 데이터를 저차원의 관리하기 쉬운 특징 집합으로 자동 변환하는 데 중점을 둡니다. 주성분 분석(PCA) 이나 컨볼루션 신경망(CNN) 의 레이어에 의한 자동 특징 학습과 같은 기술이 특징 추출의 예입니다.
본질적으로 특징 추출은 특징 엔지니어링의 광범위한 프로세스 내에서 사용되는 도구인 경우가 많습니다.
실제 애플리케이션
- 예측 유지보수: 제조업에서는 기계의 원시 센서 데이터(진동, 온도, 압력)가 노이즈가 많고 고차원적일 수 있습니다. 피처 엔지니어링에는 롤링 평균, 시간 경과에 따른 표준 편차, 주파수 도메인 피처(예: FFT)를 계산하거나 갑작스러운 스파이크 또는 변화를 나타내는 피처를 생성하는 작업이 포함될 수 있습니다. 이러한 엔지니어링된 피처를 사용하면 제조 분야의 AI에서 설명한 것처럼 ML 모델이 잠재적인 장비 고장을 발생하기 전에 더 쉽게 예측할 수 있습니다.
- 고객 이탈 예측: 어떤 고객이 서비스 사용을 중단할지 예측하기 위해 사용 로그, 인구 통계, 지원 티켓 기록, 구매 기록 등의 원시 데이터를 사용합니다. 기능 엔지니어링에는 '평균 세션 시간', '마지막 구매 이후 시간', '지난 달 지원 티켓 수', '긍정적인 피드백 대 부정적인 피드백의 비율' 또는 '고객 생애 가치' 등의 기능을 만드는 것이 포함될 수 있습니다. 이러한 파생된 기능은 원시 로그만 사용할 때보다 이탈을 예측하는 데 더 풍부한 신호를 제공합니다. 이는 금융 및 소매업의 AI와 관련이 있습니다.
기능 엔지니어링 및 Ultralytics
다음과 같은 고급 모델은 Ultralytics YOLO 와 같은 고급 모델은 심층 신경망 아키텍처(백본, 넥, 헤드)를 통해 관련 시각적 특징을 자동으로 학습하여 물체 감지 및 이미지 분할과 같은 작업에 탁월하지만, 특징 엔지니어링 원칙은 여전히 유효합니다. 예를 들어, 입력 이미지를 사전 처리(예: 다양한 조명을 위한 히스토그램 균등화, OpenCV와 같은 라이브러리를 사용한 노이즈 감소, 문제 영역에 맞는 특정 데이터 증강 적용)한 YOLO 모델에 입력하는 것은 견고성과 모델 성능을 개선할 수 있는 피처 엔지니어링의 한 형태입니다. 또한, YOLO 출력(예: 경계 상자 좌표, 개체 클래스, 개수)은 다운스트림 작업을 위한 피처로 엔지니어링하거나 데이터 세트와 모델을 구성하는 데 도움이 되는 Ultralytics HUB와 같은 플랫폼 내에서 관리하여 더 복잡한 분석을 위해 다른 데이터 원본과 결합할 수 있습니다. 모델 사용, 사용자 지정 교육, 주석이 달린 데이터 전처리에 대한 자세한 내용은 Ultralytics 설명서 및 튜토리얼을 참조하세요. 피처 도구와 같은 도구는 자동화된 머신 러닝(AutoML)의 개념에 따라 피처 엔지니어링 프로세스의 일부를 자동화하는 데도 도움을 줄 수 있습니다. 효과적인 피처 엔지니어링은 강력한 딥러닝 모델과 함께 성공적인 MLOps 사례의 핵심 요소로 남아 있습니다.