데이터 전처리 주요 기법
1. 데이터 실수화 ( Data Vectorization )
: 범주형 자료. 텍스트 자료, 이미지 자료 등을 실수로 구성된 타입으로 변환
EX 1 > One-hot encoding을 이용한 범주형 자료 실수화 : DictVectorizer(sparse)
*Default -> sparse = True
* 희소행렬 ( 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 숫자로 사용.
'혤로그 이전의 기록 > 프로젝트 일지' 카테고리의 다른 글
[ Raspberry Pi ] UV4L를 이용한 실시간 스트리밍 테스트 (4) | 2021.01.31 |
---|---|
[ Machine Learning ]K-Nearest Neighbors(KNN) : 최근접이웃 강의 내용 정리 (0) | 2021.01.30 |
[인공지능] 선형회귀 (Linear regression) , 경사하강(Gradient Descent Algorithm) 강의 내용 정리 (0) | 2021.01.11 |
[ StereoPi with PI Camera - VR live Streaming] 2020.11.17 (0) | 2020.11.17 |
[라즈베리파이] 카메라 모듈 (Pi camera) 사용하기 (1) | 2020.11.17 |