상세 컨텐츠

본문 제목

Kaggle 타이타닉 튜토리얼 한글 번역 30 Days Of ML, Day 1

프로그래밍

by 경밤 2021. 8. 3. 09:37

본문

반응형

케글에 첫 발을 내딛는 것에는 진입장벽이 있을 수 있습니다. 케글의 대회들은 대부분 큰 돈이 걸려있고, 공개적으로 순위가 보여집니다. 또한 복잡한 데이터가 학습과 테스트를 위해 존재하죠.

그럼에도 불구하고 케글은 모든 데이터 과학자들이 빠르게 머신러닝과 그 대회에 참여하여 의미있는 성과를 거두어 케글에 기여할 수 있기를 바랬습니다.

저희 케글의 시스템을 여러분들께 이해시키고, 여러분이 케글에서 하는 활동들의 정신적인 지주가 되어 도움이 되기를 바래, 케글의 타이타닉 대회에 관한 튜토리얼을 작성했습니다.

이 과정속에서 첫번째 제출을 하게 될 것이며, 필요한 계정 관련 초기 단계를 안내할 것 입니다.

이 튜토리얼의 끝을 보게 될 즈음에는 케글의 온라인 코딩 환경 사용법을 알게 될 것 입니다.

  • 큰 데이터셋을 다루는 경험
  • 코딩에 숙달되지 않음
  • 처음 데이터 과학을 접함

어쨌든 이것은 여러분의 첫번째 케글 입성일 것 입니다. 

어서오세요!

1. 시작하기

이 장에서는 첫번째 대회(타이타닉)에 제출을 할 것 입니다.

1-1. 대회 참가

제일 먼저 해야할 것은 대회참가입니다. https://www.kaggle.com/c/titanic 이 링크로 들어가셔서, Join Competition 버튼을 눌러주세요. 

대회를 참가하기 전에, 규칙을 동의, 수용하고 규칙을 따라야 합니다.

이런 규칙들은 하루 최대 제출 수, 최대 팀원 수, 그 외 세부 정보를 담아냅니다.

1-2. 목표

목표는 간단합니다. 타이타닉 승객의 정보를 사용하여 누가 살아남고 누가 죽을 것인지 예측하는 것 입니다.

1-3. 데이터

https://www.kaggle.com/c/titanic/data 이 링크로 들어가 train.csv, test.csv, gender_submission.csv를 다운로드합니다.

1-3-1. train.csv

약 891명의 승객의 정보를 가지고 있는 데이터셋 입니다. 케글 사이트에서 이것을 자세히 보려면 파일 명을 클릭하세요.

Detail, Compact, Column 형식으로 볼 수 있습니다.

이것은 머신러닝 모델의 학습을 위해 사용될 것 입니다.

1-3-2. test.csv

이것은 머신러닝 모델의 작동을 확인하기 위해 사용될 것 입니다. 이것에 관해서 더 높은 정답률을 기록하는 것이 더 높은 점수를 얻을 수 있습니다.

1-3-3. gender_submission.csv

제출할 답안지의 예시입니다. 이 파일은 그저 여성이 다 살아남았다고 기록되어져있지만, 그것은 예시일 뿐 입니다.

핵심은 "PassengerId"와 "Survived" 열이 존재해야한다는 것 입니다.

2. 코딩 환경

이 장에서는 여러분의 머신러닝 모델을 학습시킬 것 입니다.

2-1. Notebook

코드를 저장할 곳인 케글 노트북을 만들어야 합니다. 케글 노트북을 사용하여 빠르게 코드를 작성하고 확인 할 수 있으며, 아무것도 설치하지 않아도 다양한 파이썬 라이브러리를 사용할 수 있습니다.

https://www.kaggle.com/c/titanic/kernels 이 링크로 가서 New Notebook 버튼을 누릅니다.

2-2. 데이터 로딩

import numpy as np
import pandas as pd

train_data = pd.read_csv("/kaggle/input/titanic/train.csv")
train_data.head()

test_data = pd.read_csv("/kaggle/input/titanic/test.csv")
test_data.head()

붙여넣기를 하고 쉬프트+엔터를 눌러 코드를 실행시킬 수 있습니다. 이 코드는 아래 새로운 코드 라인에서도 유효합니다.

3. 머신러닝과 제출

train.csv에서 패턴을 파악하는 것은 test.csv 파일에 관해 예측하는 것에 도움이 됩니다.

하지만 데이터가 너무 많은 경우, 그것이 여러분에게 압도감을 줄 수 있습니다. 따라서 코드를 통해 간단히 시작하겠습니다.

3-1. 데이터의 패턴 파악

women = train_data.loc[train_data.Sex == 'female']["Survived"]
rate_women = sum(women)/len(women)

print("{} of women who survived:".format(rate_women))

men = train_data.loc[train_data.Sex == 'male']["Survived"]
rate_men = sum(men)/len(men)

print("{} of men who survived:".format(rate_men))

남자와 여자에 대해 생존률을 찾아보았습니다. 단순히 여자만 살아남았다고 한 gender_submission.csv 는 그리 나쁘지 않은 예측같습니다. 왜냐하면 여자는 75%가 생존, 남자는 19%가 생존하였기 때문입니다.

여러 열을 이용하여 더욱 높은 정답률을 이끌어낼 수 있을 것 입니다. 하지만 이것은 인간이 하기에는 어렵기에 기계학습을 통해 복잡한 패턴을 발견하게 하겠습니다.

3-2. 머신러닝 모델 사용

랜덤 포레스트 모델을 사용할 것 입니다. 여러 트리들로 구조된 이것은 여러 트리가 내놓은 여러 답에 관하여, 다수결의 원칙으로 선택된 답을 씁니다.

from sklearn.ensemble import RandomForestClassifier

y = train_data["Survived"]

features = ["Pclass", "Sex", "SibSp", "Parch"]
X = pd.get_dummies(train_data[features])
X_test = pd.get_dummies(test_data[features])

model = RandomForestClassifier(n_estimators=100, max_depth=5, random_state=1)
model.fit(X, y)
predictions = model.predict(X_test)

output = pd.DataFrame({'PassengerId': test_data.PassengerId, 'Survived': predictions})
output.to_csv('my_submission.csv', index=False)
print("Your submission was successfully saved!")

이후 Save 버튼을 눌러 저장합니다.

3-3. 제출

Code 메뉴로 가신 후, Your Work로 들어가셔서 생성하셨던 노트북을 누릅니다.

Output으로 내려간 다음에 Submit을 눌러서 제출할 수 있습니다.

반응형

관련글 더보기