[데이터 사이언스] EDA의 개념과 데이터분석 잘 하는 법
오늘 블로깅 주제는 ‘데이터분석 기본 — EDA(Exploratory Data Analysis, 탐색적 데이터 분석)개념과 잘하는 법’ 이다.
‘맛있는 요리’를 만들기 위해서 가장 먼저 해야 할 일은 ‘맛있는 식재료’를 준비하는 것이라고 생각한다. 식재료가 맛있으면, 조리방법이 간단해도 맛있는 요리가 나오듯,
데이터 분석에 있어서 ‘맛있는 식재료’라고 할 수 있는 EDA를 잘 한다면 의미있는 결과값을 도출하기 조금 더 수월해진다고 생각한다.
💡What is EDA?
EDA(Exploratory Data Analysis, 탐색적 데이터 분석)는 벨연구소의 수학자 ‘존 튜키’가 개발한 데이터분석 과정에 대한 개념으로, 데이터를 분석하고 결과를 내는 과정에 있어서 지속적으로 해당 데이터에 대한 ‘탐색과 이해’를 기본으로 가져야 한다는 것을 의미한다.
처음 데이터 분석을 공부를 시작할 때, 도대체 이 개념이 왜 그렇게 중요한지 몰랐다.
‘아니 파이썬 코드 한 줄 작성하는 것 손에 익히기도 벅차 죽겠는데..그냥 빨리 그래프나그려내면 되지..’
그런데 데이터로 실제 아웃풋을 만들어내기 시작하면서 깨닫기 시작했다.
기본적으로 데이터 자체에 대한 해석이 잘못되면, 열심히 한줄한줄 코드를 짜며 고생해서 만든 그 데이터 프레임과 시각화한 그래프들이 그냥 휴지조각이 되고 만다는 것을…(대부분의 시행착오, 처음부터 다시 데이터프레임을 만들고, 분석해야 했던 근본적 원인은 ‘내가 데이터를 잘못 이해했기 때문’이었다.)
실무에서 어떤 프로젝트를 경험해본 사람들은 많이 체감할 이야기인데,
기획단계에서부터 이해가 잘 되고, 관계자들의 소통이 잘 된 프로젝트들은 일의 제작 및 수행과정이 그렇지 못한 프로젝트보다 훨씬 수월한 편이다. 또한, 일을 진행하면서도 지속적으로 기획단계의 의도(프로젝트의 why)를 피드백하고 소통하는 팀은 프로젝트 결과의 질을 높게 향상시킬 수 있다고 생각한다.
데이터 분석에 있어서 EDA도 마찬가지라고 생각한다.
처음에 로우데이터(raw data)를 접할 때부터 데이터를 잘 이해하고 파악한 다음, 어떤 결과를 만들어낼 지 ‘이 feature(column)로 필터해보고, 저 feature로 해보고..’ 이렇게 데이터를 여러 측면으로 쪼개고, 출력해보면서 인사이트를 얻어내는 것. 그것이 EDA적 데이터분석이라고 생각한다. 데이터 분석을 통한 결과값(표/그래프 등)을 출력하기 전에 어떤 결과값을 낼 지 ‘가설’을 갖고 기본적인 표나 그래프를 간단히 그려보며 ‘사전 검증’을 하는 과정을 의미한다. 그렇게 할 때 단순히 보기 좋은 그래프(보기에만 좋고 유의미하지는 않은)를 만드는 것이 아닌 유의미한 정보를 생산할 수 있다고 생각한다.
💡How to do EDA ?
EDA를 잘 하려면, 크게 아래 3가지 정도의 기술이 필요하다고 생각한다.
1. raw data 의 description, dictionary 를 통해 데이터의 각 column들과 row의 의미를 이해하는 기술.
예를 들어, 데이터분석 연습 시에 많이 사용되는 캐글과 UCI 사이트에서는 데이터의 각 칼럼과 로우(row)에 대한 설명(data information, description, dictionary 등의 용어를 사용)이 잘 나와있다. (모두 영어이긴 하지만, 안 보는 것보다 나으니.. )
2. 결측치 처리 및 데이터필터링 기술.
데이터 분석을 본격적으로 들어가기 전, 반드시 데이터에 결측치가 없는지 확인하고, 있다면 제거해줘야 한다. 또한, 분석 시 필요한 데이터가 수치형 데이터(numerical data)인데 범주형(categorical data)으로 되어 있다면 (데이터 타입이 ‘object’로 뜸) 수치형으로 변환(ex. astype 활용)해줘야 한다.
데이터에 결측치 (NaN, N/A 등) 가 있거나, 수치형이어야 하는데 범주형/비수치형(non-numerical data) 으로 들어가 있는 데이터로 열심히 데이터프레임 함수를 넣고, 그래프를 그려봤자 원하는 결과를 얻을 수 없기 때문이다.
3. 누구나 이해하기 쉬운 시각화를 하는 기술.
그래프를 그릴 때 멋진 컬러, 디자인 요소를 넣는다 하더라도 그래프의 의미가 쉽게 이해되지 않으면 안된다.
예를 들어 위 그래프는 ‘이 그래프를 통해서 어떤 의미를 얻어야 하는지’ 쉽게 와닿지 않는다.
데이터 분석을 통해 말하고자 하는 바를 제대로 전달할 수 있는 기술이 데이터분석가로서 가장 잘 갖춰야 하는 기술이라고 생각한다.
차라리 아래 그래프처럼 평범해보이지만, 확실한 그래프가 훨씬 더 좋은 시각화일 것이다.
💡Why is EDA not easy? How do get it done well?
❗️누구에게나 ‘인지편향 (cognitive bias)’ 이 있기 때문.
우리는 생각보다 ‘잘 듣고, 잘 읽는 것’ 을 ‘잘하지 못한다’.
⚠️ So what?
‘데이터를 잘 읽고, (이해관계자의 말을) 잘 듣는 (이해하는) 능력’ 이 중요하다.
= ‘정신 차리고 제대로 보기’
우리는 무의식적으로 다른 사람들의 이야기를 비롯한 외부의 정보를 접할 때, 스스로의 경험으로 ‘판단’을 먼저 내리는 경향이 있다.
이는 어떤 ‘잘못된 것’이라기 보다는, 우리 뇌가 모든 정보를 처리하기에는 벅차기 때문에, 기존에 경험했던 것으로 먼저 판단을 내리게 하여 에너지를 효율적으로 관리하기 때문에 생기는 ‘편향(bias)’이다.
다만, 세상이 빠르게 변화하고 그 변화하는 정보들에 대해서 유연하게 대처하는 능력이 중요해지는 시대에는 이러한 ‘인지적 편향’을 조금 내려놓고, 다른 사람들의 이야기와 정보(데이터)에 대해 있는 그대로 이해할 수 있는 능력이 필요하다고 생각한다.
솔직히 데이터 분석 공부를 시작하면서 머릿속에 기계어와 영어, 수많은 정보들이 가득차 매우 혼란스러울 때가 많다. 그런 가운데 ‘정신을 차리고 제대로 보기’란 마치 요가 자세를 할 때 몸의 균형을 잡기 위해 ‘코어 근육’에 집중하는 듯한 그런 느낌을 받는다. 매순간 ‘깨어있기(woke up!)’를 요구하는 느낌이랄까.. ㅎㅎ 자기관리 또한 중요하다고 생각되면서, 오늘은 데이터분석의 기초 ‘EDA의 개념과 방법론’에 대한 나름의 생각을 적어봤다.
그럼 오늘도 모두 건승..!