데이터 - 데이터 전처리 기법의 이해

hanss·2022년 4월 11일
0

학습 내용

Data Preprocessing

알고리즘을 적용시키기 전 학습에 필요한 데이터를 사용하기 적합한 형태로 처리하는 일이다.
일반적으로 전체 프로젝트 시간의 80~90%에 해당될 정도로 알고리즘을 찾는 과정보다 시간이 더 소모된다.
알고리즘이 잘못된 경우 지속적인 실험으로 개선할 수 있지만 데이터가 잘못된 경우에는 실험 결과가 개선되지 않는다.

1. Scaling

데이터의 크기를 일정하게 맞춰주는 작업

1-1 Min-Max Scaling

값들의 무게가 똑같이 맞춰지도록 처리하여 값의 범위가 0~1 사이로 변경된다.

# Min-Max Scaling : sklearn 라이브러리 사용
from sklearn.preprocessing import MinMaxScaler

mMscaler = MinMaxScaler()	#메모리 상에 인스턴스화

mMscaler.fit(data)	#data를 Min-Max Scaling에 적용

# 실제로 Min-Max Scaling를 동작시켜 데이터를 변환하는 명령어
mMscaled_data = mMscaler.transform(data)

# *fit과 tranform은 한 세트다
# fit과 tranform을 같이 하는 명령어
mMscaled_data = mMscaler.fit_transform(data)
  • Min-Max Scaling 처리 전 데이터

  • Min-Max Scaling 처리 후 데이터

1-2 Standard Scaling

분포를 맞추는 것을 z-score라고 한다.
표준정규분포화 시켜 스케일링하는 방식

from sklearn.preprocessing import StandardScaler
sdscaler = StandardScaler()
sdscaler_data = sdscaler.fit_transform(data)

2. Sampling

클래스의 불균형 문제를 해결
Sampling에는
적은 클래스의 수를 증가시키는 Oversampling과
많은 클래스의 수를 감소시키는 Undersampling이 있다.

Random Oversampling, Undersampling 임의 샘플링

가장 쉽게 샘플링 하는 방법으로 임의(Random)로 데이터를 선택, 복제 혹은 제거하는 방식이 있다.
하지만 복제하는 경우 선택된 데이터에만 맞는 과접합 문제가 생길 수 있으며, 제거하는 경우에도 데이터 자체에 손실이 커서 데이터의 특성을 잃어버리는 문제가 생길 수 있다.

imblearn 라이브러리를 사용하므로 없다면 설치한다.

pip install imblearn
#imblearn 라이브러리를 사용
from imblearn.over_sampling import RandomOverSampler
from imblearn.under_sampling import RandomUnderSampler

ros = RandomOverSampler()
rus = RandomUnderSampler()

- Random Oversampling

  • 오버샘플링 전 데이터 확인
#Oversamping
oversampled_data, oversampled_label = ros.fit_resample(data, label)
  • 오버샘플링 후 데이터 확인

- Random Undersampling

undersampled_data, undersampled_label = rus.fit_resample(data, label)
  • 언더샘플링 후 데이터 확인

학습 후기

오늘 수업은 정말 집중해서 들어야하는 수업이였지만 중간에 흐름을 놓쳐 코드만 열심히 치고 결국 수업이 끝난 후 강의영상을 다시 보며 복습했다. 다시보니 중간중간 놓쳤던 중요한 말 때문에 이해 못 했었던 것들이 정리되었다.
알고리즘만 배울 땐 알고리즘이 제일 어렵고 중요한 줄 알았는데 알고리즘 적용 전 데이터를 전처리하는 작업이 제일 중요하고 쉽지 않은 작업임을 알았다.
이전에는 컴퓨터가 데이터를 처리하는 것이 신기하다고만 생각했지만 수업을 들으면서 그걸 만든 사람들의 대단함과 의외로 사람이 작업할 것이 많음을 알게 됐다.

profile
열심히 하는 중

0개의 댓글

관련 채용 정보