본문 바로가기
혤로그 이전의 기록/프로젝트 일지

[ Machine Learning ] 데이터 전처리 강의 내용 정리

by hyelllllog 2021. 1. 18.
데이터 전처리 주요 기법 

1. 데이터 실수화 ( Data Vectorization )

: 범주형 자료. 텍스트 자료, 이미지 자료 등을 실수로 구성된 타입으로 변환 

 

EX 1 > One-hot encoding을 이용한 범주형 자료 실수화 : DictVectorizer(sparse)

*Default -> sparse = True  

One-hot encoding

* 희소행렬 ( Sparse Matrix )

- 불필요한 0값으로 인해 메모리 낭비가 심함, 연산 시 시간 소요 ↑

- 해결 방법 : COO표현식, CSR표현식 ( 참고 : bkshin.tistory.com/entry/NLP-7-%ED%9D%AC%EC%86%8C-%ED%96%89%EB%A0%AC-Sparse-Matrix-COO-%ED%98%95%EC%8B%9D-CSR-%ED%98%95%EC%8B%9D )

 

EX 2 > 단어의 출현 횟수를 이용한 텍스트 자료 실수화 : CountVectorizer(sparse)

- 출현 횟수가 정보의 양과 비례하는 것은 아님. 

- 해결 방법 :  TF-IDF ( Term Frequency Inverse Document Frequency ) 기법을 이용 -> TfidfVectorizer()

 

 

2. 데이버 변환 ( Data Transformation )

필요성 -> 데이터가 가진 특성 간 스케일 차이가 심하면 패턴을 찾는데 문제 발생 

 

- 변환 방법 

ⓐ 표준화 (Standardization)

ⓑ 정규화 (Normalization)

--> 보통 : 정규화  , 데이터 특성이 bell-shape이거나 이상치가 있을 경우 : 표준화 

 

3. 데이터 정제 ( Data Cleaning )

: 결측 데이터 ( Empty Values : np.nan, npNAN, None ) 채우기

- 방법 : 평균(mean), 중위수(median), 최빈수(most frequent value) : Imputer (strategy)

 

4. 데이터 통합 ( Data Integration )

: merge()

 

5. 데이터 불균형 ( Data Imbalance )

: 클래스 관측치의 차이가 큰 경우

 

- 불균형 해소 방법

ⓐ 과소표집 ( undersampling ) : NearMiss()

: 다수클래스의 표본을 임의로 학습데이터로부터 제거 

ⓑ 과대표집 ( oversampling )

: 소수클래스의 표본을 복제하여 학습데이터에 추가 

 

-> 과대표집이 통계적으로 유용

-> 의사결정나무(decision tree), 앙상블(ensemble)은 상대적으로 불균형자료에 강인

 

- 과대표집의 방법론

ⓐ SMOTE (synthetic minority oversampling technique) : SMOTE(random_state)

ⓑ ADASYN (adaptive synthtic sampling method) : ADASYN(random_state)

 

*random_state : 난수의 초기값.

정수 값을 입력하면 숫자를 random하게 생성할 때 사용되는 seed 숫자로 사용.