1. What is Kaggle Titanic?

 

Kaggle은 예측 모델 및 분석 대회를 하는 플랫폼이다. 일반적인 데이터 분석을 할 경우, 문제 정의부터 데이터 준비까지 각자 해결해야 한다. 그렇지만, Kaggle과 같은 사이트에서는 이런 사항이 마련되었기에 활용만 하면 된다. Machine Learning을 처음 다룰 때는 가장 다루기 쉬운 형태인 정형 데이터를 사용하는 것이 적합하다. 정형 데이터란 관계형 데이터베이스 관리 시스템(RDBMS)의 테이블에 저장된 데이터이다. 쉽게 말해, CSV 파일로 저장된 데이터를 정형 데이터라 한다.

여기서는, "Titanic: Machine Learning from Disaster"에 대한 주제로 머신러닝을 활용해서 타이타닉 호에서 생존한 승객을 예측하려 한다. Train Set로 학습을 시켜 Test Set에 적용해 결과를 도출할 것이다. 즉, 승객의 생존 여부를 포함한 세부 정보가 담긴 Train Set으로 승객의 생존 여부가 포함되지 않은 Test Set에 담긴 승객의 생존을 파악하는 것이 목표다. 세부 개요와 데이터는 아래 사이트에서 확인할 수 있다.

 

 

Titanic: Machine Learning from Disaster

Start here! Predict survival on the Titanic and get familiar with ML basics

www.kaggle.com

 

2. 데이터 불러오기

 

이제, 데이터를 불러온다. Python에서 데이터 분석을 할 경우 Numpy와 Pandas가 주로 사용된다. CSV 형태의 데이터를 읽을 때는 Pandas가 사용된다.

import pandas as pd

train = pd.read_csv(‘train.csv’)
test = pd.read_csv(‘test.csv’)

 

 

www.dsbook.tistory.com/11?category=761055

 

위 글에서 DataFrame에 관한 자세한 사항을 확인할 수 있다.

 

train.head()

 

train.head()를 통해 기본적인 데이터 구성을 확인한다.

 

 

데이터는 생존여부, 탑승 등급, 이름, 성별, 나이, 형제 및 배우자, 부모 및 자녀, 티켓 번호, 요금, 선실, 탑승 위치로 구성된다.

 

train.info()


train.isnull().sum()

 

위의 두 가지 방법으로 각 변수별 데이터 타입과 null값의 유무를 확인한다. 나이, 선실, 탑승 위치와 같이 null값이 있는 데이터를 그대로 모델링에 적용하면 정확한 분석이 어렵다. 이 데이터는 전처리 과정을 거쳐 모델링을 진행한다.

 

3. 탐색적 데이터 분석(EDA)

 

본격적인 모델링 작업에 들어가기 전, 필요한 과정이 있는데 바로 EDA(탐색적 데이터 분석)이다. EDA는 변수의 분포와 특성을 파악하기 위해 시각화하는 것으로 데이터에 대한 이해를 하는 과정이다. 그 방법에는 히스토그램, 산점도, 상관관계 등 다양한 방법을 적용할 수 있다. 추후, 여러 시각화를 할 예정이지만 여기서는 간단히 탑승 등급, 성별, 나이에 관해서만 확인한다.

 

import matplotlib.pyplot as plt
%matplotlib inline

import seaborn as sns

 

시각화를 하기 전, matplotlib과 seaborn부터 import 한다.

 

f,ax = plt.subplots(1, 2, figsize = (20,8))
train['Survived'].value_counts().plot.pie(explode = [0,0.1], autopct = '%1.1f%%', ax = ax[0], shadow = True)
ax[0].set_title('Survived')
ax[0].set_ylabel('')
sns.countplot('Survived',data = train, ax = ax[1])
ax[1].set_title('Survived')
plt.show()

 


f,ax = plt.subplots(1, 2, figsize = (20,10))
sns.violinplot("Pclass", "Age", hue = "Survived", data = train, split = True, ax = ax[0])
ax[0].set_title('Pclass & Age')
ax[0].set_yticks(range(0, 110, 10))
sns.violinplot("Sex", "Age", hue = "Survived", data = train, split = True, ax = ax[1])
ax[1].set_title('Sex & Age')
ax[1].set_yticks(range(0, 110, 10))
plt.show()

 

 

첫 번째 그래프를 보면 승객 891명 중 38.4%만이 생존했다. 그리고, 1등급 객실에서의 30대와 2~30대 여성이 많이 생존했음을 확인할 수 있다.

728x90
반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 라이프코리아트위터 공유하기
  • shared
  • 카카오스토리 공유하기