조별 프로젝트를 진행하는데, 공통 목표를 정해야 할 때가 있다. 처음 만나는 조원들과 만났을 경우에는 서로 어느정도의 실력을 가졌는지, 어느정도 열정이 있는지 알 수 없기에, 멘토링을 통해 유명한 데이터 분석 예제인 타이타닉 예제를 제출하는 것으로 실력과 열정을 가늠하기로 하였다.
데이터 준비
https://www.kaggle.com/c/titanic/data?select=train.csv
케글에서 Start here! 라고 소개될 정도로 머신러닝 초보자에게 추천되는 예제이다보니, 수많은 사람들이 만든 코드들을 볼 수 있다.
우측 하단에 있는 Download All을 눌러 3개의 파일을 받자.
데이터 맛보기
test에는 약 300명의 신상정보가 기재되어 있고, gender_submission에는 test에 해당하는 사람들의 생존 여부가 기재되어 있다. train에는 약 900명사람들의 생존 여부를 포함한 신상 정보가 기재되어 있다.
Survived : 0 = 사망, 1 = 생존
Pclass : 1 = 1등석, 2 = 2등석, 3 = 3등석
Sex : male = 남성, female = 여성
Age : 나이
SibSp : 타이타닉 호에 동승한 자매 / 배우자의 수
Parch : 타이타닉 호에 동승한 부모 / 자식의 수
Ticket : 티켓 번호
Fare : 승객 요금
Cabin : 방 호수
Embarked : 탑승지, C = 셰르부르, Q = 퀸즈타운, S = 사우샘프턴
즉, 생존 여부 정보가 포함된 900명의 train 데이터를 바탕으로 생존 여부 정보가 기재되지 않은 300명의 test 데이터의 생존 여부를 추측하는 것이 타이타닉 예제의 목적이 된다.
3.데이터 분석
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import matplotlib as mpl
import seaborn as sns
train = pd.read_csv('C:\\Users\\endnj\\Downloads\\titanic\\train.csv')
test = pd.read_csv('C:\\Users\\endnj\\Downloads\\titanic\\test.csv')
강의 동영상 중 데이터 전처리 초반부에 나온 머신러닝 라이브러리 3대장 pandas/numpy/matplotlib을 바로 영접할 수 있다.
파일 경로가 어디있는지 모르겠다면
이렇게 클릭해서 바로 찾을 수 있다.
위 코드를 실행하고 head로 데이터를 잘 받아왔는지 확인해 보자.
여기서 test에는 Survived 항목이 없는것을 확인하고, info로 구체적인 부분을 보자.
PassengerId와 다른 항목을 비교해보았을 때, test,train 데이터 모두 Age항목에 약간 공백이 있고 Cabin은 큰 공백이 있음을 볼 수 있다.
강의 동영상 5강. 정형 데이터 전처리&시각화(1) 초반부에 나오는 Feature Engineering 을 통해 빠진 데이터를 채워넣거나, 해당 항목을 삭제하는 등의 조치를 취해야 한다. 공백이 작은 Age는 채워넣을만 해 보이지만, 공백이 큰 Cabin은 항목 자체를 삭제해야 할지도 모르겠다. 일단 표본수가 매우 적은 예제이므로, 최대한의 데이터를 살리는 쪽으로 방향을 잡아보자.