🍑 특성 공학이란 ?
특성공학(Feature Engineering)은 머신러닝 모델의 성능을 향상시키기 위해 데이터의 특성을 만들거나 변형하는 과정을 말한다. 데이터의 특성을 더 잘 나타내거나 모델에 적합하도록 만들어 모델의 성능을 향상시키는데 사용된다.
중요성
- 정보 추출: 데이터에 있는 의미있는 정보를 추출하거나 도메인 지식을 활용하여 새로운 특성을 만든다.
- 모델 성능 향상: 모델이 학습하는 데 도움이 되는 새로운 특성을 만들어 모델의 성능을 향상시킨다.
- 과적합 방지: 불필요한 정보나 잡음을 제거하거나 중요한 정보를 강조하여 모델이 과적합되지 않도록 한다.
- 비선형성 추가: 선형 모델에 비선형성을 추가하여 모델의 유연성을 향상시킨다.
🍋 특성공학 기법
- 특성 생성: 특징 구축이라고도 하는데, 이 방법을 흔히 Feature Engineering 이라고 한다. 기존의 특성을 결합하거나 변형하여 새로운 의미 있는 특성을 만든다.
- 특성 스케일링: 특성의 크기를 일정한 범위로 조정하여 모델의 성능을 향상시킨다. 표준화, 정규화, Robust Scaling, 로그 변환 등이 그 예다.
- 원-핫 인코딩: 범주형 변수를 이진형으로 변환하여 모델이 이해할 수 있도록 만든다.
- 결측값 처리: 결측값을 채우거나 다른 방법으로 처리하여 데이터의 완성도를 높인다.
- 다항 특성 추가: 특성 간의 상호작용을 고려하여 다항식 특성을 추가한다.
- 차원 축소: 고차원 데이터를 저차원으로 축소하여 모델의 복잡성을 줄인다. -> 차원축소 자세히 보기
- 특성 선택: 가장 중요한 특성만 선택하여 모델의 학습 속도를 높이고 과적합을 줄인다.
특성공학은 머신러닝 모델의 성능 향상에 매우 중요한 부분이며, 도메인 지식과 탐색적 데이터 분석(EDA)을 통해 데이터를 이해하고 유용한 특성을 만들어내는 과정이다.