
필자는 코딩을 할때(주로 알고리즘 문제를 풀때) 코드를 먼저 작성하지는 않는다. 우선 논리(작동 순서)를 먼저 국어로 풀어서 써보고, 이후에 이걸 코드로 옮겨서 그 순서대로 작동하는지 확인하는 편이다.
EDA 첫 실습 간 난이도가 높은 데이터셋을 골라서 제대로 된 실습을 하기가 어려웠다. 또한 EDA 를 어떤 순서로 진행해야될지 몰라 헤매면서 다른 사람들이 진행한 EDA 분석 결과를 서칭하였다.
본격적인 실습 전에 EDA 를 어떻게 수행하는지 “어떤 사고 흐름으로 데이터를 탐색할 것인가”에 대해 단계별로 정리하였다.
EDA는 코딩 실력보다 데이터를 어떻게 분석하는지 사고 흐름과 어떻게 인사이트를 도찰하는지가 중요한 영역으로 보인다.(따라서 기본적인 분석 후 토론을 통해 의견을 공유하면 실력을 빨리 향상시킬 수 있는 부분인 것 같다.)
데이터를 탐색하기 전, 먼저 분석 목적을 명확히 한다.
Kaggle 대회라면: 예측해야 하는 Target 변수가 무엇인지 확인 (예: Titanic → Survived)
개인 학습이라면: 데이터셋의 특성을 이해하고 시각화/모델링까지 확장하는 것
*핵심 질문: "무엇을 알고 싶은가?”, “어떤 문제를 해결해야 하는가?”
import pandas as pd
df = pd.read_csv("dataset.csv")
df.head()
df.info()
df.describe()
*데이터 구조와 전처리 필요성을 빠르게 파악
숫자형 변수
범주형 변수
.nunique()), 빈도수(.value_counts())*데이터의 불균형 여부, 이상치(outlier) 감지
*불균형한 데이터라면 이후 모델링 단계에서 보정 필요
df.corr() + heatmap)*어떤 feature가 Target에 영향을 주는지 확인
pairplot, scatterplot, heatmap 활용*(예) height와 weight가 거의 같은 정보를 제공한다면 둘 다 쓰는 것은 비효율적일 수 있음.
*전처리 방향을 결정하는 핵심 단계
*보통 Jupyter Notebook에 마크다운 메모로 함께 정리
*feature engineering이 성능에 큰 차이를 만드는 경우가 있다고 함.
단계별 흐름을 기본적으로 이해하되, 실제로 실습을 해보면서 실력을 쌓아야 할 분야로 느껴짐.
본인이 흥미있는 데이터를 위주로 분석하면 좋겠지만,
초반에는 트레이닝의 관점에서 난이도를 조절하는 것이 중요해보임.
타이타닉 데이터, 펭귄 데이터 등 쉬운 데이터부터 시작하여 감을 익힌뒤 본인의 흥미에 맞는 데이터셋을 찾는 것이 좋다고 생각함. (난이도별 GPT 에게 데이터셋을 추천받을 수 있음.)