숫자만 좋아하는 컴퓨터씨에게 데이터를 잘 전달하는게 중요하죠.
저를 위한 정리글 2탄, 데이터 인코딩 편입니다.
🤷♀️ 인코딩을 왜하나?
| 범주형 데이터를 숫자 형태로 변환시켜주기 위해!
목차
인코딩
1. 레이블 인코딩
2. 원-핫 인코딩
3. 기타
정규화
1. MINMAX
2. 표준화
인코딩
1. 레이블 인코딩
레이블 인코딩이란 ?
: 범주형 데이터를 숫자로 1:1 MAPPING 시켜주는 인코딩 방법
예시
[구매 상품] 피처를 아래와 같이 인코딩
책상 : 1 , 냉장고 : 2 , 티비 : 3
구현
sklearn.preprocessing import LabelEncoder
le = LebelEncoder()
le.fit(x)
x_le = le.transform(x)
주의할점
: 명목형 데이터, 즉 순위가 없는 데이터를 레이블 인코딩시 컴퓨터가 잘 못 학습할 수 있음
e.g. 책상 : 1 , 냉장고 : 2 , 티비 : 3 으로 인코딩했다고치면, 책상과 냉장고 그리고 티비는 서로 별개 데이터인데 책상-냉장고를 유사 데이터라고 인식할 수 있음(1-2 가 1-3 보다 서로 더 가까운 숫자니까)
그럼 어떻게하나? 2번 원-핫 인코딩으로 가넝한~
2. 원-핫 인코딩
원-핫 인코딩이란?
: 피처의 고유값을 열로 만든 후 고유값에 해당하는 열에 1을 표시
예시
책상 | 냉장고 | 티비 |
1 | 0 | 0 |
0 | 1 | 0 |
0 | 0 | 1 |
구현
pd.get_dummies(x)
주의할점
: 고유값이 너어어어무 많아서 열이 너어어어무 늘어나면 안좋지 않을까? → 아래 방법으로 진행하며 성능차이를 확인해줘야합니다
(1) 비슷한 애들끼리 그룹화
(2) 빈도가 적은 애들은 '기타'에 다 넣기
e.g. 한국 10,000개 대만 5,000개 필리핀 3,000개... 일본 1개 중국 1개 러시아 1개 → 일본, 중국, 러시아를 "기타" 로 변환시킨 후 원-핫인코딩
(3) 다른 인코딩 방법 선택하기
3. 기타 인코딩
제가 저번 필사에서 알게된 인코딩 법이 있습니다.
Frequency Encoding !!
각 데이터의 구성 비율로 바꿔주는건데,
분류의 Boosting Tree 모델을 사용할 때 성능을 높이고자 쓰인다고 하는데, 물론 모든 분류기법에 맞다! 는 말이 아니란거 아시죠? 그냥 이럴때 이런 인코딩법도 쓰더라~~ 로 알고 넘어갔습니다.
관련 글이 궁금하시다면? ▼
[Kaggle 필사] 성인 인구조사 소득 예측 대회 필사 - 코드 풀어서 공부하기( 결측치 처리, 중복행 출
안녕하세요 여러분 오랜만에 돌아왔습니다. 사실 일주일에 한번 [모두의 연구소]에서 데이터 분석 모임을 진행하는데, 그 안에서 팀을 꾸려 Kaggle이나 Dacon 대회를 나가기로 결정했어요! 근데 이
debbie-da.tistory.com
피처 스케일링
모델 훈련을 제대로 시키기 위해 필요한 피처 스케일링! 특히 회귀 모델에 필수적이죠.
말 그대로 훈련에 투입될 데이터들의 Scale이 비슷하게 만들어주는 절차입니다.
※ Tree 기반 모델(랜덤 포레스트, XGBOOST, Light GBM 등) 엔 할 필요 X
1. MINMAX
| 피처 값의 범위를 0~1로 조정하는 기법
구현
sklearn.preprocessing import MinMaxScaler
mm = MinMaxScaler()
mm.fit(df)
df_sc = mm.transform(df)
주의사항
: 이상치가 너무 크거나 작으면 추천 X
2. 표준화
| 평균 0, 분산이 1이 되도록 피처 값을 조정하는 방법
구현
sklearn.preprocessing import StandardScaler
sc = StandardScaler()
sc.fit(df)
df_sc = sc.transform(df)
알아두기
: 정규분포를 따르는 데이터는 표준화스케일링을 적용하는 것이 좋다합니다
+ 추가 블로그
http://www.dodomira.com/2016/10/20/how_to_eda/
※ 향후 인코딩 관련 정보 습득시 이 글에다 추가할 예정이여요
참고서 : 머신러닝, 딥러닝 문제해결 전략
'나혼자 DA' 카테고리의 다른 글
돈만주면 모델들 다 써먹을 수 있는 사이트 - huggingface (0) | 2023.03.10 |
---|---|
Chat GPT가 내가 원하는 데이터로 완벽한 ML을 하게 해줄까? 도전글 (0) | 2023.03.10 |
[데이터 분석 정리] 데이터 시각화 정리글 (0) | 2023.01.30 |
[공부하기] 프로세스 마이닝 기본 (프로세스 마이닝, 이벤트 로그, 프로세스 마이닝 종류) (0) | 2022.12.05 |
[알아보기] 프로세스 마이닝이 뭘까? Process-Mining? (1) | 2022.12.05 |