일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- Python
- 벚꽃개화시기
- 니다
- 독서
- 구글애널리틱스4
- 코딩
- 코오롱베네트
- 얼음여왕
- 데이터문해력
- 채용공고
- 티스토리
- 데이터 분석
- 감사인사
- 미라클 모닝
- 명상
- 6시 기상
- 영화 올드 줄거리
- 수명예측 인공지능
- 기사스크랩
- 알파줄거리
- 구글애널리틱스
- ㅂㅂ
- GA4
- Google Analytics
- GA
- 벚꽃
- 프로그래머스
Archives
- Today
- Total
Data Analyst KIM
[Python] 데이터 전처리 과정(MinMaxScaler,StandardScaler,LabelEncoder) 본문
데이터 분석/Python | SQL | BI Tools
[Python] 데이터 전처리 과정(MinMaxScaler,StandardScaler,LabelEncoder)
김두연 2023. 7. 5. 17:05반응형
(위 파일을 활용하여 전처리를 진행해봐라)
데이터 분석을 하기 위해서는 데이터의 특성을 알고 있어야 한다.
먼저 탐색적 자료분석(EDA)를 통해서 특성을 파악하자.
함수 | 내용 |
df.info() | 데이터 구성과 특성 확인 |
df.head() df.tail() |
데이터 행 추출 |
df.shape | 행,열 수 확인 |
df.describe() | 수학적 통계값(count,mean,std,min,max,...) |
주요 전처리 과정
데이터의 특성은 EDA과정을 한 후 전처리를 진행해야한다.
- 필요없는 컬럼 삭제
- 결측치 처리
- 이상치 처리
- 범주형 변수일 경우 => 인코딩
- 수치형 변수일 경우 => 스케일링
주로 위와 같은 과정은 필수적이다.
필요없는 컬럼의 경우에는 drop또는 pop으로 처리를 해준다.
종속변수와 관계가 없는 변수인 경우 삭제를 한다.
예를 들어 고객의 데이터의 경우 id는 영향을 미치지 않으므로 삭제를 한다.
그리고 독립변수의 개수가 너무 많으면 과적합이 될 가능성이 있으므로 필요없는 데이터를 삭제를 하는 작업이 필요하다.
결측값의 경우에는 중앙값으로 대체를 하거나 집계를 통해서 대체를 하거나 삭제를 하는 등의 처리를 해준다.
이상치의 경우 IQR을 활용하여 최소,최대로 대체를 해주거나 삭제를 하는 방법이 있다.
범주형 변수의 경우 데이터 분석을 하기 용이하게 하기 위해서 인코딩을 진행해준다.
나는 주로 2가지 중에서 사용을 하는데 원-핫 인코딩 or 라벨 인코딩을 사용해준다.
# 라벨 인코딩
from sklearn.preprocessing import LabelEncoder
encoder = LabelEncoder()
encoder.fit(X_train['주구매상품'])
X_train['주구매상품'] = encoder.transform(X_train['주구매상품'])
X_test['주구매상품'] = encoder.transform(X_test['주구매상품'])
라벨링도 간혹 사용하지만 더미를 자주 사용하는 것 같다.
원핫 인코딩은 직접 찾아보며 공부하시길!!
수치형 변수의 경우에는 스케일링을 해준다.
독립변수간 값의 차이가 많이나는 경우에는 예측에 오차가 있을 수 있다.
그래서 주로 MinMaxScaler나 StandardScaler를 사용한다
MinMaxScaler는 최소-최대를 활용하여 값을 만들고 StandardScaler는 정규화를 시킨다.
cols = ['총구매액','최대구매액','내점일수','내점당구매건수','주말방문비율','구매주기'] # 수치형 변수
from sklearn.preprocessing import MinMaxScaler
scaler = MinMaxScaler()
scaler.fit(X_train[cols])
X_train[cols] = scaler.transform(X_train[cols])
X_test[cols] = scaler.transform(X_test[cols])
반응형
'데이터 분석 > Python | SQL | BI Tools' 카테고리의 다른 글
[Web Server] Django mini_project(Create my blog) (0) | 2023.07.15 |
---|---|
[빅데이터 양성과정] 1.Python Basic(노션 정리) (0) | 2023.07.09 |
[Python] 기초 - pandas,dataframe (0) | 2023.07.05 |
[Python] 데이터 시각화(Matplotlib,Seaborn) (0) | 2023.07.02 |
[SQL] 데이터 가공하기(case when, cast, concat, join) (0) | 2023.06.27 |