본문 바로가기
엑셈 경쟁력/AI 모델링부터 LLM까지의 여정

Feature Engineering : 데이터 정제와 가공

by EXEM 2024. 10. 31.

 

1. AI 모델 성능을 위한 효과적인 데이터 준비 과정

오늘날 AI 발전의 핵심은 단순한 기술 혁신을 넘어, 데이터의 품질과 세밀한 가공 과정에 의해 결정됩니다. 데이터는 이제 AI 모델링의 근본 자원이며, 이를 어떻게 다듬고 활용하느냐에 따라 예측력과 신뢰성이 달라집니다. 이러한 과정에서 피처 엔지니어링(Feature Engineering)은 AI 모델의 성공을 좌우하는 핵심 단계로 자리 잡았습니다.

 

AI R&D flow

 

피처 엔지니어링은 간단히 말해, 예측 모델의 성능을 높이기 위해 기존 데이터를 가공하고 새로운 특성을 만드는 과정입니다. 이를 통해 AI가 단순한 정보 분석을 넘어 중요한 패턴을 찾고 신뢰성 있는 예측을 수행할 수 있게 됩니다. 마치 모래성을 쌓을 때, 흩어진 모래를 적절히 다지고 물을 더해 견고한 구조를 만드는 것과 비슷합니다. AI도 원시 데이터만으로는 예측이 어려우며, 데이터를 의미 있게 다듬어 모델에 더 적합한 형태로 가공해야만 합니다. 예를 들어, 집 값을 예측하는 모델을 만들 때 집의 면적, 방 개수, 위치, 연식 등 여러 특성이 필요하며, 이들이 모델이 학습할 패턴을 제공하게 됩니다.

 

그러나 모든 데이터가 동일한 가치를 가지는 것은 아닙니다. 어떤 특성은 예측에 전혀 도움을 주지 않거나 변환이 필요할 수 있으며, 또 다른 특성은 결합되어 새로운 유용한 정보를 만들어낼 수 있습니다. 이러한 데이터 변환과 가공이 바로 피처 엔지니어링의 핵심으로, 예측 모델이 문제를 보다 잘 이해할 수 있도록 돕고, 예측 정확도를 크게 향상시킬 수 있습니다.

 

피처 엔지니어링 과정은 데이터 정제, 특징 추출과 생성, 피처 선택과 최적화의 세 가지 주요 단계로 나뉩니다. 첫 번째 단계인 데이터 정제에서는 결함이 있는 데이터를 수정하고, 중복이나 불필요한 노이즈를 제거하여 모델이 신뢰할 수 있는 정보를 학습할 수 있게 합니다. 예를 들어, 결측치나 이상치를 사전에 처리해 모델이 중요한 패턴에 집중할 수 있도록 돕습니다.

 

다음으로 특징 추출과 생성 단계에서는 원시 데이터에 숨겨진 중요한 정보를 찾아내어, 모델에 유익한 새로운 특성을 생성합니다. 시계열 데이터의 계절성을 반영한 특성을 추가하면 AI가 데이터 내 반복되는 패턴을 더욱 잘 이해할 수 있게 되는 것이 그 예입니다. 여기서 도메인 지식을 반영한 피처들은 모델의 예측 정확도를 한층 높이는 데 중요한 역할을 합니다.

 

마지막 단계는 피처 선택과 최적화입니다. AI가 모든 데이터를 필요로 하는 것은 아니기 때문에, 분석을 통해 중요한 특성만을 남기고 불필요한 변수를 제거해 모델이 더 효율적이고 빠르게 학습할 수 있도록 조정합니다. 이 과정은 모델의 해석력을 높여 신뢰성을 강화하는 데에도 기여합니다. 이 글에서는 이러한 피처 엔지니어링의 세 가지 단계를 다루며, 데이터 정제부터 피처 선택에 이르기까지 각각의 과정을 살펴보겠습니다.

 

2. 데이터 정제: 데이터 품질 관리

데이터 정제는 AI 모델의 성능을 보장하기 위한 필수적인 기초 단계입니다. 특히 시계열 데이터는 수집된 원시 데이터 그대로 활용하기보다, 불필요한 잡음과 오류를 제거하여 AI가 정확한 패턴을 학습할 수 있도록 정제되어야 합니다. 이 과정에서 주로 결측치와 이상치 처리, 일관성 및 중복 관리, 그리고 노이즈 필터링 등의 기법이 활용됩니다. 이 글에서는 각 과정이 AI의 예측 성능을 어떻게 강화하는지 자세히 살펴보겠습니다.

결측치와 이상치 처리

  • 결측치 처리: 시계열 데이터는 연속적인 시간 흐름을 반영하기 때문에 중간에 값이 빠지면 AI가 패턴을 인식하기 어려워집니다. 일반적으로 결측치는 이전 값이나 평균값으로 대체하여 연속성을 유지하고, 자연스러운 데이터 흐름을 이어갈 수 있습니다.

결측치 제거 예시

  • 이상치 제거: AI가 학습해야 할 핵심 정보는 데이터 내 정상적인 패턴입니다. 그러나 시스템에서 예상치 못한 급격한 변동이 발생하면 학습에 방해가 되므로, 이를 사전에 걸러낼 필요가 있습니다. 3시그마 기법을 사용하여 평균에서 3배 표준편차 이상 벗어난 데이터를 이상치로 간주해 제거하는 것이 대표적인 방법입니다. IQR(사분위 범위)나 Z-Score 기반 필터링도 함께 활용하면, AI 모델이 중요한 패턴을 정확하게 학습할 수 있습니다.

데이터 일관성 및 중복 관리

  • 일관성 확보: 시계열 데이터는 시간 흐름에 따라 일관성 있게 정렬되어야 지표 간 상관관계가 명확히 드러나고, 모델 학습에도 신뢰도를 제공합니다. 타임스탬프 조정이나 동일 간격 유지와 같은 방법을 통해 데이터의 시간적 일관성을 유지하여, 모델의 예측 정확도를 높일 수 있습니다.
  • 중복 데이터 제거: 로그나 트랜잭션 데이터에서는 중복된 기록이 흔하게 발생하며, 이러한 중복 데이터는 AI 모델의 학습 효율성을 저하시킬 수 있습니다. 고유 식별자를 통해 중복을 제거함으로써 데이터의 품질을 높이고, 불필요한 반복 학습을 방지할 수 있습니다.

노이즈 필터링

노이즈는 데이터를 왜곡하고, AI의 예측 성능에 부정적인 영향을 줄 수 있습니다. 모델이 중요한 패턴에 집중할 수 있도록 노이즈를 제거하거나 줄이는 것이 중요합니다.

  • 스무딩 기법: 이동평균이나 지수 평활법 같은 스무딩 기법을 통해 데이터 내 노이즈를 줄이면, 모델이 주요 흐름과 패턴을 더 쉽게 학습할 수 있습니다.
  • 시계열 분해: 데이터를 **트렌드, 계절성, 잔차(Residual)**로 분해하면, 노이즈를 최소화하면서 AI 모델이 트렌드와 계절성 같은 주요 패턴을 더욱 잘 학습할 수 있도록 도와줍니다.

이러한 데이터 정제 과정은 AI가 의미 있는 패턴에 집중할 수 있게 하고, 모델의 성능을 크게 향상시킵니다. AI의 예측력이 증가하고, 이상 탐지의 정확도가 높아지면서 데이터가 AI 솔루션에 활용되는 가치를 더욱 끌어올릴 수 있습니다.

 

3. 데이터 가공

특징 추출과 생성 과정은 데이터를 모델 학습에 최적화하는 피처 엔지니어링의 핵심 단계입니다. 이 과정에서 우리는 원시 데이터를 가공하고 새로운 특성을 만들어, AI 모델이 더 나은 예측을 수행할 수 있도록 돕습니다. 각 기법과 적용 예시는 다음과 같습니다.

새로운 변수 생성

데이터에서 추가적인 패턴을 발견하기 위해 새로운 변수를 생성합니다. 예를 들어, 시간 데이터를 다루는 경우 시간대별 평균값이나 변화율을 계산하여 모델이 시간 흐름에 따른 변화를 이해하도록 돕습니다. 이를 통해 시계열 데이터의 계절성이나 주기적 패턴을 반영할 수 있습니다.

Binning (연속형 변수 이산화)

연속형 데이터를 범주화하여 이상치를 처리하고 데이터를 더 쉽게 분석할 수 있습니다. 예를 들어, 나이를 연령대(0-18, 19-35, 36-60, 60+)로 구분하면, 특정 연령대의 행동 패턴을 모델이 더 잘 이해하게 됩니다. Binning은 모델의 해석력을 높이고, 노이즈를 줄이는 데 유용합니다.

피처 스케일링 및 변환

모델이 변수를 일관성 있게 학습할 수 있도록 정규화와 표준화를 적용해 데이터 스케일을 맞추고, 로그 변환을 통해 데이터 분포의 비대칭성을 줄여줍니다. 예를 들어, 소득 데이터처럼 값이 큰 편차를 보이는 경우, 로그 변환을 통해 데이터를 더 균일하게 분포시켜 모델이 패턴을 더 잘 학습할 수 있게 합니다.

Log Transformation (로그 변환)

로그 변환은 비대칭 분포의 데이터를 정규화하여 모델이 더 쉽게 학습할 수 있게 하는 데 유용합니다. 예를 들어, 특정 지역의 부동산 가격처럼 값이 큰 변동을 보이는 경우, 로그 변환을 적용하면 데이터를 균일하게 만들어 패턴 학습이 용이해집니다.

One-Hot Encoding (범주형 데이터 인코딩)

AI가 범주형 데이터를 인식할 수 있도록 각 범주를 이진 변수로 변환합니다. 예를 들어, “색상”이라는 변수를 “빨강,” “파랑,” “초록”으로 구분하면, 각각을 이진 변수로 설정해 모델이 범주형 데이터를 학습할 수 있게 됩니다. 이를 통해 AI는 명확한 범주 내에서 예측할 수 있습니다.

Grouping Operations (그룹화 작업)

특정 기준에 따라 데이터를 그룹화해 특성을 생성하는 방법입니다. 예를 들어, 직업군별 평균 소득 같은 정보를 생성하여 예측에 도움이 될 수 있습니다. 이렇게 그룹화된 변수는 모델이 그룹 간 차이를 파악하는 데 유리하게 작용합니다.

Feature Split (특성 분리)

복합 정보를 가진 변수를 세분화해 더욱 구체적인 특성으로 만드는 방법입니다. 예를 들어, 날짜 정보인 “2023-07-19”를 연도, 월, 일로 나누면, 특정 시기별 패턴을 파악하기 쉽습니다. 이를 통해 모델이 시간에 따라 변화하는 세밀한 패턴을 학습할 수 있습니다.

Scaling (스케일링)

AI가 데이터를 일정한 범위에서 학습할 수 있도록 Min-Max Normalization이나 Z-score 표준화를 적용해 변수를 조정합니다. 이를 통해 모든 특성이 동일한 범위에 있게 되어, 모델의 학습 효율성을 높이고 편향을 줄일 수 있습니다.

Date Extraction (날짜 요소 추출)

날짜 정보가 포함된 데이터에서는 요일, 월, 시간대 등으로 세분화하여 모델이 계절성과 주기적 패턴을 더 잘 인식할 수 있도록 합니다. 예를 들어, 특정 요일에 거래가 많은 트렌드를 반영해 데이터의 특성을 더욱 구체화할 수 있습니다.

 

도메인 지식 활용

도메인 지식은 특정 시스템이나 산업의 특성을 반영하여 모델이 더 정밀한 예측을 할 수 있게 하는 중요한 역할을 합니다. 예를 들어, 시스템 이상탐지에서 특정 서버는 특정 시간대에 트래픽이 증가하는 계절적 패턴을 가질 수 있습니다. 이를 고려해 평균 트래픽이나 시간대별 최대 트래픽 특성을 추가하면, 평소와 다른 트래픽 변화를 효과적으로 감지할 수 있습니다. 또한, CPU 사용량과 메모리 사용량 간의 관계를 반영한 특성을 생성하여, 특정 지표가 비정상적으로 높거나 낮은 상태일 때 모델이 이를 이상 상황으로 인식할 수 있게 합니다.

 

고급 피처 엔지니어링 기법

데이터를 가공하고 다양한 관계를 반영하여 AI 모델의 예측 성능을 크게 높이는 역할을 합니다. 첫 번째로, 차원 축소는 데이터의 복잡성을 줄이고 학습 효율을 높이는 기법으로, 과적합을 방지하면서도 중요한 패턴을 유지할 수 있습니다. PCA(주성분 분석)는 데이터를 주성분으로 변환하여 최대 분산을 설명하는 새로운 축을 생성하고, LDA(선형 판별 분석)는 클래스 간 분리를 극대화하는 축을 만들어 모델이 데이터를 효과적으로 학습할 수 있도록 돕습니다. 이 외에도 t-SNE나 UMAP과 같은 비선형 차원 축소 기법을 통해 고차원의 복잡한 데이터를 시각화하거나 구조적 특성을 강조할 수 있습니다. 다음으로, 다항 특성 생성은 모델이 기존 특성의 상호작용을 학습하게 하여 더욱 복잡한 비선형 관계를 파악할 수 있게 합니다. 새로운 특성을 생성하면, 모델은 기존의 단순 선형 관계를 넘어서 더 깊은 패턴을 이해하게 됩니다. 이는 예측력이 중요한 작업에서 특히 유용하며, 적절한 다항식 차수를 선택해 과적합을 방지하는 것이 필요합니다.

PCA(주성분 분석)

또한, 특성 상호작용은 두 개 이상의 특성이 결합되어 더 강력한 영향을 미칠 수 있을 때 매우 유용합니다. 예를 들어, 건강 예측 모델에서 연령과 흡연 습관은 각각 개별적으로도 중요한 변수지만, 둘을 조합한 상호작용 변수(예: 연령, 흡연 습관)는 고령 흡연자의 건강 위험을 더 정확히 반영할 수 있습니다. 이러한 특성 상호작용을 모델에 포함하면 복잡한 관계를 학습하고 예측력을 높이는 데 도움을 줍니다.

 

이와 같은 고급 피처 엔지니어링 기법들은 데이터의 다양한 관계와 복잡한 패턴을 반영하여, AI 모델이 더 나은 예측 성능을 발휘할 수 있도록 지원합니다. 데이터에 대한 깊은 이해와 적용 기술에 따라 모델이 학습할 수 있는 정보의 깊이가 달라지므로, 이러한 기법들을 필요에 맞게 적용하는 것이 중요합니다.

4. 특징 추출과 생성 

AI 모델이 데이터를 효과적으로 학습하고 해석 가능한 예측을 제공하려면 중요한 피처만을 선별해 모델이 핵심 정보에 집중할 수 있도록 하는 것이 필수적입니다. 모든 변수를 그대로 사용하기보다는 피처 중요도 평가를 통해 필요한 피처를 추려냄으로써 성능을 높이고, 과적합을 방지하며 해석력도 강화할 수 있습니다. 이를 위해 활용되는 주요 기법을 아래에서 자세히 살펴보겠습니다. 또한, 모델 해석을 위한 최적화 방법도 함께 다뤄보겠습니다.

Feature 중요도 평가

피처 중요도 평가는 모델이 예측 시 각 피처가 얼마나 중요한지 평가하는 과정입니다. 이를 통해 불필요한 변수를 제거하고 모델의 학습 속도와 성능을 동시에 개선할 수 있습니다. 대표적인 방법으로는 필터(Filter Methods), 래퍼(Wrapper Methods), 임베디드(Embedded Methods)이 있습니다.

  • 필터 방법은 데이터를 모델링하기 전 각 피처의 중요도를 통계적으로 평가하여 필요 없는 피처를 걸러내는 방식입니다. 상관 계수(Correlation Coefficient)나 카이 제곱(Chi-Squared) 테스트와 같은 통계적 방법을 사용해 피처 간의 관계를 평가하여 중복되거나 관련이 낮은 피처를 제거합니다. 예를 들어, 상관 계수가 높은 두 변수 중 하나를 제거하거나, 범주형 변수 간의 상호 독립성을 평가하여 예측에 도움이 되지 않는 변수를 배제할 수 있습니다.
  • 래퍼 방법은 다양한 피처 조합을 사용해 최적의 피처 집합을 찾는 방식으로, 모델이 다양한 조합을 평가하여 성능이 가장 높은 피처 조합을 선택합니다. Forward Selection과 Backward Elimination이 대표적이며, Recursive Feature Elimination(RFE)은 피처 중요도를 기반으로 반복적으로 가장 덜 중요한 피처를 제거하는 기법입니다. 이 방식은 정확도가 높지만 계산 비용이 많이 들 수 있습니다.
  • 임베디드 방법은 모델 학습과 피처 선택이 동시에 이루어지는 방식으로, Lasso Regression과 Ridge Regression처럼 피처의 중요도에 따라 모델이 자동으로 덜 중요한 피처를 배제하거나 가중치를 줄이는 방식을 사용합니다. 트리 기반 모델(예: 랜덤 포레스트, XGBoost)은 각 피처의 중요도를 평가해 모델 성능에 기여하지 않는 피처를 자동으로 줄입니다.

이러한 피처 중요도 평가 방법을 통해 필수적이지 않은 피처를 줄이면 모델의 복잡성을 낮추고, 학습 속도를 높이며 과적합을 줄이는 데 유리합니다.

모델 해석을 위한 Feature 최적화

해석 가능한 AI는 모델의 예측 결과에 대한 투명성을 제공할 수 있어 특히 규제가 엄격하거나 안전성이 중요한 분야에서 필수적입니다. 이를 위해 SHAP와 LIME 같은 도구를 사용하여, 각 피처가 예측 결과에 미치는 영향을 파악하고 설명하는 작업이 필요합니다.

  • SHAP (Shapley Additive Explanations)는 게임 이론에 기반하여 각 피처가 예측에 기여하는 정도를 수치화합니다. 모든 피처 조합을 고려해 중요도를 평가하며, 이는 모델이 예측을 수행하는 과정에서 각 피처의 기여도를 정확히 파악할 수 있게 합니다. 예를 들어, 의료 분야에서 환자의 예측 진단에서 특정 증상이나 상태가 어떻게 기여했는지 이해하고, 예측의 신뢰성을 높일 수 있습니다.
  • LIME (Local Interpretable Model-Agnostic Explanations)은 개별 데이터 포인트 단위로 모델의 예측을 설명하는 도구입니다. LIME은 복잡한 모델도 개별 예측을 설명할 수 있도록 로컬 영역에서 피처의 기여도를 분석해 특정 데이터 포인트의 예측에서 어떤 피처가 결정적인 역할을 했는지 시각화합니다. 예를 들어, 금융업에서 대출 신청자의 신용 평가를 예측할 때 LIME을 통해 어떤 피처가 신용 점수에 가장 큰 영향을 미쳤는지 설명할 수 있어, 투명성과 신뢰성을 확보할 수 있습니다.

이러한 해석 가능한 AI 도구는 AI 모델이 예측한 결과를 사용자나 이해관계자에게 명확히 설명할 수 있도록 하며, 특히 안전성과 투명성이 요구되는 상황에서 모델의 신뢰성을 높입니다.

 

5. 피처 엔지니어링의 중요성과 역할

피처 엔지니어링은 머신러닝 파이프라인에서 데이터를 효과적으로 가공해 예측력을 극대화하는 중요한 과정입니다. 데이터 과학자로서 우리는 이 과정을 통해 원시 데이터에서 최대한의 가치를 추출하고, AI 모델이 데이터의 패턴을 더욱 잘 이해하도록 돕습니다.

우리는 피처 엔지니어링의 개념과 중요성을 살펴보는 것에서 출발하여, 다양한 피처 유형과 엔지니어링 기법을 검토했습니다. 이어 고급 기법과 피처 선택 방법을 통해 데이터를 정교하게 가공하는 방식을 탐구했습니다.

 

또한, 실제 프로젝트에 적용할 수 있는 실용적인 팁을 제공하며, 이러한 과정들이 AI 모델의 성능과 효율성을 높이는 데 어떻게 기여할 수 있는지 설명했습니다. 데이터 과학과 머신러닝 분야는 지속적으로 발전하고 있으며, 새로운 피처 엔지니어링 기법과 도구들이 끊임없이 개발되고 있습니다. 데이터 과학자로서 최신 트렌드에 맞춰 학습하고 실험하며 지식을 확장하는 것이 중요한 이유입니다. 피처 엔지니어링은 기술적 접근과 더불어 창의성이 요구되는 과정이므로, 이를 통해 AI 모델 성능을 극대화할 수 있기를 바랍니다. 이 글이 피처 엔지니어링에서 막연했던 부분들을 구체화하는 데 도움이 되었기를 바라며, 실질적인 참고 자료로 활용되었으면 좋겠습니다.


[이미지 출처]

https://wikidocs.net/185336

https://tyami.github.io/machine%20learning/PCA/

https://data-analysis-log.tistory.com/8

 

글 | AI사업팀 나현석

 

댓글