본문 바로가기

데이터

파이썬 실습 - 이상치(Outliers) 제거하기

반응형

이상치 제거하기

 

 

 


 

먼저 이상치를 제거해줄 데이터에 대해 박스플롯을 찍어 봅니다.

저는 총 세 개의 데이터에 대해 이상치 제거를 해줄 것이므로 박스플롯을 세 번 찍어 주겠습니다.

여기서는 seaborn의 boxplot을 사용해 주었습니다. 컬러는 레드를 넣었습니다.

 

 

 

 

 

 

 

 

빨간색 박스가 아래 배치되어 있고 그 위로 수 많은 마름모 모양의 이상치들이 존재하는 걸 확인할 수 있습니다.

 

 

 

 

 

 

 

두 번째 데이터에 대해 박스플롯을 찍어봅니다.

이번에 박스 컬러를 옐로우로 넣었습니다.

 

 

 

 

 

 

 

 

역시 노란색 박스 위로 이상치들이 무수히 많이 존재하는 걸 확인할 수 있습니다.

 

 

 

 

 

 

 

마지막 데이터도 박스플롯을 찍어봅니다.

이번엔 컬러를 그린으로 주었습니다.

 

 

 

 

 

 

 

위, 아래로 이상치들이 존재하는 걸 확인할 수 있습니다.

 

 

 

 

 

 

다음 이상치를 제거할 함수를 하나 만들어보겠습니다.

먼저 numpy를 불러옵니다.

그리고 4분의 3에서 4분의 1지점을 빼준 iqr을 계산해준 뒤 

lower_bound, upper_bound를 계산하는 식에 넣어줍니다.

데이터가 upper_bound보다 크거나 lower_bound보다 작을 경우를 return해줍니다.

(해당 함수의 이해를 돕기 위해 바로 아래에 그림을 첨부합니다.)

 

 

 

 

 

 

 

 

 

 

다음 이상치를 제거해줄 데이터들을 정의해준 함수에 차례대로 넣습니다.

 

 

 

 

 

 

 

각각 데이터들의 이상치에 대해 확인합니다.

 

 

 

 

 

 

 

 

 

 

 

 

그리고 concatenate함수를 이용해 이 (array형태의) 세 함수를 합쳐줍니다. 

이상치의 총 개수도 print해줍니다.

 

 

 

 

 

 

 

for문을 이용해 이상치가 아닌 index를 lead_not_outlier_index에 넣어줍니다.

 

 

 

 

 

 

 

인덱스를 리셋해준 후 출력해줍니다.

 

 

 

 

 

이상치가 모두 제거되었습니다.

 

반응형