세조목

머신러닝 심화 복습(데이터 구조, EDA 시각화, 기술 통계, 이상치)(24.05.06) 본문

데이터 분석 공부/머신러닝

머신러닝 심화 복습(데이터 구조, EDA 시각화, 기술 통계, 이상치)(24.05.06)

세조목 2024. 5. 6. 14:25

DATA ARCHITECTURES

※ ETL(Extract Transform Load / 추출, 변환, 로드)

 

EDA 시각화

1. countplot

범주형 데이터의 빈도 수 시각화

sns.countplot(x='day', data=tips)

x축 : 범주형 데이터

 

범주형 데이터 → day

 

2. barplot

sns.barplot(x='sex', y='tip', data=tips)

x축 : 범주형 데이터

y축 : 수치형 데이터

 

범주형 데이터 → sex

수치형 데이터 → tip

※ 수치형 데이터의 평균을 비교함

 

3. boxplot

sns.boxplot(x='time', y='total_bill', data=tips)

x축 : 범주형, 수치형 데이터

y축 : 수치형 데이터

 

범주형 데이터 → time

수치형 데이터 → total_bill

 

4. histogram

수치형 데이터의 빈도 수 시각화

sns.histplot(data=tips, x='total_bill')

x축 : 수치형

 

수치형 데이터 → total_bill

 

5. scatter plot

sns.scatterplot(x='total_bill', y='tip', data=tips)

x축 : 수치형 데이터

y축 : 수치형  데이터

 

6. pair plot

sns.pairplot(data=tips)

전체 숫자형 데이터(범주, 수치 모두 포함)에 대한 시각화(범주형 데이터는 없음)

 

기술 통계

top : 최빈값

 

전처리

1. 이상치

■ ESD 활용

ESD(Extreme Studentized Deviation)

 - ESD : 데이터가 정규분포를 따른다고 했을 때 평균에서 표준편차의 3배 이상 떨어진 값

mean = np.mean(tips_df['total_bill'])
std = np.std(tips_df['total_bill'])

upper_limit = mean + 3*std
lower_limit = mean - 3*std

 

  IQR 활용

IQR(Inter Quantile Range)

 - IQR : 3분위수에서 1분위수를 뺀 값

 - 1분위, 3분위수에서 각각 1.5IQR만큼 작고 큰 지점이 이상치 기준이 됨

mean = np.mean(tips_df['total_bill'])
std = np.std(tips_df['total_bill'])
q1 = tips_df['total_bill'].quantile(0.25)
q3 = tips_df['total_bill'].quantile(0.75)

iqr = q3-q1

upper_limit = q3 + 1.5iqr
lower_limit = q1 - 1.5iqr