ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • (Kaggle) Kaggle이란? Kaggle 사용법
    IT 지식 창고 2018. 12. 30. 21:02

    Kaggle을 하려는 사람들은 파이썬 또는 R과 같은 프로그래밍 언어를 사용하실 줄 안다고 생각하고, 

    어느 정도 데이터 분석의 기초 지식이 있는 사람들일 것이라고 생각합니다.


    Kaggle이란?


    - Google에서 인수한 Data Scientist들 간의 온라인 커뮤니티라고 할 수 있습니다. 

    - 여러 사람들이 Data Set을 올려 그 데이터를 가지고 모델링하고 통계적 기법들을 사용하여 학습하고 협력 할 수 있는 사이트 입니다.

    - 일종의 Data Set들을 가지고 서로 경쟁하며 대회를 하여 상금을 탈 수도 있고, Kaggle사이트의 장점은 모델링하고 분석한 여러 Data Scientist들의 Kernel 즉, 코드 내용들을 공유하고 들여다 볼 수 있다는 것입니다.


    Kaggle 사용하는 방법

    • 본인이 편한 대로 회원 가입을 해줍니다. 저는 Google로 가입을 할 것입니다.

    • 가입을 하고 로그인을 하면 이렇게 나옵니다.
    • Kaggle처음 입문하는 경우 하는 것이 좋은 Titanic Data Set을 분석하고 경쟁해보도록 합니다.
    • Search 창에 Titanic을 검색하고, Titanic을 검색하면 아마 제일 위에 Titanic: Machine Learning from Disaster가 뜰 겁니다. 클릭해봅시다~

    • 들어가면 이렇게 나옵니다.

    • 간단히 Titanic 데이터에 대해서 설명하자면, 다들 잘 아시는 타이타닉 재난에 대한 데이터 입니다. 탑승한 승객들 중 Sex, Pclass(객실등급), Age 등 여러 Feature(요소)들과 Survived(생존)이라는 Column들이 있는데, 이 Feature들로 Survived를 예측해야 합니다. Titanic 데이터를 분석하는 자세한 내용은 다음 게시글에서 작성하도록 하겠습니다.

    • Overview Data Kernel 등 여기 메뉴에서 Kernel을 눌러보면, 위 사진과 같이 여러 사람들이 분석해 놓은 글들을 볼 수 있습니다.
    • 처음에는 여러 개를 참고해서 보시는 게 좋을 것 같습니다. 
    • 그리고 Kaggle에서는 직접 Kernel을 생성해서 노트북이나 스크립트를 제공하기 때문에 Kaggle사이트에서 바로 코드를 작성하여 분석하여도 되고, 아니면 본인이 자주 쓰시는 분석 Tool을 사용하여 csv파일을 제출해도 됩니다.
    • Kaggle에서 바로 코드를 작성하는 경우는 바로 제출이 가능한 편리함이 있습니다.
    • 한번 New Kernel을 만들어 봅시다.
    • 만들고 우측에 Draft Environment에 보면 input폴더에 분석에 필요한 데이터들이 들어있습니다.
    • train데이터로 모델링을 하고 test데이터로 예측을 합니다. 예측을 한 결과를 제출하면 됩니다.
    • 여기서 gender_submission.csv파일이 있는데 이것은 제출 형식 예시 용으로 저의 생각엔 성별에 따라 예측을 해 놓은 것 같습니다.
    • 우선 gender_submission.csv파일을 제출만 해볼까요?
    • 제출은 2가지 방법으로 csv파일을 업로드 하는 방법Kaggle사이트의 Kernel에서 바로 제출하는 방법으로 2가지 방법 다 알려드리겠습니다.
    • 첫 번째로, csv파일을 제출한다고 했을 때입니다.
    • 우선 csv파일을 예시로 필요하므로 위 사진처럼 우측 data에서 gender_submission.csv파일을 다운 받아 줍니다.
    • 위 사진처럼 Overview를 눌러 Submit Predictions를 눌러 줍니다.
    • 바로 여기에 csv파일을 업로드 한 뒤 맨 아래에 Make Submission을 눌러줍니다.

    • 두 번째 방법은 Kaggle에서 Kernel을 생성한 뒤 바로 제출 하는 것입니다.
    # This Python 3 environment comes with many helpful analytics libraries installed
    # It is defined by the kaggle/python docker image: https://github.com/kaggle/docker-python
    # For example, here's several helpful packages to load in 
    
    import numpy as np # linear algebra
    import pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)
    
    # Input data files are available in the "../input/" directory.
    # For example, running this (by clicking run or pressing Shift+Enter) will list the files in the input directory
    
    import os
    print(os.listdir("../input"))
    
    # Any results you write to the current directory are saved as output.
    
    ['test.csv', 'train.csv', 'gender_submission.csv']
    
    In [2]:

    # csv파일을 불러온 뒤 잘 불러와 졌는지 확인.

    gender_submission = pd.read_csv('../input/gender_submission.csv')
    gender_submission.head()
    
    Out[2]:
    PassengerIdSurvived
    08920
    18931
    28940
    38950
    48961
    In [3]:

    # 제출 할 csv파일을 만들어 준다.

    PassengerId = np.array(gender_submission["PassengerId"]).astype(int)
    Survived = np.array(gender_submission["Survived"]).astype(int)
    gender_submission = pd.DataFrame(Survived, PassengerId, columns = ["Survived"])
    gender_submission.to_csv("gender_submission.csv", index_label = ["PassengerId"])
    • 위 처럼 코드를 작성합니다.
    • 우측 상단에 Commit을 눌러주면 위와 같이 뜨는데 Commit이 완료되면 Open Version을 눌러줍니다.
    • Open Version을 누른 뒤 뜨는 새 창에서 내려가 보면 위와 같이 Output Files라는 부분이 있을 겁니다.
    • 여기서 우측에 보이는 Submit to Competition을 눌러줍니다.
    • 그러면 두 가지 방식 다 마지막에는 이렇게 뜹니다.
    • 저 같은 경우는 이전에 몇 번 진행하여서 총 19번의 제출 중에 best는 0.78947이며, gender_submission.csv는 0.76555의 Accuracy를 보여주고 있습니다.

    개인적으로 https://developers.ascentnet.co.jp/2017/11/24/kaggle-process-review/ 에서 이분 것을 참고해서 Titanic 데이터 분석 입문을 하시면 될 것 같습니다.


    저도 나름 분석을 해서 score를 더 올린 다음 게시글을 작성하도록 하겠습니다.

    댓글

Designed by Tistory.