이제 EDA를 한다고 시간을 버리지 말자!
데이터 분석을 공부하기 위해 통계학책을 보거나 데이터 분석책을 보다보면 항상 나오는 단어가 있습니다.
EDA!
EDA (Exploratory Data Analysis), 즉 탐색적 자료 분석입니다. 말 그대로 데이터를 탐색하듯이 이렇게 저렇게 살펴보면서 분석하자는 의미이지요. 미국의 저명한 통계학자이셨던 존 튜키라는 분이 창안한 자료 분석 방법론입니다. 통계학의 경우 크게 기술 통계, 추론 통계로 나뉘는데, 기술 통계의 경우 너무 경직된 몇 개의 수치 항목으로 보는 경향이 있고, 추론 통계의 경우 너무 가설 검정에 치우지는 경향이 있지요.
탐색적 자료 분석은 주어진 자료만 가지고, 그래프도 그려보고, 기술 통계값들도 살펴보는 등 여러 가지 방법을 찾아서 데이터의 본 의미와 데이터 분석을 위한 시작점을 찾고자 하는 것이지요.
그런데 말입니다...
막상 하려니, 간단한 기술통계 항목들을 계산하려는데, 살펴볼 variable 즉, 변수가 3개 이상만 되더라도 3번 반복해야하고, 그래프를 그리려하면 이상하게 귀찮고, 생각한 대로 그려지지가 않습니다.
또한, 어렵게 기술 통계량들을 구하고, 그래프를 만들더라도 문제는 이것들을 한번에 볼 수 있도록 정리가 필요합니다.
어느덧, 데이터 분석에서 코딩, 그리고 정리하는 방향으로 본질이 벗어나고 있습니다.
수단이 목적이 되어가는 것이지요...
이제, 앞으로 효율적으로 EDA을 하는 방법을 살펴보겠습니다.
모두 3가지 방법인데, 파이썬 라이브러리를 사용합니다. 어찌보면 Automated EDA (자동화 EDA)라고도 할 수 있을 것 같습니다.
첫번째 시간으로 dataprep이라는 것을 소개하겠습니다. 공식 홈페이지는 아래와 같습니다.
왠지 화면만 봐도 깔끔해 보입니다.
설치는 매우 간단합니다. 파이썬이 설치된 환경에서
pip install dataprep
를 실행하면 됩니다.
이제 dataprep으로 EDA를 하면 됩니다. 어렵지 않습니다. 라이브러리 불러오는 줄 몇개를 제외하고 단 5줄이내로 가능합니다.
1. 데이터 불러오기
2. EDA 실행 및 레포트 생성
3. EDA 보고서 보기
이 3가지를 각각 소스코드 1줄씩으로 표현할 예정입니다. 데이터는 가장 만만한 데이터인 타이타닉 데이터를 사용하겠습니다.
https://www.kaggle.com/competitions/titanic
위 소스코드가 전부입니다.
1행은 타이타닉 데이터를 불러오기 위해 사용할 판다스 라이브러리를 불러옵니다.
2행은 우리를 위해 EDA를 하고 보고서를 만들 파이썬 라이브러리인 datatrep을 불러옵니다.
4행에서는 타이타닉의 학습 데이터인 train.csv를 불러와서 df라는 데이터프레임에 저장합니다.
5행에서는 4행에서 불러온 데이터프레임 df를 가지고 "나의 Titanic Traning Data"라는 보고서를 만들어 달라고 요청합니다.
6행에서는 생성한 보고서를 브라우저에서 열어보거나, 다른 사람에게 공유할 수 있도록, html 파일로 저장합니다. 이 때, 파일이름을 "나의_Titanic_EDA.html"로 지정하였습니다.
8행과 9행은 생성하고 저장한 파일을 보여달라고 요청하는 것입니다.
위 소스코드를 실행하면 10초만에 브라우저에 아래와 같은 화면이 나옵니다. 직접 만들려면 고생을 해야 하지만, dataprep에게 맡기면 금방 생성해 주는 보고서 입니다. 특히 이 보고서는 대화형입니다. 즉, 우리가 클릭을 하면 클릭한 방식으로 각종 결과를 보여줍니다.
주요 분류로 Overview (개요), Variables(변수), Interactions(상호작용), Correlations(상관관계), Missing Values(결측치 확인)가 제공됩니다. 각각 마우스 클릭으로 해당 데이터에 맞는 자세한 내용을 볼 수 있고, Interactions의 경우는 X, Y값을 다르게 해서 그래프를 볼 수 있습니다.
Variables의 경우 Sort by 를 클릭해서, 변수들을 기준에 맞춰서 정렬해서 볼 수 있습니다.
Show Details를 클릭하면 아래 화면이 나오면서,
수치 데이터의 경우 통계 지표, KDE Normal Q-Q, Box Plot 그래프를 볼 수 있습니다.
범주형 데이터의 경우 통계 지표, Pie Chart, Word Cloud, Word Frequency, Word Length를 볼 수 있습니다.
Interactions의 경우는 X, Y축 각각을 선택해서 그래프를 그릴 수 있습니다.
Correlations의 경우는 Pearson, Spearman, KendallTau 3가지 방법으로 볼 수가 있네요!
결측치도 Barchart, Spectrum, Heat Map, Dendrogram 4가지 방법으로 볼 수가 있네요.
어떠신가요? 이런 훌륭한 EDA 보고서를 코딩도 별로 안 하면서 금방 만들 수 있다는 것에 신기도 하면서 고맙지 않으신가요? 이런 EDA나 보고서를 만들 시간에 좀더 데이터 분석을 위한 시간을 더 많이 가지면 어떨까요?
dataprep에는 이외에도 Clean, Connector기능을 가지고 있습니다. 나중에 또 차근차근 설명해 드리겠습니다.
또한, 나머지 2개 EDA 파이썬 라이브러리를 살펴보고, EDA 데이터 보고서를 한번 다시 살펴보면서 데이터 분석을 해도록 하겠습니다.
그럼 앞으로 쉽고 즐겁고 효율적인 데이터 분석이 시작점이 되셨으면 합니다!