기능 엔지니어링은 기계 학습 모델의 성능을 향상시키기 위해 원시 데이터에서 새로운 기능을 생성하거나 기존 기능을 수정하는 프로세스입니다. 기능의 품질과 관련성은 패턴을 학습하고 정확한 예측을 수행하는 모델의 능력에 큰 영향을 미치기 때문에 이는 매우 중요한 측면입니다.
특성 추출이 중요한 이유
-
향상된 모델 성능: 잘 설계된 기능은 모델이 학습하기 어려울 수 있는 데이터 내의 패턴과 관계를 강조할 수 있습니다. 이는 더 나은 예측 정확도로 이어집니다.
-
과적합 감소: 기능 엔지니어링은 모델에 보다 의미 있고 일반화된 데이터 표현을 제공하여 과적합을 줄이는 데 도움이 될 수 있습니다.
-
단순화 및 해석 가능성: 엔지니어링된 기능은 데이터 내의 복잡한 관계를 단순화하여 모델을 더 쉽게 해석하고 이해할 수 있게 만듭니다.
특성 추출에 사용되는 일반적인 기법의 예
-
대치: 평균, 중앙값, 모드 등의 통계적 측정값을 사용하여 누락된 값을 처리합니다.
-
원-핫 인코딩: 범주형 변수를 이진 벡터로 변환하여 모델이 범주형 데이터를 이해하고 처리할 수 있도록 합니다.
-
특성 스케일링: 수치 특성을 비슷한 규모로 정규화하거나 표준화하여 특정 특성이 더 큰 규모로 인해 지배적인 것을 방지합니다.
-
다항식 특성: 기존 특성을 더 높은 거듭제곱으로 높이고 비선형 관계를 포착하여 새로운 특성을 생성합니다.
-
기능 선택: 가장 관련성이 높은 기능을 선택하고 덜 유용한 기능을 삭제하여 데이터의 차원성과 노이즈를 줄입니다.
-
구분화 또는 이산화: 연속적인 수치 특성을 구간 또는 범주로 그룹화하여 복잡한 관계를 단순화합니다.
-
특성 교차/상호작용: 기존 특성을 결합하거나 상호 작용하여 새로운 특성을 생성하여 특성 간의 상호 작용을 포착합니다.
-
특성 변환: 로그 또는 제곱근과 같은 수학적 변환을 적용하여 데이터를 보다 정규 분포로 만들거나 왜도를 줄입니다.
-
텍스트 기능 엔지니어링: TF-IDF(용어 빈도-역문서 빈도), 단어 임베딩 또는 n-그램과 같은 기술을 사용하여 텍스트 데이터를 효과적으로 표현합니다.
-
시간적 특징: 타임스탬프에서 요일, 월, 시차 등 시간과 관련된 패턴을 드러낼 수 있는 특징을 추출합니다.
각 문제와 데이터세트에는 특성 추출에 대한 서로 다른 접근 방식이 필요할 수 있습니다. 전문 분야 지식은 특정 작업에 가장 효과적인 기술을 식별하는 데 중요한 역할을 하는 경우가 많습니다. 성공적인 기능 엔지니어링은 모델의 예측 능력과 일반화 가능성을 크게 향상시켜 모델을 기계 학습 워크플로의 기본 부분으로 만들 수 있습니다.