나는 오늘 무엇을 배웠는가?
1. 멋쟁이 사자처럼 AIS 7기 수업(파이썬, 오늘코드 박조은 강사님) 수강
전처리: 정규화, 이상치(제거 혹은 대체), 결측치(제거 혹은 대체), 인코딩
✨ 데이터 셋의 유일값 확인 및 기타처리
train 데이터 셋 유일값 확인
set(train["변수"].unique()) - set(test["변수"].unique())
test 데이터 셋의 유일값 확인
set(test["변수"].unique()) - set(train["변수"].unique())
Q. 유일값 비교 후 train과 test 데이터 셋 중 한쪽에만 변수가 있는 경우
A. 기타로 처리해주는 것이 좋다.
기타로 예외처리를 할 때는
예외처리할 값을 처리하는 방식 보다는 남길 값들을 제외한 값들을 예외처리하는 것이 좋다.
전자의 방법을 사용하면
추후 train, test에 없는 값이 들어왔을 때 다시 전처리 해주는 등 추가 예외처리가 필요하기 때문이다.
그리고 train과 test의 피처 개수가 다르면 오류가 발생하니 주의!!
특히 원핫인코딩을 할 때 train과 test의 피처 개수와 종류가 같은지 확인 필수
✨ 인코딩(binary, one-hot)
머신러닝에서는 문자형 변수가 있으면 오류가 발생하며, 문자형 변수를 수치형 변수로 바꿔주어야 한다.
범주형 변수를 수치형 변수로 바꿔는 인코딩 방법 2가지
1. Ordinal-Encoding
2. One-hot-Encoding
1️⃣ Ordinal Encoding
a <- 1
b <- 2
이런 식으로 들어가는 순서형 인코딩으로, 순서가 있는 데이터라면 사용하기에 적합하지만
순서가 없는 데이터라면 의도치 않은 연산이 발생할 수 있다. (a + b 는 3이 아니다.)
이런 경우에는 one-hot-encoding을 사용한다.
2️⃣ one-hot-encoding
범주형 데이터를 수치형 데이터로 전처리할 때 자주 사용되는 인코딩 기법으로
한 개의 1과 수 많은 0의 값으로 데이터를 구별하는 인코딩이다.
(파이썬에서 인식하는 수치형 데이터는 int, float, bool이다.
따라서 int, float, bool -> object로 변환해준다.)
pandas와 sklearn을 활용하여 원 핫 인코딩을 진행할 수 있는데,
수치데이터와 범주형 데이터를 함께 넣어도 수치형 데이터는 그대로 범주형 데이터에 대해서만 인코딩을 해주기 때문에 pandas를 사용하는 것이 편리하다.
✨ 결측치 다루기
1️⃣ fillna
method: {'backfill', 'bfill', 'pad', 'ffill', None}
예시) fillna(method = ffill)
2️⃣ interpolate (보간법)
limit_direction: {'forward', 'backward', 'both'}
both 사용 시 위 아래 결측치를 모두 채워주고 나머지는 채울 방향을 설정한다.
예시) interpolate(method='linear', limit_direction='both')
2. 천리길 스터디 진행
3. 머신러닝 복습
나는 오늘 무엇을 느꼈는가?
전처리를 어떻게 하는지에 따라 모델의 성능이 달라지는게 신기하다.
눈이 너무 아프다...
총 공부시간
11시간 57분 04초
- AIS 7기: 8시간(09-18)
- 스터디: 1시간 30분
- 그 외: 2시간 27분 04초
[참고]해야하는 일
1. 웹스크래핑 정리
2. 미니1 프로젝트 회고
3. EDA 다시 정리
- 여러 가지 변수들 기타로 묶기
4. 미니2 프로젝트 회고
5. 미드프로젝트 회고
6. 머신러닝, 분류/회귀 알고리즘 정리
'복습 및 회고 > TIL' 카테고리의 다른 글
[TIL] 20221104(금) (0) | 2022.11.04 |
---|---|
[TIL] 20221103(목) (0) | 2022.11.03 |
[TIL] 20221101(화) (0) | 2022.11.01 |
[TIL] 20221031(월) (0) | 2022.10.31 |
[TIL] 20221030(일) (0) | 2022.10.30 |
댓글