내일배움캠프_QAQC 1기/실무에 쓰는 머신러닝

[1-2] 머신러닝을 하기전에 데이터 전처리 먼저

이지응:) 2025. 3. 18. 11:41
목표

데이터 전처리의 필요성과 핵심 방법 이해
불균형 데이터 문제 해결 능력 배양
범주형 데이터 인코딩 기법 습득
피처 엔지니어링 기법 체득
데이터 전처리 실습

 

강의 자료 : 챕터 1-2 : 머신러닝을 하기전에 데이터 전처리 먼저!

실습 자료 : 2회차 실습

 

1. 데이터 전처리 개요

원시(raw) 데이터에서 불필요하거나 손실(노이즈)이 있는 부분을 처리하고, 분석 목적에 맞는 형태로 만드는 과정

 

필요성

1. 모델 정확도 및 신뢰도 향상

2. 이상치나 결측치가 많은 상태로 학습하면 예측 성능이 크게 떨어짐

3. 효율적인 데이터 분석과 모델 훈련을 위해 필수적인 단계

 

제조업 사례

1. 센서가 간헐적으로 측정에 실패해 결측값이 발생

2. 센서 오작동으로 인해 극단적으로 큰 값(이상치)이 기록

3. 정상 제품과 불량 제품의 데이터 분포가 매우 다름(불균형 데이터)

 

2. 결측치 처리

결측지 발생 원인

- 센서 고장, 측정 오류, 환경적 문제 등

- 사람이 수가로 입력하는 경우 누락

 

결측치 처리 기법

1. 삭제

결측치가 있는 행(row) 또는 열(column)을 제거

간단하지만 데이터 손실이 발생

결측치가 전체 데이터에서 매우 소수일 때 적합

 

2. 대체

평균 또는 중앙값으로 대체 → 수치형 데이터에서 많이 사용, 데이터 분포 왜곡이 비교적 적음

최빈값으로 대체 → 범주형 데이터에서 사용

예측 모델로 대체 → 회귀/분류 모델을 이용해 결측값을 예측

 

제조업 예시

1. 센서 데이터에서 특정 시간대(야간)에 종종 측정 누락이 발생한다면

중앙값으로 간단히 대체하거나 인접 시간대 센서 값의 추세(ex: 이동평균)를 바탕으로 결측치 채움

2. 중요한 센서라면, 예측 모델을 통해 결측치를 추정

# 결측치 제거
df.dropna()

# 평균값으로 대치
df_mean.fillna(df_mean.mean(numeric_only=True))

# 중앙값으로 대치
df_median.fillna(df_median.median(numeric_only=True))

# 최빈값으로 대치
# mode()는 각 열별로 최빈값 반환, 결과가 여러 개일 경우 첫 번째 행의 값을 취함
mode_values = df_mode.mode().iloc[0]
df_mode = df_mode.fillna(mode_values)

 

3. 이상치 탐지 및 제거

 

탐지 기법

1. 통계적 기법 (3σ Rule)

데이터가 정규분포를 따른다고 가정하고, 평균에서 ±3σ(표준편차) 범위를 벗어나는 값을 이상치로 간주

직관적이고 간단하나, 정규성 가정이 틀릴 수 있음

 

2. 박스플롯 기준

사분위수(IQR = Q3 - Q1)를 이용해 ‘Q1 - 1.5×IQR’, ‘Q3 + 1.5×IQR’를 벗어나는 데이터를 이상치로 간주

분포 특성에 영향을 적게 받는 장점

 

3. 머신러닝 기반

이상치 탐지 알고리즘 (Isolation Forest, DBSCAN 등)

복합적 패턴을 고려할 수 있음

 

처리 기법

1. 이상치를 단순 제거

2. 이상치 값을 조정 (클리핑, Winsorizing 등)

3. 별도로 구분하여 모델에서 제외하거나, 다른 모델(이상치 예측 모델)로 활용

 

제조업 예시

특정 센서값이 정상 범위(ex: 20~80)에서 갑자기 200 이상을 기록 → 장비 이상 가능성 높음

매 생산 라인마다 센서값 범위가 조금씩 다를 수 있으므로, 라인별 통계 기준(평균, 표준편차)으로 이상치 판단

 

4. 정규화 및 표준화(스케일링)

필요한 이유

1. 모델(특히 거리 기반 알고리즘, 딥러닝 등)에 따라 특정 변수의 스케일이 크게 영향을 미칠 수 있음

2. 센서 A는 값 범위가 0~1000, 센서 B는 값 범위가 0~1이라면, A가 모델에 더 큰 영향을 줌

 

정규화( MinMaxScaler)

  • 모든 값을 0과 1 사이로 매핑
  • MinMaxScaler()
  • 값의 스케일이 달라도 공통 범위로 맞출 수 있음
  • 딥러닝(신경망), 이미지 처리 등에서 입력값을 0~1로 제한해야 하거나, 각 특성이 동일한 범위 내 있어야 하는 경우 자주 사용.
  • 거리 기반 알고리즘(유클리디안 거리 사용)이나, 각 특성의 범위를 동일하게 맞춤으로써 계산 안정성을 높이고 싶을 때.
  • 최소값·최대값이 극단값(Outlier)에 민감. 만약 극단치가 있으면 대부분의 데이터가 [0, 1] 구간 내부 한쪽에 치우침.
  • 새로운 데이터가 기존 최대값보다 커지거나, 최소값보다 작아지는 경우, 스케일링 범위를 벗어날 수 있어 재학습하거나 다른 처리가 필요.

표준화(StandardScaler)

  • 평균을 0, 표준편차를 1로 만듦
  • StandardScaler()
  • 분포가 정규분포에 가깝게 변형됨
  • 평균이 0, 표준편차가 1로 맞춰지므로, 정규분포 가정을 사용하는 알고리즘(선형회귀, 로지스틱회귀, SVM 등)에 자주 쓰임.
  • 변환된 값들이 이론적으로 -∞ ~ +∞ 범위를 가질 수 있습니다.
  • 데이터가 특정 구간([0, 1] 등)에 고정되지는 않습니다.
  • 데이터 분포가 심하게 치우쳐 있으면, 평균과 표준편차만으로는 충분한 스케일링이 되지 않을 수 있습니다(로그 변환, RobustScaler 등 추가 고려).

 

5. 불균형 데이터 처리

문제점

모델이 극도로 적은 클래스를 거의 예측하지 못할 가능성이 큼(편향 발생)

 

해결 기법

1. Oversampling

(1) Random Oversampling

     소수 클래스의 데이터를 단순 복제하여 개수를 늘림

(2)  SMOTE(Synthetic Minority Over-sampling Techniqu

     소수 클래스를 "무작정 복사"만 하는 게 아니라, “비슷한” 데이터들을 서로 섞어서(Interpolation) 새로운 데이터 생성

 

2. Undersampling

다수 클래스 데이터를 줄이는 방식

데이터 손실 위험이 있지만, 전체 데이터 균형을 맞출 수 있음

 

3. 혼합 기법

SMOTE와 언더샘플링을 적절히 섞어서 사용

 

6. 범주형 데이터 변환

원-핫 인코딩(One-Hot Encoding)

범주형 변수를 각각의 범주별로 새로운 열로 표현, 해당 범주에 해당하면 1, 아니면 0

범주 간 서열 관계가 없을 때 사용하기 좋음

범주가 매우 많으면 차원이 커짐

 

레이블 인코딩(Label Encoding)

범주를 숫자로 직접 맵핑(‘M’=0, ‘L’=1, ‘XL’=2 등)

단순하지만, 모델이 숫자의 크기를 서열 정보로 잘못 해석할 수 있

 

7. 피처 엔지니어링 개요

모델 성능 향상을 위해 기존 데이터를 변형, 조합하여 새로운 특성(피처)을 만드는 작업

 

중요성

1. 복잡한 데이터 구조 안에 존재하는 패턴을 효과적으로 추출해 모델이 쉽게 학습하게 함

2. 제조업에서는 센서 데이터 간 시계열적·물리적 관계를 반영하는 경우가 많음

 

파생 변수 생성

1. 날짜 파생 변수

ex) 측정 시간이 ‘2025-02-24 10:35:00’이라면, ‘월(2)’, ‘요일(월=1)’, ‘시(10)’, ‘주말여부(0/1)’ 등으로 분해

 

2. 수치형 변수 조합

두 변수의 상호작용이 불량 발생에 영향을 줄 수 있음

‘온도’와 ‘습도’가 있을 때, 새로운 피처 ‘온도×습도(TEMP×HUMID)’를 추가

 

3. 로그 변환, 제곱근 변환 

분포가 매우 치우친 변수(오른쪽 꼬리가 긴 경우)에 로그 변환을 적용하여 정규성에 가까워지도록 조정

 

변수 선택 (Feature Selection)

1. 상관관계

두 변수 간 상관도가 높은 상황인 경우 다중공선성 의심

중복 정보가 클 수 있으므로, 하나만 남기거나 둘 다 제거 고려

 

2. VIF

회귀분석에서 다중공선성 문제를 파악할 때 사용

어떤 변수 하나가, 다른 변수들과 얼마나 겹치는지(상관이 큰지) 수치로 보여주는 지표

VIF가 일정 기준(예: 10 이상)을 넘으면 해당 변수를 제거하거나 비슷한 변수들을 합치는(변환) 등의 방법으로 문제를 해결

 

3. 모델 기반 중요도(Feature Importance)

트리 기반 모델(랜덤 포레스트, XGBoost 등)을 훈련 후 중요도가 낮은 변수를 제

 

변수 간 상호작용 추가

다항식/교차 항 생성

-> 제조 공정에서 온도, 압력, 속도 등이 곱해져야 비로소 의미가 생기는 경우가 많음

'내일배움캠프_QAQC 1기 > 실무에 쓰는 머신러닝' 카테고리의 다른 글

[1-4] 분류  (1) 2025.03.18
[1-3] 회귀 분석  (0) 2025.03.18
[1-1] 머신러닝이란  (0) 2025.03.13