-
(Kaggle) Kaggle이란? Kaggle 사용법IT 지식 창고 2018. 12. 30. 21:02
Kaggle을 하려는 사람들은 파이썬 또는 R과 같은 프로그래밍 언어를 사용하실 줄 안다고 생각하고,
어느 정도 데이터 분석의 기초 지식이 있는 사람들일 것이라고 생각합니다.
Kaggle이란?
- Google에서 인수한 Data Scientist들 간의 온라인 커뮤니티라고 할 수 있습니다.
- 여러 사람들이 Data Set을 올려 그 데이터를 가지고 모델링하고 통계적 기법들을 사용하여 학습하고 협력 할 수 있는 사이트 입니다.
- 일종의 Data Set들을 가지고 서로 경쟁하며 대회를 하여 상금을 탈 수도 있고, Kaggle사이트의 장점은 모델링하고 분석한 여러 Data Scientist들의 Kernel 즉, 코드 내용들을 공유하고 들여다 볼 수 있다는 것입니다.
Kaggle 사용하는 방법
- https://www.kaggle.com/ 사이트에 접속합니다.
- 본인이 편한 대로 회원 가입을 해줍니다. 저는 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.
In [2]:# csv파일을 불러온 뒤 잘 불러와 졌는지 확인.
gender_submission = pd.read_csv('../input/gender_submission.csv') gender_submission.head()
Out[2]: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를 더 올린 다음 게시글을 작성하도록 하겠습니다.
'IT 지식 창고' 카테고리의 다른 글
(Android) bindservice와 broadcast를 같이 못쓰는 이유 (0) 2019.01.12 (Python) order(), sort_index(), sort_values() 무슨 차이가 있을까? (1) 2019.01.11 (Python) ModuleNotFoundError: No module named 'StringIO' (0) 2019.01.11 (Kaggle) Kaggle 제출 제한 (0) 2019.01.09 티스토리 스킨 폰트 변경 방법 (0) 2019.01.06 댓글