Snoopy [ML] 15. 데이터 전처리 (4) - 이상치 다루기(스케일링)
머신러닝과 딥러닝/ML 개념정리

[ML] 15. 데이터 전처리 (4) - 이상치 다루기(스케일링)

Sooyoon Jeong 2022. 11. 9.

멋쟁이 사자처럼 AI스쿨 7기 오늘코드 박조은 강사님의 수업 자료를 바탕으로 포스팅하였습니다.


1. 이상치란?

feature에서 일반적인 값의 분포를 벗어나는 경우

- 데이터 수집과정 또는 조작과정에서 오류가 나서 이상치 발생

- 정말 예외적인 경우가 발생하여 이상치 발생

 

이상치를 찾는 2가지 방법

1) 값의 범위를 지정하여 범위에서 벗어나는 값 찾기

2) 데이터를 시각화 하여 눈에 띄는 값 찾기

 

1번 방법은 2번에 비해 전문적이지만 어렵고

2번 방법은 2번에 비해 한 눈에 파악하기 쉽지만 주관적일 수 있다.

 

2. 왜 이상치를 처리해야 할까?

데이터를 왜곡하여 잘못된 결론을 도출할 수 있기 때문에

적절한 방법으로 처리를 해주어야 한다.(제거, 대체 등)

 

3. 이상치 탐색

1) 기술통계 값 확인하기

train["label_name"].describe()

 

2) 시각화

sns.scatterplot(data = train, x = train.index, y = "label_name")
plt.axhline(500000, c = "b", ls = ":")

 

3) 임의의 범위를 지정한 후 범위에 벗어난 값들 파악하기

 

4. 이상치의 처리

Q. train의 정답 값에 이상치가 있다면 어떻게 처리하는 것이 좋을까?

A1. 제거
-> train은 제거가 가능하지만, test는 제거가 불가능하다.

A2. 평균값, 중앙값으로 대체
-> 너무 극단적인 값을 평균이나 중앙값으로 대체한다면 실제값이 많이 왜곡될 수 있다.

A3. 사분위수로 분할해서 예측
-> 이게 피처라면 가능할 수도 있는 접근법이지만 정답(label, target)값이기 때문에 불가능하다.

A4. 스케일링
-> 스케일링 하는 것이 좋다. log를 취했던 것처럼 다시 복원도 가능하다.

 

 

댓글