Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/altmshfkgudtjr/titanic

딥러닝을 이용한 Titanic 생존율 분석 using Kaggle DataSet
https://github.com/altmshfkgudtjr/titanic

Last synced: about 2 months ago
JSON representation

딥러닝을 이용한 Titanic 생존율 분석 using Kaggle DataSet

Awesome Lists containing this project

README

        

# 타이타닉 분석

https://www.kaggle.com/search
### 통계

- 전체인원 : 891
- 생존/죽음 : 342 /549

#### 성별

전체남성 : 577
생존/죽음 : 109 / 468
생존확률 : 0.1889081455805892

전체여성 : 314
생존/죽음 : 233 / 81
생존확률 : 0.7420382165605095

- 여성일 경우, 생존확률이 높다.

#### 나이

나이 데이터가 있음 : 714
0 ~ 10세 생존/죽음: 38 / 24 (0.61%)
10 ~ 20세 생존/죽음: 41 / 61 (0.40%)
20 ~ 30세 생존/죽음: 77 / 143 (0.35%)
30 ~ 40세 생존/죽음: 73 / 94 (0.44%)
40 ~ 50세 생존/죽음: 34 / 55 (0.38%)
50 ~ 60세 생존/죽음: 20 / 28 (0.42%)
60 ~ 90세 생존/죽음: 7 / 19 (0.27%)
생존/죽음 : 290 / 424
생존확률 : 0.4061624649859944

나이 데이터가 없음 : 177
생존/죽음 : 52 / 125
생존확률 : 0.2937853107344633

- 0~10세 영유아는 생존확률이 높다는 것을 확인
- 오히려 20~30대가 생존확률이 월등히 떨어지는 것을 확인

- 나이데이터가 없는경우 생존확률이 29%로서 가자유사한 나이데이터인 60세로 채워준다.

#### 지인 유무

같이 탄 지인 존재 : 354
생존/죽음 : 179 / 175
생존확률 : 0.5056497175141242

같이 탄 지인 존재 안함 : 537
생존/죽음 : 163 / 374
생존확률 : 0.30353817504655495

- 같이 탑승한 지인이 존재할 경우, 생존확률이 높아진 것을 확인

#### 선실번호

선실번호 데이터 있음 : 204
생존/죽음 : 136 / 68
A등급 생존/죽음 : 7 / 8
B등급 생존/죽음 : 35 / 12
C등급 생존/죽음 : 35 / 24
D등급 생존/죽음 : 25 / 8
E등급 생존/죽음 : 24 / 8
F등급 생존/죽음 : 8 / 5
G등급 생존/죽음 : 2 / 2
T등급 생존/죽음 : 0 / 1

선실번호 데이터 없음 : 687
생존/죽음 : 206 / 481

- 선실번호에 관한 생존확률은 전체적으로 고르게 분포해있다.
- 하지만 선실번호 데이터가 없는 경우에는 생존활률이 현저하게 낮다는 것을 확인

#### 좌석 클래스

전체 좌석 클래스 : 891
1등급 생존/죽음 : 136 / 80
2등급 생존/죽음 : 87 / 97
3등급 생존/죽음 : 119 / 372

- 확실하게 좌석 클래스 등급이 높을수록 생존확률이 높다는 것을 확인

#### 탑승 지점

탑승한 곳 존재 : 889
C 생존/죽음: 93 / 75
Q 생존/죽음: 30 / 47
S 생존/죽음: 217 / 427

탑승한 곳 데이터 없음 : 2
생존/죽음 : 2 / 0
생존확률 : 1.0

- 탑승한 곳이 상식적으로는 상관없는 것으로 생각된다.
- 하지만 탑승 지점에 따라서 생존확률이 다르므로 지표로 보류를 해둔다.

---

### 결론

#### 지표로 활용

- 성별
- 나이
- 결측 : 60세로 채워준다.
- 지인 유무
- 좌석 클래스

#### 지표 활용 보류

- 탑승 지점
- 결측 : 상대적으로 데이터가 적으므로 S로 치환
- 선실번호 유무
- 결측 및 치환 : 선실번호가 존재할경우 1, 아니면 0으로 치환

### 1차 테스트

- **지표** : 나이, 성별, 지인 유무, 좌석 클래스

- **학습**

/*블로그참고*/

- **정확도** : 82.83%

/*블로그참고*/

- **결과**
- 제일 관련이 있을만할 나이, 성별 ,지인 유무, 클래스 등급을 지표로 둔 결과 약 82%의 정확도가 나왔다.
- 본 모델은 결과가 0 또는 1이 나오는 모델이므로 마지막 activation function을 sigmoid function을 사용하였다.
- sigmoid function은 0 ~ 1 사이의 값밖만 다루므로, ReLU function을 사용하여서 x < 0 일 경우에는 0을 반환, x > 1 일 경우에는 1을 반환하여 값을 범위지었다.
- 그래프를 보면 40 이후부터는 정확도의 상승폭이 느껴지지가 않는다.
- 2차 테스트에서는 선실번호를 값으로 나누어 지표로 활용하여 측정한다.

### 2차 테스트

- **지표** : 나이, 성별, 지인 유무, 좌석 클래스, 선실번호

- **학습**

/*블로그참고*/

- **정확도** : 82.27%

/*블로그참고*/

- **결과**
- 선실번호를 추가해봤지만, 성능이 더 좋아지지는 않고, 거의 유지하고 있다.
- 선실등급이 생존률에 큰 영향이 없다는 것을 확인하였다.

### 제출결과

- 본 테스트에서 82.83%의 모델이였지만, Kaggle 에 직접 제출해보니 76.60% 의 정확도를 얻었다.
- HAHA...