끄적이는 개발노트

260519_강의 정리 (데이터 전처리) 본문

Python

260519_강의 정리 (데이터 전처리)

크런키스틱 2026. 5. 20. 18:20
728x90

■ 데이터 전처리(Preprocessing)

  • 정의
    • 원시 데이터를 분석 가능한 상태로 다듬는 작업
    • Wrangling이라고도 불리며, 실제 데이터 분석 업무의 약 70%를 차지
  • 단계
    1. Cleaning (정제)
      • 결측치, 이상치 제거
      • 데이터 오류 정제
    2. Structuring (구조화)
      • 분석 가능한 형태로 재구조화
    3. Feature Engineering (정보 강화)
      • 의미 있는 특징 추출 및 변수 생성
    4. Optimization (최적화)
      • 속도, 메모리, 안정성 개선
  • Cleaning (정제)
    • 결측치 처리 (Missing Value)
      • isnull() / notnull() : 탐지
      • dropna() : 제거
      • replace() : 단순 대체
      • 보간법 (Interpolation)
        • 주변 흐름 이용
        • 시계열처럼 순서가 있는 데이터에서 앞뒤 값의 흐름으로 결측치 채움
      • Imputation
        • 이웃 데이터 참고해 채움
        • 순서와 무관하게 KNN 등 통계적 방법으로 이웃 데이터를 참고해 채움
        • 주로 scikit-learn의 SimpleImptuer, KNNImputer
    • 이상치 판별
      • 표준편차 기반
      • IQR 기반 : Q1 − 1.5×IQR ~ Q3 + 1.5×IQR
      • 이상치 ↑ : mean 대신 median 사용
      • 정규분포 : 한 점 확률 = 0, 면적으로 표현
함수 기준 특징
cut() 동일한 구간 크기 구간이 너무 작으면 정보 손실 가능
qcut() 동일한 데이터 개수 각 구간의 빈도가 균등해짐

 

  • Structuring (데이터 구조화)
함수 기준 특징
merge() 공통 열(column) SQL JOIN과 유사한 수평 결합
join() 인덱스 기반 수평 결합
concat() 행 또는 열 방향 단순 이어붙이기 (axis 지정)
pivot() index / columns / values 3축 행·열 재배치 / 중복 없어야 함
pivot_table() 그룹별 집계 중복 허용, aggfunc 지정 가능
melt() Wide → Long 넓은 형식을 긴 형식으로 변환

 

  • Feature Engineering (정보 강화)
    • 기존 변수에서 새로운 의미 있는 특징을 추출해 변수를 늘리고 모델 성능을 높임
    • 파생변수 (Derived Feature) 생성이 핵심
    • 종류
      • TF-IDF (텍스트)
        • 문서x단어 행렬
        • 자주 등장하는 단어는 중요도 낮음 (IDF)
        • 특정 문서에서만 자주 쓰이면 중요도 높음 (TF)
      • 푸리에 변환 (시계열)
        • 모든 파형을 sin/cos 함수 조합으로 분해
        • 주기성 있는 데이터의 패턴 추출에 사용
      • 패턴 추출 (패턴)
        • 데이터에서 반복되는 구조나 특징을 찾아내는 과정
        • 도메인 지식이 중요
  • Optimization (성능 최적화)
기법 방법 효과
수치화(Encoding) 범주형 → 숫자 변환 계산 속도 향상
형변환(Type Casting) float64 → int32 메모리 절약 (int32 < float64)
PCA 중요 특징만 남겨 차원 축소 노이즈 감소, 속도 향상 (정보 일부 손실)
파일 포맷 변경 CSV → Parquet 열 기반 저장, 분석 속도 향상

 

  • Scaling 종류 비교
    • Scaling이나 Encoding을 전체 데이터에 먼저 적용하면, Test 데이터의 정보가 Train에 새어 들어가서 모델 성능이 비정상적으로 높게 측정 → 반드시 Train/Test 분리 후 Train에만 fit하고 Test에는 transform만 적용
    • 모델에 따라 Scaling의 필요 여부가 달라짐
      • 거리 기반 모델(KNN, SVM, Linear Regression)은 Scaling 필수
      • 트리 기반 모델(Decision Tree, Random Forest, XGBoost)는 없이도 동작
종류 변환 방식 특징 / 사용 상황
Min-Max Scaling 0 ~ 1 범위로 변환 이상치에 민감
범위가 명확할 때 적합
StandardScaler 평균 0, 표준편차 1 정규분포 가정
가장 범용적으로 사용
Robust Scaling median IQR 기반 이상치 영향 최소화
이상치 많은 데이터에 적합

 

  • Bias-Variance Tradeoff & 모델 복잡도
    • Bias가 큼 (Underfitting)
      • 모델이 너무 단순함
      • 데이터를 제대로 설명 못함
      • 해결 → 변수 추가, Feature 생성
      • 모델 복잡도를 높여야 함
    • Variance가 큼 (Overfitting)
      • 변수가 너무 많거나 모델이 복잡
      • Train엔 잘 맞지만 Test엔 틀림
      • 해결 → 변수 감소, 정규화, PCA
      • 모델 복잡도를 낮춰야 함
    • Bias와 Variance 사이의 균형을 맞추는 과정이 Optimization (최적화)
728x90

'Python' 카테고리의 다른 글

260521_강의 정리 (시계열 분석)  (0) 2026.05.21
260520_강의 정리 (Data Summerization & EDA)  (0) 2026.05.20
260518_강의 정리 (Pandas)  (0) 2026.05.18
260512_강의 정리 (NumPy)  (0) 2026.05.13
260513_강의 정리 (Matplotlib)  (0) 2026.05.13