taeridad19 님의 블로그 입니다.

  • 2025. 4. 9.

    by. taeridad19

    목차

       

      머신러닝을 위한 데이터 전처리 기법 총정리

      머신러닝을 위한 데이터 전처리 기법 총정리

      1. 데이터 전처리란 무엇인가? 머신러닝 성공의 열쇠

      머신러닝(Machine Learning)은 데이터를 기반으로 패턴을 학습하여 예측을 수행하는 기술입니다. 하지만 아무 데이터나 바로 머신러닝 알고리즘에 적용할 수는 없습니다. 데이터의 품질이 모델 성능을 좌우한다는 말이 있을 정도로, 머신러닝에서 데이터 전처리는 필수적인 단계입니다.

      데이터 전처리란 원시 데이터를 정제(cleaning)하고, 변환(transforming)하며, 분석 및 학습에 적합한 구조로 가공하는 과정을 말합니다. 이 과정은 단순히 결측값을 채우거나 이상치를 제거하는 수준을 넘어서, 모델이 학습하기 쉽게 데이터를 논리적으로 재배열하고 정규화하는 작업까지 포함합니다.

      실제 프로젝트에서 데이터 전처리에 드는 시간이 전체 머신러닝 개발 시간의 60~80%를 차지한다는 통계도 있을 정도로, 이 단계는 모델의 정확도와 일반화 성능에 직접적인 영향을 줍니다.


      2. 결측값 처리와 이상치 제거: 데이터 정제의 핵심

      데이터 전처리의 첫걸음은 바로 **결측값(Missing Values)**과 이상치(Outliers) 처리입니다. 실생활에서 수집된 데이터는 종종 누락되거나 오류가 섞여 있기 때문에 이를 적절히 처리해야 합니다.

      • 결측값 처리
        결측값은 제거하거나 대체할 수 있습니다. 제거는 단순하지만 데이터 손실이 생길 수 있습니다. 대체 방법으로는 평균값, 중앙값, 최빈값, 혹은 예측 기반 보간(Imputation)이 있습니다. 예를 들어 age가 누락된 경우, 전체 연령 평균으로 채우는 방식입니다.
      • 이상치 제거
        이상치는 데이터 분포에서 벗어난 값으로, 모델 성능을 저하시킬 수 있습니다. 통계적으로 IQR(Interquartile Range), 표준편차, Box-plot 등을 사용해 탐지할 수 있으며, 도메인 지식을 활용한 수동 제거도 고려됩니다.

      이 과정을 통해 모델이 불필요한 잡음을 학습하는 것을 방지하고, 보다 일반화된 패턴 인식이 가능해집니다.


      3. 스케일링과 정규화: 숫자형 데이터의 균형 맞추기

      모든 입력 특성(feature)이 같은 범위를 갖고 있지 않을 경우, 모델이 특정 특성에 과도하게 반응할 수 있습니다. 이를 방지하기 위해 **정규화(Normalization)**와 표준화(Standardization) 같은 스케일링 작업이 필요합니다.

      • 정규화 (Min-Max Scaling)
        데이터를 0과 1 사이로 변환합니다. x_normalized = (x - min) / (max - min) 공식이 사용됩니다. 신경망 기반 모델에서 특히 효과적입니다.
      • 표준화 (Z-score Scaling)
        평균이 0이고, 표준편차가 1이 되도록 변환합니다. x_standardized = (x - μ) / σ 수식이 사용되며, 선형 회귀, 로지스틱 회귀, SVM 등에 적합합니다.
      • 로버스트 스케일링 (Robust Scaler)
        이상치에 덜 민감한 스케일링 기법입니다. 중앙값(Median)과 IQR을 기준으로 정규화합니다.

      스케일링은 모델의 학습 속도를 높이고, 최적화 과정에서 더 안정적인 수렴을 유도합니다. 특히 **거리 기반 알고리즘(k-NN, K-Means, SVM 등)**에서는 필수적으로 수행해야 할 단계입니다.


      4. 범주형 변수 처리: One-Hot 인코딩과 라벨 인코딩

      머신러닝 모델은 숫자 데이터를 입력으로 받기 때문에, **범주형 변수(Categorical Variables)**는 반드시 수치형으로 변환해주어야 합니다. 이때 사용되는 대표적인 인코딩 기법은 다음과 같습니다.

      • 라벨 인코딩(Label Encoding)
        각 범주를 정수로 매핑하는 방식입니다. 예: '남자'=0, '여자'=1
        간단하지만 순서가 없는 범주형 변수에 적용하면 모델이 순서를 오해할 수 있다는 단점이 있습니다.
      • 원-핫 인코딩(One-Hot Encoding)
        각 범주를 별도의 열로 나누고, 해당 열에만 1을 부여하는 방식입니다. 예: '빨강', '파랑', '초록' → [1,0,0], [0,1,0], [0,0,1]
        순서 정보가 없고, 범주 수가 많을 경우 데이터 차원이 급증할 수 있는 문제가 있습니다.
      • 타겟 인코딩(Target Encoding)
        각 범주를 타겟 변수의 평균값으로 대체합니다. 예측 변수와 상관성이 높은 경우 효과적이지만, 과적합 위험이 있어 주의가 필요합니다.

      이러한 인코딩은 모델에 따라 선택이 달라지며, 딥러닝 기반 모델은 원-핫 인코딩을, 트리 기반 모델은 라벨 인코딩 또는 타겟 인코딩을 주로 사용합니다.


      5. 특성 선택과 추출: 불필요한 변수는 제거하자

      모델에 많은 변수를 넣는다고 해서 항상 좋은 결과가 나오는 것은 아닙니다. 오히려 불필요한 특성은 모델의 복잡도를 증가시키고, 과적합(overfitting)의 원인이 될 수 있습니다. 따라서 중요한 특성만 선별하는 작업이 필요합니다.

      • 피처 선택 (Feature Selection)
        상관관계 분석, 분산 기준 제거, Lasso 회귀 등 다양한 방법을 통해 중요하지 않은 특성을 제거합니다.
      • 피처 추출 (Feature Extraction)
        PCA(주성분 분석), t-SNE, LDA 등을 통해 고차원 데이터를 저차원으로 축소하면서 핵심 정보를 유지합니다.
      • 자동 선택 기법
        사이킷런(sklearn)의 SelectKBest, RFE(Recursive Feature Elimination) 등을 활용하면 모델 성능에 기반해 자동으로 유의미한 피처를 선택할 수 있습니다.

      이 과정을 통해 모델의 학습 효율이 향상되며, 예측 성능도 증가하게 됩니다. 특히 대용량 데이터에서는 필수적인 전처리 기법입니다.


      6. 텍스트와 시간 데이터 전처리: 특수한 데이터의 처리 전략

      머신러닝에는 숫자형과 범주형 데이터 외에도 텍스트(Text)와 시계열(Time Series) 데이터가 자주 사용됩니다. 이 경우에는 별도의 전처리 기법이 필요합니다.

      • 텍스트 데이터 처리
        정제(Cleaning), 토큰화(Tokenization), 불용어 제거(Stopwords), 어간 추출(Stemming), TF-IDF 벡터화 등의 작업이 필요합니다. 자연어 처리(NLP)에 사용됩니다.
      • 시계열 데이터 처리
        시간 순서를 유지하면서 결측값 보간, 계절성 제거, 이동 평균 처리, 라그 피처 생성 등이 필요합니다. 금융 데이터, 센서 데이터 등에서 필수입니다.

      이처럼 데이터의 유형에 따라 전처리 기법은 달라지므로, 도메인과 목적에 맞는 전처리 전략 수립이 매우 중요합니다.


      7. 결론: 전처리가 잘 되어야 머신러닝이 제대로 된다

      머신러닝 모델이 아무리 뛰어나더라도, 데이터 전처리가 제대로 이루어지지 않으면 기대한 성능을 발휘할 수 없습니다. 데이터 품질이 모델 성능을 결정짓는 가장 핵심적인 요소입니다.

      좋은 전처리는 복잡한 모델보다 더 뛰어난 결과를 낼 수 있으며, 실제 현업에서는 데이터 전처리만으로도 예측 정확도가 크게 향상되는 사례가 많습니다. 전처리 단계는 단순한 사전 작업이 아니라, 머신러닝 전체 파이프라인에서 가장 중요한 핵심 과정임을 기억해야 합니다.