Snoopy [TIL] 20221102 (수)
복습 및 회고/TIL

[TIL] 20221102 (수)

Sooyoon Jeong 2022. 11. 2.

나는 오늘 무엇을 배웠는가?

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

댓글