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

⚠️ 이 문서는 데이터 분석가가 엑셀이나 DB에서 갓 뽑아낸 수십만 줄의 낯설고 지저분한 데이터를 마주했을 때, 성급하게 AI 모델(머신러닝)부터 돌리려는 유혹을 꾹 참고, **마치 낯선 행성에 불시착한 탐험가처럼 데이터를 이리저리 뒤집어보고, 시각화(그래프)해 보고, 기초 통계(평균, 분산, 이상치)를 내어 보며 데이터 안에 숨겨진 진짜 성격과 오염도를 파악하고 "어떤 가설을 세워볼까?" 영감을 얻어내는 과정인 'EDA(탐색적 데이터 분석)'**를 다룹니다.

핵심 인사이트 (3줄 요약)

  1. 본질: "데이터와 소개팅하는 시간"이다. 복잡한 수학 공식(딥러닝)이 아니라, 히스토그램과 산점도(Scatter plot) 같은 시각화 도구를 무기로 삼아 데이터의 민낯(분포, 결측치, 튀는 값)을 맨눈으로 스캔하는 직관적인 분석 기법이다.
  2. 가치: 쓰레기(오염된 데이터)가 딥러닝 모델에 들어가는 것을 사전에 막아준다. EDA 단계에서 '나이 200살', '마이너스(-) 월급' 같은 비정상 데이터를 색출해 내지 않으면, 이후 수백 시간을 돌려 만든 AI 모델이 내뱉은 예측값이 모조리 휴지 조각이 된다.
  3. 기술 체계: 데이터의 생김새를 확인하는 단변량 분석(변수 1개 분포)부터 시작해, x축과 y축을 놓고 두 변수 간의 상관관계를 보는 이변량 분석(상관 계수, 산점도), 그리고 이 모든 것을 꿰뚫어 보는 박스 플롯(Box Plot)과 파이썬 Pandas/Seaborn 라이브러리가 필수 무기로 쓰인다.

Ⅰ. EDA의 철학: 가설의 늪에 빠지지 마라

보고 싶은 것만 보면, 데이터가 진실을 감춘다.

  1. 확증 편향(Confirmation Bias)의 경계:
    • 초보 분석가는 데이터를 받자마자 "분명히 강남구 사람들이 우리 앱을 많이 쓸 거야!"라는 가설을 미리 세우고 데이터에 접근한다. 그러면 무의식적으로 자기 가설에 맞는 데이터만 편식해서(체리 피킹) 뽑아내어 엉터리 보고서를 쓰게 된다.
  2. 존 튜키 (John Tukey)의 EDA 창시:
    • 1970년대, 통계학자 존 튜키는 **"선 가설, 후 검정"**이라는 낡은 통계학의 관행을 박살 냈다.
    • "가설부터 세우지 마라! 데이터를 있는 그대로, 백지상태에서 탐색(Explore)해라. 데이터가 스스로 당신에게 말을 걸 때까지 다양한 각도로 쳐다보고 그림을 그려봐라!" 이것이 EDA의 위대한 출발이다.
  3. 분석의 첫 단추 (가설 생성기):
    • EDA는 증명(Test)이 아니라 **발견(Discovery)**의 단계다. 데이터를 요리조리 막대그래프로 그려보다가 "어? 왜 30대 남성들의 주말 결제액만 비정상적으로 치솟아 있지?"라는 이상한 징후를 우연히 발견해 내는 것이 EDA의 궁극적인 목적이다.

📢 섹션 요약 비유: 사건 현장(데이터)에 출동한 형사가, 현장에 도착하기도 전에 "범인은 분명히 치정에 얽힌 원한 살인일 거야(선 가설)"라고 단정 지으면, 진짜 범인이 남긴 다른 발자국(진실)을 무시하게 됩니다. 존 튜키의 EDA는 "형사야, 선입견을 버려라. 일단 현장 전체를 돋보기로 샅샅이 기어 다니며 이리저리(시각화) 살펴보고, 튀는 단서가 나타나면 그때 가서 가설을 세워라"라고 가르치는 수사학의 기본 철칙입니다.


Ⅱ. 무기는 시각화: 수백만 줄의 숫자를 한눈에 보는 법

인간의 뇌는 엑셀의 숫자를 인식하지 못한다. 오직 그림만 인식한다.

  1. 요약 통계량 (Descriptive Statistics)의 함정:
    • 평균, 중간값, 표준편차 같은 숫자만 믿으면 안 된다. 유명한 통계학 농담인 '앤스콤의 콰르텟(Anscombe's quartet)'을 보면, 평균과 분산 값이 완전히 똑같은 4개의 데이터 세트가 있는데, 막상 그래프로 그려보면 하나는 일직선, 하나는 U자 곡선, 하나는 엉터리로 생겼다. 그래프를 그리지 않으면 속는다.
  2. 핵심 시각화 도구 삼총사:
    • 히스토그램 (Histogram): 데이터의 쏠림(분포)을 본다. 우리 고객의 나이대가 정규분포(종 모양)인지, 20대에만 미친 듯이 쏠려있는 비대칭 꼬리(Skewed)를 가졌는지 한 방에 알 수 있다.
    • 산점도 (Scatter Plot): 온도(x축)와 아이스크림 판매량(y축)을 점으로 흩뿌려본다. 점들이 오른쪽 위를 향해 모여 있으면(양의 상관관계) 두 변수가 찰떡궁합임을 눈으로 확신하게 된다.
    • 상관관계 히트맵 (Heatmap): 변수가 100개일 때, 어떤 변수끼리 서로 영향을 많이 주는지 빨갛고 파란 색상으로 보여주어, 머신러닝에 넣을 핵심 피처(Feature)를 골라내는 치트키가 된다.

📢 섹션 요약 비유: 대한민국 국민 5천만 명의 재산(데이터)을 엑셀 숫자로 스크롤 내리며 읽어봤자 뇌는 아무것도 느끼지 못합니다. "국민 평균 재산이 3억이네(요약 통계)"라고 넘기려 할 때, 이 데이터를 히스토그램(시각화)으로 짠! 하고 그려보면, 상위 1%에 거대한 막대기가 치솟아 있고 나머지는 0원에 몰려있는 빈부격차의 끔찍한 진실(분포)이 1초 만에 뇌리에 박히는 직관의 마법입니다.


Ⅲ. EDA의 암살자 사냥: 결측치(Missing)와 이상치(Outlier) 처리

데이터 호수 안에 섞인 독극물과 돌연변이를 색출해 낸다.

  1. 결측치 (Missing Value)와의 전쟁:
    • 데이터 셀에 빈칸(NaN, Null)이 뚫려있으면 머신러닝 봇이 돌다가 픽하고 기절해 버린다.
    • EDA를 통해 빈칸이 얼마나 많은지 파악한 뒤, 빈칸이 너무 많은 열(Column)은 아예 삭제해 버리고(Drop), 중요한 열인데 조금 비어있으면 전체 평균값이나 머신러닝 예측값으로 그 빈칸을 그럴싸하게 채워 넣는(Imputation) 외과 수술을 결단해야 한다.
  2. 이상치 (Outlier) 사냥 - 박스 플롯(Box Plot):
    • 월급 데이터에 실수로 '100억'이라고 오타를 친 한 명(이상치) 때문에 전체 평균이 1,000만 원으로 치솟아 데이터 전체가 오염된다.
    • **박스 플롯(상자 수염 그림)**을 그리면, 데이터의 정상 범위(상위 25%~75% 박스) 바깥쪽 저 멀리에 동떨어져 찍힌 점(이상치)들이 기가 막히게 눈에 띈다.
    • 분석가는 EDA를 통해 찾아낸 이 돌연변이들을 삭제할지, 한계치(Max 값)로 눌러버릴지, 아니면 이 이상치 자체가 '블랙컨슈머의 사기 행위'라는 중요한 의미를 가진 단서인지 결단해야 한다.

📢 섹션 요약 비유: 좋은 식재료(데이터)로 요리를 하려는데, 감자 박스 안에 빈 공간(결측치)이 숭숭 뚫려있고, 중간중간 썩어서 곰팡이가 핀 감자(이상치)가 섞여 있습니다. 요리사(분석가)는 무작정 불을 켜기(AI 학습) 전에, 박스를 바닥에 쏟아놓고(박스 플롯 시각화) 썩은 감자를 핀셋으로 골라내어 버리거나, 도려내고 써야 요리(모델) 전체가 식중독에 걸려 망하는 것을 막을 수 있습니다.