기능 엔지니어링
전문적인 피처 엔지니어링으로 머신러닝 정확도를 높이세요. 영향력 있는 피처를 생성, 변환 및 선택하는 기술을 알아보세요.
피처 엔지니어링은 도메인 지식을 사용하여 원시 데이터를 선택, 생성, 변환하여 예측 모델에 대한 근본적인 문제를 더 잘 나타내는 피처로 변환하는 프로세스입니다. 피처의 품질이 결과 모델의 성능과 정확도에 직접적인 영향을 미치기 때문에 머신러닝(ML) 파이프라인에서 매우 중요하고 종종 시간이 많이 소요되는 단계입니다. 효과적인 피처 엔지니어링은 평범한 모델과 매우 정확한 모델의 차이를 만들 수 있으며, 종종 다른 알고리즘을 선택하거나 광범위한 하이퍼파라미터를 튜닝하는 것보다 더 큰 성능 향상을 가져올 수 있습니다.
## 기능 엔지니어링 프로세스
피처 엔지니어링은 예술이자 과학이며, 도메인 전문 지식과 수학적 기법이 결합된 분야입니다. 이 프로세스는 몇 가지 일반적인 활동으로 나눌 수 있으며, 종종 scikit-learn의 전처리 모듈과 같은 라이브러리 또는 자동화된 피처 엔지니어링을 위한 전문 도구를 사용하여 관리합니다.
- 기능 생성: 여기에는 기존 기능에서 새로운 기능을 만드는 것이 포함됩니다. 예를 들어, 소매 데이터 집합에서 '고객 이후' 날짜에서 '구매 날짜'를 빼서 '고객 충성도 기간' 피처를 만들 수 있습니다. 시계열 분석에서는 타임스탬프에서 이동 평균이나 계절성과 같은 기능을 도출할 수 있습니다.
- 변환: 머신러닝 알고리즘의 가정을 충족하기 위해 원시 데이터를 변환해야 하는 경우가 많습니다. 여기에는 숫자 특징의 크기를 조정하거나, 왜곡된 데이터를 처리하기 위해 로그 변환을 적용하거나, 비닝과 같은 기술을 사용하여 숫자를 카테고리로 그룹화하는 것이 포함됩니다.
- 인코딩: 많은 ML 모델은 범주형 데이터를 직접 처리할 수 없습니다. 인코딩에는 텍스트 기반 카테고리를 숫자 표현으로 변환하는 작업이 포함됩니다. 일반적인 방법으로는 각 범주 값을 새로운 이진 열로 변환하는 원핫 인코딩과 레이블 인코딩이 있습니다.
- 기능 선택: 모든 기능이 유용한 것은 아닙니다. 일부는 중복되거나 관련성이 없어 과적합으로 이어질 수 있는 노이즈를 유발할 수 있습니다. 기능 선택은 모델 성능을 개선하고 계산 비용을 줄이기 위해 가장 관련성이 높은 기능의 하위 집합을 선택하는 것을 목표로 합니다.
## 실제 애플리케이션
피처 엔지니어링의 영향력은 여러 산업 분야에서 분명하게 드러납니다. 그 효과는 예측 신호를 제대로 포착하는 피처를 만들기 위한 심층적인 도메인 지식에 달려 있는 경우가 많습니다.
- 신용 점수: 금융 분야에서 원시 고객 데이터에는 소득, 연령, 대출 내역 등이 포함될 수 있습니다. 기능 엔지니어는 '소득 대비 부채 비율'(총 부채를 총 소득으로 나눈 값) 또는 '신용 활용도'(신용 카드 잔액을 신용 한도로 나눈 값)와 같은 새로운 변수를 만들 수 있습니다. 이러한 엔지니어링된 기능은 원시 수치만으로는 알 수 없는 개인의 재무 상태를 훨씬 더 명확하게 알려주므로 신용 위험 모델을 더 정확하게 만들 수 있습니다.
- 예측 유지보수: 제조업에서 기계의 센서는 진동, 온도, 회전 속도와 같은 방대한 원시 데이터 스트림을 생성합니다. 엔지니어는 고장을 예측하기 위해 "지난 24시간 동안의 온도 롤링 평균" 또는 "진동 표준 편차"와 같은 기능을 생성할 수 있습니다. 이러한 기능을 통해 기계적 고장이 발생하기 전에 미묘한 성능 저하 패턴을 파악할 수 있으므로 사전 예방적 유지보수가 가능하고 비용이 많이 드는 다운타임을 방지할 수 있습니다.
## 기능 엔지니어링과 관련 개념 비교
피처 엔지니어링을 AI 및 데이터 과학의 관련 용어와 구별하는 것이 중요합니다.
- 특징 엔지니어링과 특징 추출: 특징 엔지니어링은 직관과 전문 지식을 바탕으로 새로운 특징을 만드는 수작업 프로세스입니다. 특징 추출은 일반적으로 데이터를 축소된 특징 집합으로 변환하는 자동화된 프로세스입니다. 딥러닝에서는 컨볼루션 신경망(CNN) 과 같은 모델이 자동으로 특징 추출을 수행하여 사람의 개입 없이 원시 픽셀 데이터에서 계층적 특징(에지, 텍스처, 모양)을 학습합니다.
- 특징 엔지니어링 대 임베딩: 임베딩은 NLP와 컴퓨터 비전에서 흔히 사용되는 정교하고 학습된 형태의 특징 표현입니다. 모델은 피처를 수동으로 생성하는 대신, 단어나 이미지와 같은 항목의 의미적 의미를 포착하는 조밀한 벡터를 학습합니다. 따라서 임베딩은 수동 엔지니어링이 아닌 자동화된 피처 학습의 결과물입니다.
- 피처 엔지니어링과 데이터 전처리 비교: 데이터 전처리는 피처 엔지니어링을 핵심 단계 중 하나로 포함하는 보다 광범위한 범주입니다. 또한 데이터 정리 (결측값 및 이상값 처리) 및 학습을 위한 데이터 세트 준비와 같은 다른 필수 작업도 포함됩니다.
Ultralytics YOLO 모델과 같은 최신 아키텍처는 개체 감지 및 인스턴스 세분화와 같은 이미지 기반 작업을 위한 특징 추출을 자동화하지만, 특징 엔지니어링의 원칙은 여전히 기본입니다. 데이터를 효과적으로 표현하는 방법을 이해하는 것은 모델을 디버깅하고, 데이터 품질을 개선하고, 시각적 데이터와 구조화된 데이터를 결합하는 복잡한 문제를 해결하는 데 매우 중요합니다. Ultralytics HUB와 같은 플랫폼은 데이터 집합 준비부터 모델 배포에 이르기까지 이 전체 수명 주기를 관리할 수 있는 도구를 제공합니다.