Titanic data 카테고리
Passenger : 승객 ID
Survived : 생존하였는지 (0 = No, 1 = Yes)
Pclass : Ticket Class (1 = 1st, 2 = 2nd, 3 = 3rd)
Name : 사람 이름
Sex : 성별
Age : 나이
SibSp : 타이타닉 호에 탑승한 형제와 배우자 수
Parch : 타이타닉 호에 탑승한 자녀와 부모의 수
Ticket : 티켓 번호
Fare : 여객 운임
Cabin : 객실 번호
Embarked : 승선항 (C = Cherbourg, Q = Queenstown, S = Southapmton)
Data 전처리
1. 누락된 데이터 처리 (결측 데이터)
2. 데이터 평활
위의 데이터에서 티켓번호와 사람이름, 객실번호는 데이터 전처리가 어려울 뿐만 아니라 사람이름과 티켓번호, 객실번호로 인해 생존이 결정된다고 보기 어렵기 때문에 3개의 데이터는 제거하도록 하겠습니다.
누락된 데이터 처리 (결측 데이터)
보통 아래 3가지 방법을 통해 누락된 데이터를 처리한다.
1. 대치법
2. 보간법
3. 제거
우선 이번 실험에서는 누락된 데이터는 0으로 대치하도록 하겠습니다. 0으로 변환하여 최대한 누락된 데이터가 실험에 영향을 주지 않도록 하기 위하여 입니다.
각 성분 간의 상관관계 분석 진행
위의 그림들은 각 성분간 상관관계를 분석하여 어느 성분이 가장 Survived에 영향을 주는 지 확인하였다.
Pclass와 Sex, Fare, Parch, Embarked 순으로 가장 큰 영향을 주는 것을 볼 수 있다.
PassengerId는 거의 영향을 주지 않는 것을 알 수 있다.
단순히 Passenger를 고유하게 표현하기 위한 데이터이기 때문에 생존에는 상관 없는 데이터라고 볼 수 있다. 그래서 PassengerId를 제거해준다.
나이의 경우, 0.010539로 상관관계가 낮게 나오는 것을 알 수 있다. 이는 나이의 수 범위가 넓어서 상관관계를 분석하기 어렵기 때문에 문제가 발생하는 것을 알 수 있다. 그렇기 때문에 수의 범위를 조절하도록 하겠습니다.
변환 범위 | 변환값 |
0 | 0 |
1~20 | 1 |
21~40 | 2 |
41~60 | 3 |
61~ | 4 |
그리고 Fare의 경우 값이 약 0~512로 분포가 넓기 때문에, 최대-최소 정규분포를 이용하여 0~1의 값으로 정규화를 진행하였습니다.
학습 진행
2. DNN (간단한 DNN)
다음 포스팅에서는 위의 3가지 방법으로 학습 후 테스트를 진행해보도록 하겠다.
'toy project' 카테고리의 다른 글
Titanic - Predict survival on the Titanic and get familiar with ML basics (kaggle) 2부 (학습 진행) (0) | 2022.05.25 |
---|---|
Kaggle UW-Madison GI Tract image Segmentation 참가 -1 일차- (0) | 2022.04.19 |