이전 포스트

2023.01.04 - [Kaggle/타이타닉] - 타이타닉 생존자 예측 분석 (2-1) EDA(성별) v.1.0.1

 

타이타닉 생존자 예측 분석 (2-1) EDA(성별) - v.1.0.1

- 개요 우선 데이터 사이언티스트 (이하 DS)의 꿈을 가장 크게 꾸게 해준 타이타닉은 매우 흥미로웠다. 타이타닉에 탑승했던 사람들의 일련의 데이터들을 토대로 정보로 이끌어 내어 분석하여 그

drewvvv.tistory.com


 

 

3. 연령대별 - EDA 

age: Age is fractional if less than 1. If the age is estimated, is it in the form of xx.5
# 나이가 1 미만인 경우 1살 미만의 영유아의 개월 수 이다.

  • 연령대별 분포를 확인하기 이전에 위의 설명에서 연령이 1미만인 경우를 확인해본다.
  • 데이터는 몇개 없으나 영유아의 경우 Parch가 1이상인 것을 확인할 수 있다. 

 

  • 트레인 셋의 결측치를 확인해보니 Age에서 177개가 확인되었다. 
  • 결측치를 처리하는 방법은 대체/제외가 있고, 다른 버전의 EDA에서는 성능에 따른 다양한 결측치 처리 방법을 시도해 볼 것이다.

 

1
2
3
4
5
6
# rugplot
# rug는 rugplot이라고도 불리우며, 데이터 위치를 x축 위에 **작은 선분(rug)으로 나타내어
# 데이터들의 위치 및 분포**를 보여준다.
sns.set(rc = {'figure.figsize':(10,8)})
sns.distplot(train['Age'], rug=True, hist=True, kde=True# histplot 사용 권장 
plt.show()
cs
  • 우선 Age의 분포를 그래프로 확인해본다. 

  • 현재 distplot을 사용하면 histplot을 사용하라고 경고가 뜨지만 한번 distplot의 옵셥을 주어 표현해 보았다. 
  • 연령의 분포는 어느정도 정규분포를 그리고 있으며 20~30대 구간이 많은 것을 볼 수 있다.
  • 분포가 정규분포를 그리는 것으로 보아 Age 컬럼의 구간을 나눌 때 표준편차를 활용하는 것이 좋을 것이라 판단되나, 임의로 10의 크기로 구간을 분할해보도록 한다. 

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# 연령대를 임의의 10의 크기로 분할 
for index, item in enumerate(train['Age']):
    if item < 10:
        result = 0
    elif item >= 10 and item < 20:
        result = 1
    elif item >= 20 and item < 30:
        result = 2
    elif item >= 30 and item < 40:
        result = 3
    elif item >= 40 and item < 50:
        result = 4
    elif item >= 50 and item < 60:
        result = 5
    elif item >= 60 and item < 70:
        result = 6
    elif item >= 70 and item <= 80:
        result = 7
    elif item > 80 and item < 90:
        result = 8
    else:
        result = 99
    
    train.loc[index, 'ca_Age'= result
train['ca_Age']
cs

 

  • 연령대 범주별 분포

 

 

 
  • 연령대 범주별 생존율
  • 연령대별/성별로 구분한 경우 모든 연령대에서 여성의 생존이 남성보다 높음을 확인할 수 있다.
 
 
1
2
3
4
5
6
7
8
9
10
fig = plt.figure(figsize=(10,5))
 
area01 = fig.add_subplot(1,2,1)
area02 = fig.add_subplot(1,2,2)
 
sns.countplot(data = train, x = 'ca_Age', hue = "Sex", ax = area01)
sns.barplot(data = train, x = "ca_Age", y = "Survived", hue = "Sex", errwidth = 0, ax = area02)
 
plt.show()
# 전체 각 연령대에서 남성이 여성보다 많지만 생존의 경우는 ca_Age 0을 제외하고 모두 여성이 높음
cs
  • 전체 각 연령대에서 남성이 여성보다 많지만 생존의 경우는 ca_Age == 0은 나름 비등하지만 나머지 모두에선 여성이 높음을 확인할 수 있다.

 

 

1
2
3
4
5
6
7
8
from statsmodels.graphics.mosaicplot import mosaic
 
 
mosaic(train.sort_values('Pclass'), ['Survived''ca_Age''Sex'], gap=0.002)
plt.title('Survivor of Titanic', fontsize=20)
 
plt.show()
# 대부분의 연령대별 사망자는 남자가 지배적
cs

  • 대부분의 연령대별 사망자는 남자가 지배적인 것을 확인할 수 있다.

 

 

 

 

 

다음 포스트

 

2023.01.09 - [분류 전체보기] - 타이타닉 생존자 예측 분석 (2-3) EDA(상관관계 및 기타) - v.1.0.1

 

타이타닉 생존자 예측 분석 (2-3) EDA(상관관계 및 기타) - v.1.0.1

이전 포스트 타이타닉 생존자 예측 분석 (2-2) EDA(연령대별) - v.1.0.1 이전 포스트 타이타닉 생존자 예측 분석 (2-1) EDA(성별) - v.1.0.1 - 개요 우선 데이터 사이언티스트 (이하 DS)의 꿈을 가장 크게 꾸

drewvvv.tistory.com

 

 
 
 

+ Recent posts