요즘 수업하면서 box plot의 기초에 대해 궁금해 하시는 분들이 많아서 이 부분만 다시 이야기하려고 블로그에 정리합니다. 데이터의 분포를 관찰하는 좋은 도구 중에 하나가 Box Plot입니다. 간단히 예를 보도록 하죠.
임의로 데이터를 만들어 두겠습니다. 그리고 그림을 그리기 위한 y값도 1로만 채워두겠습니다.
그려보면 위 그림처럼 되죠. 100 근처의 값들이 생뚱(^^)맞게 크게 잡혀있네요.
이제 numpy의 median 명령으로 중간값을 찾아보겠습니다. 45라는 값이 딱 중간 값인가 봅니다.
numpy의 percentile 명령을 이용하면 4분의1 (25%), 4분의3 (75%) 지점의 값들을 찾아보면 16과 48이라고 합니다.
그 값을 각각 q1, q3라고 하고 가운데 값은 q2라고 하겠습니다. 그리고 q3와 q1의 간격을 iqr이라고 이름붙입니다. iqr의 1.5배만큼 75%지점에서 큰 값을 upper_fence, iqr의 1.5배 값을 25% 지점보다 낮은 지즘을 lower_fence라고 합니다.
그리고 axvline이라는 수직선을 그리는 함수를 이용해서 그립니다.
저렇게 되는군요. 빨간선이 가운데값, 두 검은 선이 각각 1/4, 3/4 지점의 값, 그걸 각각 q1, q3라고 하고, 그 간격을 iqr이라고 하고 1.5배 이상 벌어진 값보다 큰값, 위 그림에서는 100 근처의 값 두 개가 outlier가 됩니다.
방금 했던 이야기를 정리하면 위 그림처럼 됩니다.
물론 간단하게 seaborn을 이용해서 boxplot을 쉽게 그릴 수 있습니다~~^^
'Theory > DataScience' 카테고리의 다른 글
Selenium 처음 시작해 보기 (10) | 2021.09.30 |
---|---|
Jupyter Notebook을 원격으로 접속하기 (7) | 2021.04.08 |
Python scikit learn의 Label Encoder와 MinMax, Standard, Robust Scaler 이해하기 (6) | 2021.04.05 |
Colab에서 KoNLPy와 WordCloud 설정하기 (4) | 2021.01.15 |
한글 형태소 분석기 KoNLPy 사용을 위한 환경 설정 해보기 (8) | 2020.12.23 |
네이버 검색 결과를 API를 이용해서 쉽게 받아보자 (6) | 2020.10.13 |
웹에 있는 데이터를 가져와보자 (12) | 2020.08.28 |