본문 바로가기
그냥 생각난 것들/어쩌다 데이터

어쩌다 데이터 10 : EDA를 하지 않은 데이터 분석의 문제점

by 일말고프로젝트 2022. 1. 24.

 

EDA(Exploratory Data Analysis) 탐색적 데이터 분석

 

0. 들어가며

 

데이터 분석 실무를 하며 제대로된 EDA 없이 분석을 시작할 때가 많은데 여러 문제점을 온 몸으로 느끼고 있다. 학부시절 EDA 과목을 몇 개나 들을 때는 괜한 구색 맞추기 아닌가, 예쁘게 그려보는게 무슨 의미가 있을까 생각하고 대강 넘겼었는데 아주 뼈 아프게 반성하고 있다.(죄송합니다 교수님..) 어쨌거나 최근 좋지 않은 분석 습관도 고치고, 제대로 개념도 정리해보고자 EDA 관련해 정리해본다.

 

맛있는 요리’를 만들기 위해서 가장 먼저 해야 할 일은 ‘맛있는 식재료’를 준비하는 것이라고 생각한다. 식재료가 맛있으면, 조리방법이 간단해도 맛있는 요리가 나오듯 데이터 분석에 있어서 ‘맛있는 식재료’라고 할 수 있는 EDA를 잘 한다면 의미있는 결과값을 도출하기 조금 더 수월해진다고 생각한다.

- [데이터 사이언스] EDA의 개념과 데이터분석 잘 하는 법, Jalynne Kim, sep 11, 2020 - 

 

 

1. EDA 없이 하는 데이터 분석의 문제점 

 

1) 웬만하면 잘못된 접근

 

가장 크리티컬한 부분이다.

적절한 EDA 없이 시작한 분석은 잘못된 접근인 경우가 대부분 이었다. 생각해보면 당연한 결과다. 데이터가 어떻게 생겼는지, 어느 부분부터 시작해야 할지 객관적인 근거 없이 초기의 분석가의 감이나 가설을 토대로 분석을 진행했기 때문이다. 물론 고수 분석가라면 본인의 감으로 분석으로 진행해도 타율이 높겠지만 난 아직 그렇지 못하다.

 

어쨌든 어떠한 결론을 사전에 염두해 두고 진행하는 경우가 꽤 있으며 그때마다 어떤 알 수 없는 자신감으로 데이터 분석으로 바로 뛰어들 때가 많았다. 그렇게 EDA을 생략하고 분석에 바로 접근 하다보면 원하는 결과 혹은 결론이 열이면 아홉 나오지 않았고, 당연히 분석의 방향을 잃고 더 이상 분석을 하기 싫어질 때가 많았다. 이 때부터는 장님 코끼리 다리 맞추듯이 이렇게 한 번 해보고 저렇게 한 번 해보는 분석이 이어질 때가 많다.

 

2) 미니맵 없이 게임하기

 

EDA 없이 데이터 분석을 진행하는 건 마치 미니맵 없이 게임하는 정도의 막막함과 유사하다. 대충 눈 앞의 지형이 어디인지, 이 길이 어디였는지는 알아는 보겠지만 여기가 어디즘인지 어디로 가야하는지 알 수 없이 끊임없이 앞으로만 가게 된다. 거기다 매번 마을로 돌아갈 때마다(캐릭터가 죽었을 때 = 분석을 다시 시작할 때) 어디로 가야할 지 감으로 정해서 할 수 밖에 없다.

 

EDA 없이 데이터 분석을 할 때의 답답함의 진가는 다른 방향으로 분석을 다시 시작할 때 맛 볼 수 있다. 어디서부터 다시 시작해야 할 지 아무런 방향없이 정말 완전한 리셋이다. 어찌보면 당연하다. 어느 데이터가 어떻게 생겼는지, 어느 부분이 이상한지, 어느 부분을 살펴볼 지 아무런 파악이 되지 않다보니 처음의 그 감에 의존한 접근으로 한 번더 이 방향이 맞길 바라며 손바닥에 침을 한 번 튀길 뿐이다. 더군다나 이때는 처음의 감이 틀렸기 때문에 이미 약간은 김이 빠진 데다 막막한 상태기 때문에 열성적으로 임하지 않을 때가 더 많다.


3) 분석 논리의 허점

 

분석 결과를 누군가에게 설명할 때 반드시 발목을 잡는다. 왜 이 점포를 분석 대상으로 삼았는지, 왜 이 기간인지, 왜 이 상품을 분석했는지에 대한 답변이 빠져있다. 이 부분을 설명하기 위해서는 RAW 데이터에서의 이상치, 특징, 분석 포인트를 제시해야 하는데 EDA를 거치지 않으면 불가능하다. 그저 개인의 감 혹은 가설에 의한 시작도 가능은 하겠지만 어딘가 찜찜하다. 결국 분석의 출발점인 문제의식, 해결하고자 하는 문제점에 대한 논리를 위해서라도 EDA는 필요하다.

 

2. EDA 과정

 

1) 전체적인 데이터 살펴보기

 

- 분석의 목적과 해결해야 할 문제에 집중하며 데이터가 전체적으로 어떤 모양인지 살펴보기

- 주로 head(), tail()을 통해 데이터를 전체적으로 살펴보기

- 컬럼명, 형태, 속성값 체크하기

- info() 통해 모든 기본 정보 체크

 

2) 기본적인 통계값 활용

 

- 평균, 중앙값, 최빈값 확인 -> describe()

- 각 열의 고유값 개수 확인 -> value_counts()

- corr() 활용 변수간의 상관성 확인

 

3) 이상치(Outlier) 찾기

 

- 박스 플롯 그리기

- IQR로 이상치 탐지하기

 

3. EDA 그 이후

 

https://www.mdpi.com/2220-9964/6/11/368/html

 

 

실질적으로는 EDA단계에서 얻은 이해를 바탕으로 사용하고자 하는 분석 방법에 최적화된 방향으로 데이터 전처리를 진행한다. 추가적으로 EDA단계에서 얻은 추후 분석에서 조심해야 할 부분, 주의해야할 점, 변환해야 할 변수에 대한 정보를 적어두는 것도 좋다.

 

정리해보니 꽤나 간단한 방법으로도 EDA를 할 수 있는 것 같지만, 실상은 엄청난 반복과 고민의 시간이 필요하다. 그냥 그래프를 그린다고 인사이트가 뿅하고 나오지 않고, 기본 통계량을 본다고 어떻게 접근해야 할 지 생각이 나지 않기 때문에 계속해서 고민하고 여러 방향의 가설을 세워 데이터를 뜯어보는 과정이 필요하다.

댓글