[인공지능 데브코스] 3주차 day4 - EDA
12월 17일 목
오늘은 데이터를 분석하는 방법중 하나인 EDA에 대해서 공부했다. EDA의 과정에 대해서 배우고 주피터 노트북의 환경에서 numpy, pandas, matlibplot 을 이용하여 다양한 방식으로 데이터를 분석해 보았다.
EDA란?
데이터 자체의 특성을 육안으로 확인하는 과정
데이터를 분석하는 기술적 접근은 매우 많다.
데이터 그 자체만으로부터 인사이트를 얻어내는 접근법
EDA의 process
- 분석의 목적과 변수 확인
- 데이터 전체적으로 살펴보기
- 데이터의 개별 속성 파악하기
- 데이터 분석
- 가설설정
- 증거 찾기
EDA with Example - Titanic
분석의 목적과 변수 확인
살아남은 사람들은 어떤 특징을 가지고 있었을까?
titanic_df.dtypes : 타입 확인
데이터 전체적으로 살펴보기
titanic_df.describe()
수치형 데이터에 대한 요약 제공
titanic_df.corr()
상관계수 확인
Correlation is Not Causation
상관성: 경향성만 나타냄
인과성: a가 일어나면 b가 일어난다
상관성이 있다고 반드시 인과성이 있다고는 할 수 없다.
titanic_df.isnull().sum()
null인 항목을 찾아줌 (결측치를 찾아줌)
결측치를 처리할 방법이 많기 때문에 어떻게 결정할지 선택해야함
데이터의 개별 속성 파악하기
survived column
titanic_df[‘Survived’].sum()
titnaic_df[’Survived’].value_counts()
sns.countplot(x = ‘Survived’, data = titanic_df)
Pclass
titanic_df[[‘Pclass’, ‘Survived’]].goupby(‘Pclass’)
titanic_df[[‘Pclass’, ‘Survived’]].goupby(‘Pclass’).mean() : 생존률
Sex
titanic_df.groupby([‘Survived’, ‘Sex’])[’Survived’].count()
sns.catplot(x = ‘Sex’, col = ‘Suvived’, kind = ‘count’, data = titanic_df)
Age
remind : 결측치 존재
fig, ax = plt.subplots(1,1, figsize = (10,5))
sns.kdeplot(titanic_df[titanic_df.Survived == 1][‘Age’], ax = ax)
sns.kdeplot(titanic_df[titanic_df.Survived == 0][‘Age’], ax = ax)
plt.legend([‘Survived’, ‘Dead’])
plt.show()
Sex + Pclass vs Survived
sns.catplot(x = ‘Pclass’, y = ’Survived’, hue = ’Sex’,kind = ‘point’, data = titanic_df)
hue로 추가 변수에 대해 파악
Age + Pclass
titanic_df[‘Age’][titanic_df.Pclass == 1].plot(kind=‘kde’)