ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Kaggle 타이타닉 튜토리얼 한글 번역 30 Days Of ML, Day 1
    프로그래밍 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을 눌러서 제출할 수 있습니다.

    반응형
Designed by Tistory.