일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- curdate
- datediff
- DATE_FORMAT
- concat
- limit
- floor
- 프로그래머스
- 데이터 리터러시
- join
- Recursive
- 태블로
- 모집단
- 신뢰구간
- dateofmonth
- 재퀴쿼리
- truncate
- 표준오차
- pivot table
- python
- calesce
- split
- 재귀쿼리
- 표본분포
- tableau
- 레이더차트
- 표분편차
- merge
- 정규분포
- rrule
- lambda
- Today
- Total
hyezdata 님의 블로그
[머신러닝] 데이터 전처리 본문
01. 결측치
결측치 파트는 다른 강의에서 배워서 생략
02. 이상치 탐지 및 제거
이상치도 생략
03. 정규화/표준화(스케일링)
만약 어떤 A의 범위가 0~1000이고, B의 범위가 0~1이라고 할 때, 둘 다 똑같이 반영하는 게 아니라 A가 모델에 더 큰 영향을 주게 되므로 단위를 스케일링을 통해서 조정한다.
1. 정규화
1) MinMaxScaler
모든 값을 0과 1 사이로 맵핑
- 값의 스케일이 달라도 공통 범위로 맞출 수 있다.
- 최소값, 최대값이 극단값(Outlier)에 민감하다. 만약 outlier가 있으면 데이터가 한쪽으로 치우치게 된다.
- 새로운 데이터가 기존 최대값, 최소값 다른 경우, 재학습하거나 다른 처리가 필요하다
2. 표준화
1) StandardScaler
평균을 0, 표준편차를 1로 만든다.
- 분포가 정규분포에 가깝게 변형된다.
- 정규분포 가정을 사용하는 알고리즘(선형회귀, 로지스틱회귀, SVM)에 자주 쓰인다.
- 변환된 값이 - ∞ ~ + ∞ 범위를 가질 수 있으나 대부분 -3 ~ +3 사이의 값을 가진다.
- 데이터 분포가 심하게 치우쳐 있으면 충분한 스케일링이 되지 않을 수 있다.
04. 불균형 데이터 처리
한 클래스가 극도로 적은 경우를 말한다. (ex. 정상 99%, 불량 1%) → 편향 발생
1. 해결 방법
1) Ovsersampling
- Random Oversampling : 소수 클래스의 데이터를 복제하여 개수를 늘리는 방법
- SMOTE(Synthetic Minority Over - sampling Technique) : 소수 클래스를 복사만 하는 것이 아니라 비슷한 데이터들을 서로 섞어서 새로운 데이터를 생성하는 방법
- ex. 모양이나 맛이 두 개의 오렌지를 고른 다음, 그 중간이 되는 새로운 오렌지를 만들어 내는 것
2) Undersampling
다수 클래스 데이터를 줄이는 방법
데이터 손실 위험이 있지만, 균형을 맞출 수 있다.
3) 혼합 기법
SMOTE와 Undersampling을 섞어서 사용하는 방법
05. 범주형 데이터 변환
1. 원-핫 인코딩(One-Hot Encoding)
범주가 많으면 차원이 커져 주의해야 한다.
2. 레이블 인코딩(Label Incoding)
범주를 숫자로 맵핑
06. 피처 엔지니어링
복잡한 데이터의 패턴을 변형, 조합하여 새로운 피처를 만들어 모델이 쉽게 학습하게 하는 방법
1. 파생 변수 생성
1) 날짜 파생 변수
년도, 월, 일, 요일, 시간, 주말 등으로 분해
2) 수치형 변수 조합
예를 들어 온도와 습도가 있을 때, 새로운 피처 '온도x습도'를 추가한다. 단, 불량 발생에 영향을 줄 수 있으니 주의
3) 로그 변환, 제곱근 변환 등
분포가 매우 치우진 변수(긴꼬리)에 로그 변환을 적용해서 정규성에 가까워지도록 조정한다.
2. 변수 선택(Feature Selection)
차원축소와는 반대. 변수 선택은 말 그대로 선택이라면, 차원축소는 변형하는 것
1) 상관 관계
두 변수간에 상관도가 높은 상황인 경우 다중공선성 의심 → 하나 or 둘 다 제거
※ 다중공선성(Multicollinearity)
회귀분석을 할 때, 여러 독립변수를 사용하는데 이 변수들이 서로 너무 비슷한 정보를 담고 있어(=강하게 상관이 있음) 모델이 헷갈리는 문제 발생 → VIF 높게 나타남
2) VIF
회귀분석에서 다중공선성 문제를 파악할 때 사용
어떤 변수 하나가 다른 변수들과 얼마나 겹치는지(상관이 큰지) 수치로 보여주는 지표이다.
3) 모델 기반 중요도(Feature Importance)
트리 기반 모델을 훈련 하고 중요도가 낮은 변수를 제거
3. 변수 간 상호작용 추가
1) 다항식/교차 항 생성
ex. 제조에서 온도, 압력, 속도 등을 곱해서 새로운 변수 만들기
'내일배움캠프 > 머신러닝' 카테고리의 다른 글
[머신러닝] 회귀(Regression) (0) | 2025.04.17 |
---|---|
[머신러닝] 분류(Classification) (0) | 2025.04.17 |
[머신러닝] 머신러닝이란? (0) | 2025.04.17 |