728x90
1. EDA란?
▶ 탐색적 데이터 분석 (Exploratory Data Analysis, EDA)
- 데이터의 기술통계 내용 확인, 시각화 등을 통해 데이터를 이해하고 탐구하는 과정
- 데이터에 대한 정보를 얻고, 적절한 모델링에 대한 정보도 얻을 수 있음
2. 예시 데이터 가져오기
▶ 라이브러리 가져오기
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
▶ seaborn 라이브러리_tips 데이터 불러오기
tips_df = sns.load_dataset('tips')
tips_df.head(3)
- total_bill : 총 계산서 금액
- tip : 받은 팁 금액
- sex : 성별
- smoker : 흡연 여부
- day : 식사하러 온 요일
- time : 식사하러 온 시간대
- size : 동행 인원
3. 기술통계를 통한 EDA 예시
▶ .info 함수로 데이터 정보 살펴보기
- 데이터의 info 내용을 살펴보면 null 값 여부 및 몇 개의 null 값이 있는지 확인 가능
- 수치형 데이터와 범주형 데이터 확인 및 구분 가능
tips_df.info()
- 전체 244개의 null이 없는 데이터
- 수치형 데이터 : total_bill, tip, size
- 범주형 데이터 : sex, smoker, day, time
▶ .describe 함수 사용
- .describe() 만 하면 수치형 데이터에 대한 기술통계만 보여줌
- .describe()의 괄호 안에 include = 'all' 옵션을 주면 범주형 데이터에 대한 기술통계도 볼 수 있음
tips_df.describe(include='all')
- 수치형 데이터_이상치 확인 가능
- min값, max값 확인
- 이상치에 따라 mean값이 얼마나 끌려 올라갔는지, 내려갔는지 추측해보기
- std와 25%, 50%, 75% 값으로 분포 추측해보기
- 범주형 데이터
- unique값 만큼의 항목이 존재함을 알 수 있음
- top을 통해 가장 빈도 수가 많은 항목의 이름 확인 가능
- freq값을 통해 가장 빈도 수가 많은 해당 항목이 몇 개인지 확인 가능
4. 시각화를 이용한 EDA 예시
4-1) countplot
▶ 범주형 자료_빈도 수
- 방법: 범주형 데이터의 각 카테고리별 빈도 수를 나타낼 때
- x축 : 범주형 자료
- y축 : 자료의 빈도 수
sns.countplot(data=tips_df, x='day', palette='Set3')
4-2) barplot
▶ 범주형 자료_평균 비교
- 방법 : 범주형 데이터의 각 카테고리에 따른 수치형 데이터의 평균을 비교
- x축 : 범주형 자료
- y축 : 수치형 자료
sns.barplot(data=tips_df, x='sex', y='tip', palette='Set3')
4-3) boxplot
▶ 수치형 & 범주형 자료_기술통계 정보 확인
- 방법: 데이터의 분포, 중앙값, 사분위 수, 이상치 등을 한 눈에 표현하고 싶을 때 사용
- x축 : 수치형 & 범주형 자료
- y축 : 수치형 자료
sns.boxplot(data=tips_df, x='time', y='total_bill', palette='Set2')
4-4) histplot
▶ 수치형 자료_ 빈도 수
- 방법: 연속형 분포를 나타내고 싶을 때, 데이터가 몰려있는 구간을 파악하기 쉬움
- x축 : 수치형 자료
- y축 : 자료의 빈도 수
① seaborn 활용
sns.histplot(data=tips_df, x='total_bill')
② matplotlib 활용
plt.hist(tips_df['total_bill'])
# 다음의 코드도 동일한 그래프
# tips_df['total_bill'].hist()
# tips_df['total_bill'].plot.hist()
plt.show()
4-5) scatterplot
▶ 수치형 자료_상관관계
- 두 연속형 변수 간의 관계를 시각적으로 파악하고 싶을 때 사용
- x축 : 수치형 자료
- y축 : 수치형 자료
sns.scatterplot(data=tips_df, x='total_bill', y='tip')
4-6) pairplot
▶ 전체 변수에 대한 시각화
- 방법 : 한 번에 여러 개의 변수를 동시에 시각화하고 싶을 때 사용
- x축 : 범주형 또는 수치형 자료
- y축 : 범주형 또는 수치형 자료
- 대각선 : 히스토그램 (분포)
sns.pairplot(data=tips_df)
728x90
댓글