캐글 타이타닉 5. EDA - Age, Sex, Pclass(violinplot)
f, ax = plt.subplots(1, 2, figsize=(18,8))
#사이즈가 18, 8인 도화지(f)를 만들고 ax를 1x2로 나눔(subplots)
sns.violinplot('Pclass', 'Age', hue='Survived', data=df_train, scale='count', split=True, ax=ax[0])
ax[0].set_title('Pcalss and Age vs Survived')
ax[0].set_yticks(range(0, 100, 10))
#df_train 데이터의 Pclass를 x축, Age를 y축에 두고 Survived에 따라 구분해 ax[0]에 바이올린 플랏
#y축의 범위는 0부터 100까지 10의 단위를 둠
sns.violinplot('Sex', 'Age', hue='Survived', data=df_train, scale='count', split=True, ax=ax[1])
ax[1].set_title('Sex and Age vs Survived')
ax[1].set_yticks(range(0, 100, 10))
#df_train 데이터의 Sex를 x축, Age를 y축에 두고 Survived에 따라 구분해 ax[1]에 바이올린 플랏
plt.show() #전체 그림(도화지)을 보여줌
- 저기서 scale을 area로 하면 바이올린 면적이 넓어지는 것처럼 보임(이는 정확한 데이터를 보여주기 힘듦)
- split을 False로 두면 왼쪽처럼 hue 값에 따라 분리된 바이올린 플랏이 그려짐
- 여성과 Pclass가 1이거나 2인 사람들의 생존 정도가 그렇지 않은 사람들보다 높음을 한눈에 볼 수 있음
캐글 타이타닉 6. EDA - Embarked
f, ax = plt.subplots(1, 1, figsize=(7, 7)) #도화지 만들기
df_train[['Embarked', 'Survived']].groupby(['Embarked'], as_index=True).mean().sort_values(by='Survived', ascending=False).plot.bar(ax=ax)
#df_train의 Embarked와 Survived 칼럼만 가져와 Embarked에 따라 나눈 평균을 구함. survived 값에 따라 정렬하고 도화지에 바플랏을 그림
- Embarked==C의 생존률이 가장 높음을 알 수 있음
- 위의 barplot을 그리는 코드에서 뒤의 .plot.bar를 제외한 결과는 다음과 같으며, 정확한 수치를 알려줌.
f, ax = plt.subplots(2, 2, figsize=(20, 15)) #2차원(2x2) 도화지 만들기
sns.countplot('Embarked', data=df_train, ax=ax[0, 0])
ax[0, 0].set_title('1. Num of passengers Boarded')
#도화지의 (0, 0)위치에 Embarked의 countplot을 그림
sns.countplot('Embarked', hue='Sex', data=df_train, ax=ax[0, 1])
ax[0, 1].set_title('2. Male-Female split for embarked')
#도화지의 (0, 1)위치에 Sex에 따른 Embarked의 countplot을 그림
sns.countplot('Embarked', hue='Survived', data=df_train, ax=ax[1, 0])
ax[1, 0].set_title('3. Embarked vs Survived')
#도화지의 (1, 0)위치에 Survived에 따른 Embarked의 countplot을 그림
sns.countplot('Embarked', hue='Pclass', data=df_train, ax=ax[1, 1])
ax[1, 1].set_title('4. Embarked vs Pclass')
#도화지의 (1, 1)위치에 Pclass에 따른 Embarked의 countplot을 그림
plt.subplots_adjust(wspace=0.2, hspace=0.5) #subplot 간 상하좌우 간격
plt.show() #도화지 보여주기
- subplots간 간격을 맞춰주지 않으면 글자가 겹쳐 안예쁘니까 subplots_adjust 사용
- 이렇게 2차원으로 그래프를 그리면 Embarked와 다른 칼럼(변수)들 간의 관계를 파악하기 좋음
- Embarked==S의 수가 제일 많으나 그만큼 생존율은 C나 Q에 비해 낮음. 대부분이 남성, Pclass==3임.
- Embarked==C는 생존자의 비율이 더 크나 이는 여성의 비율과 Pclass==1의 비율 또한 높아서인 것 같음.
- Embarked==Q는 여성의 비율이 많으나 Pclass==3의 비율 또한 높아 생존율이 높지 않음
'STUDY' 카테고리의 다른 글
파이썬 스터디 4주차(백준) (0) | 2022.01.30 |
---|---|
파이썬 스터디 3주차(머신러닝) (2) | 2022.01.29 |
파이썬 스터디 3주차(백준) (0) | 2022.01.25 |
파이썬 스터디 2주차(머신러닝) (0) | 2022.01.24 |
파이썬 스터디 2주차(캐글) (0) | 2022.01.13 |