Kaggle의 공식 문서
와 캐글 가이드
라는 책을 읽고 Kaggle
의 정의나 기본적인 사용법들에 대하여 정리해보았습니다.
캐글 가이드
는 동양북스
라는 출판사에서 나온 책입니다. 책에 대해 궁금하신 분을 위해 링크도 첨부해두겠습니다.
저처럼 이제 막 Kaggle
을 접하는 분들에게 도움이 되었으면 합니다.
수정해야할 부분이 있으면 Issues
에 남겨주시면 감사하겠습니다.
참고로 Hello Kaggle!
문서는 Python 프로그래밍
또는 머신러닝 이론
같은 것은 거의 다루지 않고 Kaggle 사용법
에 집중하였습니다.
프로그래밍이나 데이터 사이언스, 머신러닝 자료를 찾고 계신 분들을 위해 제가 도움을 받았던 링크를 몇 군데 남겨두겠습니다.
인공지능, 머신러닝 붐
이 일어나면서 참가자 수가 계속 증가해왔으며 2017년 구글
의 모회사 'Alphabet' 에 인수되기도 하였습니다.Kaggler
? Kaggling
?Googling
이라고 하는 것 처럼 Kaggler
, Kaggle에서 활동하거나 Competition에 참가하는 것은 Kaggling
이라고 합니다.Jobs
Course
Python
, 머신러닝
, 시각화
등에 대한 실무, 실용적인 강의들을 제공합니다.영어
로 제공되고 무료
이며 수료증
을 제공합니다.영어
프로그래밍 언어
Python
과 R
을 많이 사용합니다.목적 | 필요한 지식 |
---|---|
Competition 참가 | Python, R, 데이터 분석 |
Competition 주최 | 데이터 분석, 영어 |
Kaggler와 토론 | 영어 |
Course를 통한 학습 | 영어 |
인터넷
, Python
, R
프로그래밍이 가능한 PCGPU 탑재된 서버
or 워크스테이션
, 대용량의 HDD
or SSD
인프라
로 활용하기웹 기반
으로 데이터 분석에 필요한 도구를 제공해줍니다.(Notebook)Notebook
활용하기데이터 분석용 프로그래밍 환경
입니다.Jupyter Notebook
을 참고해 만들어져 비슷합니다.4Core CPU + 16GB RAM
을 제공합니다. GPU 서버
는 2Core CPU + GPU + 13GB RAM
을 제공합니다.사용 횟수 제한없이 무료로 제공
해주며 GPU는 1주일에 30시간
동안 사용할 수 있습니다.Dataset
활용하기Dataset
을 준비하는 것입니다.Private
설정을 통해 외부에는 공개하지 않을 수 있습니다.공개
로 설정하면 Apache 2.0 License
가 적용되므로 신중하게 결정해야 합니다.회사 연수
에 활용하기개발 환경 구축
, 점수 확인
, 배포
등의 점에서 훨씬 간편하고 비용이 덜 든다는 것을 알 수 있습니다.Discussion
활용하기모르는 것이 있으면 메인 홈페이지의 Communities
, Site Forums
, 그리고 Competition마다 있는 Discusstion
에 질문할 수 있습니다.
Competitions Documentation에서 몇 가지 내용을 참조하여 작성했습니다.
Featured
$100
부터 많게는 $1,500,000
까지도 있습니다.Research
Getting Started
Titanic: Machine Learning from Disaster
, House Prices: Advanced Regression Techniques
, Digit Recognizer
이 3가지 Competition은 머신러닝에 입문한 분들에게 가장 많이 추천되고 도움이 되는 Competition들입니다.Playground
Recruitment
Annual Competition
Analytics
회원가입
Register
버튼을 눌러서 회원가입을 먼저 진행해주셔야 합니다.Courses
둘러보기Courses
에서 필요한 부분을 공부하는 것도 좋은 방법입니다.Kaggle Progression System을 참조해서 작성했습니다.Contributer
가 되는 법에 대해 설명하기 전에 Kaggle 등급
과 메달
에 대한 설명을 먼저 하겠습니다.
등급
Kaggle에는 Progression System이 있는데 쉽게 이야기해서 Kaggler 등급
입니다.
이 등급은 데이터 사이언티스트로써 어느정도의 실력을 가졌는지 가늠할 수 있는 좋은 지표입니다.
또한 자신이 얼마나 성장했는지를 직관적으로 보여주기도 합니다.
Kaggle 등급은 다음과 같이 5단계로 나뉘어지며 각 등급을 달성하기 위한 조건도 제시되어 있습니다.
또한 위 사진들에서 볼 수 있듯이 Kaggle 등급은 Competitions
, Datasets
, Notebooks
, Discussion
각 분야 별로 다르게 부여됩니다.
오른쪽 위 계정 아이콘을 누른 후 My Profile
을 선택해서 프로필 페이지로 넘어갑니다.
그럼 본인의 프로필 정보와 Kaggle 활동 내용 및 등급을 확인할 수 있습니다.
메달
Competition
에서 훌륭한 결과를 얻은 KagglerNotebook
을 작성하고 공유하는 KagglerDataset
을 공유하는 KagglerComment
를 작성하는 KagglerContributer
등급은 해당하는 조건을 만족하면 되지만 Expert
부터는 각 분야에 해당하는 조건에 요구하는 메달을 모아야 합니다.Competitions
의 경우 참가하는 팀 수에 따라 메달의 수여 기준도 다음과 같이 달라집니다.Datasets
, Notebooks
, Discussion
은 Vote 숫자로 평가합니다. Vote 숫자가 높을 수록 많은 Kaggler들에게 추천을 받았다는 의미입니다.Dataset
에 올린 게시물이 20 Votes를 받았다면 동메달은 없어지고 은메달을 받는 것입니다.Contributor
되기자기소개 (bio)
직업 (Occupation)
소속 조직 (Organization)
거주 도시 (City)
프로필 이미지
, SNS
등은 자유롭게 설정하시면 됩니다.Phone Verification
을 클릭합니다.국가코드 (Country Code)
, 전화번호 (Phone Number)
, 로봇이 아닙니다
박스에 체크를 한 후 Send code
를 클릭합니다.Verify
를 클릭하면 인증이 완료됩니다.Course
에서 강의를 진행하거나 직접 Notebook
을 생성하여 아무 코드나 실행해보면 달성할 수 있습니다.4. Competition에 참가하기
에도 실행하는 과정이 있으니 건너뛰어도 괜찮습니다.Getting Started
카테고리에 있는 Competition을 하나 고릅니다.
여기서 Notebooks
를 클릭하고 다른 사람들이 작성한 Notebook들을 구경해봅니다.
원하는 Notebook을 하나 골라서 열어보면 오른쪽 위에 버튼이 보일 것입니다. 이 버튼을 클릭해서 Notebook을 복사합니다.
복사가 완료되면 다시 오른쪽 위에 있는 Save Version
을 클릭합니다.
Version Name
: 원하는 이름을 입력할 수 있습니다.Version Type
: Quick Save
또는 Save & Run All (Commit)
, 두 가지 옵션이 있는데 Quick Save
는 저장만하고 실행은 하지 않으며 Save & Run All (Commit)
은 실행도 합니다.Save & Run All (Commit)
을 클릭하고 Save
버튼을 누릅니다.Notebooks
를 클릭하면 방금 복사한 Notebook을 확인할 수 있습니다.Output
이 있습니다.Output
을 누르면 볼 수 있는 Submission.csv
(Submission 파일의 이름은 다를 수도 있습니다)를 선택하고 오른쪽에 있는 Submit to Competition
을 클릭합니다.Leaderboard
메뉴로 화면이 옮겨지고 제출된 파일이 자동으로 채점이 됩니다.Jump to your position on the leaderboard
를 클릭해 자신의 순위를 확인할 수 있습니다.Discussion
에서 자신이 원하는 Topic에 들어가서 관심있는 글을 클릭합니다. (Site Forums
의 Getting Started
에 들어가보는 것을 추천드립니다.)댓글
을 작성합니다. 글이 유용하거나 마음에 들었다면 Vote
도 눌러줍시다.Contributor
되기 완료!Competitions
, Datasets
, Notebooks
, Discussion
네 분야 별로 순위를 확인할 수 있습니다.Competitions
분야의 순위를 보여주고 있습니다. 또한 그 분야에 각 등급별로 몇 명이나 있는지 확인도 가능합니다.Notebook
으로 할 수 있는 것은?Competition
에 제출하거나 Notebook
을 Kaggler
들과 공유할 수 있습니다. 공유되는 Notebook
중에는 오직 교육 또는 기술을 알려주기위한 목적인 것도 있습니다.코드용 셀
과 마크다운 셀
을 활용하여 코드, 코드에 대한 설명(텍스트, 이미지 등)을 작성할 수 있습니다. Notebook
만들고 사용하기Kaggle Notebook
은 Script
와 Notebook
, 두 가지 타입을 선택할 수 있습니다.
Script
는 일반적으로 사용하는 코드 편집기에 코드를 작성하고 실행하는 방식입니다.Notebook
은 Jupyter Notebook
과 비슷한 인터랙티브 개발 환경입니다. 셀을 나누어서 원하는 부분의 코드만 실행할 수 있는 특징이 있습니다.Notebook
을 생성하면 다음과 같은 코드가 보일 것입니다.
# 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
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 read-only "../input/" directory
# For example, running this (by clicking run or pressing Shift+Enter) will list all files under the input directory
import os
for dirname, _, filenames in os.walk('/kaggle/input'):
for filename in filenames:
print(os.path.join(dirname, filename))
# You can write up to 20GB to the current directory (/kaggle/working/) that gets preserved as output when you create a version using "Save & Run All"
# You can also write temporary files to /kaggle/temp/, but they won't be saved outside of the current session
Python
의 Numpy
와 Pandas
라이브러리를 불러온 후, 파일을 가져올 디렉터리를 /kaggle/input
으로 지정한 것입니다.Notebook
에 Hello Kaggle!
을 출력해보겠습니다. 아무 코드셀에 커서를 대면 + Code
버튼을 볼 수 있는데 눌러주도록 합니다.Ctrl + Enter
또는 Shift + Enter
입력해서 코드를 실행합니다. 그러면 다음과 같이 출력이 될 것입니다.Notebook
의 다양한 설정공개
&비공개
설정하기
Notebook
은 다른 Kaggler
들에게 공유하기 위해 공개할 수 있습니다. 하지만 본인만 알고싶다거나 팀으로 활동할 때에는 비공개
, 특정 사용자에게 공유
같은 설정을 할 수 있습니다.Share
버튼을 누르면 공개 또는 비공개를 설정하는 창이 열립니다.Privacy
를 Public
으로 설정하면 Apache 2.0 License
적용과 함께 공개가 됩니다.Colaborators
에서 사용자를 검색해 공동 작업자로 추가할 수 있습니다.Settings
설명
Language
: Python
과 R
중에 사용할 프로그래밍 언어를 설정할 수 있습니다.Environment
: Docker
이미지를 설정할 수 있습니다. Original
은 Notebook
을 만들 때 직접 개발 환경을 설정하는 것이고 Latest Available
은 Kaggle
이 제공하는 최신 개발 환경을 사용하는 옵션입니다.Accelerator
: GPU
또는 TPU
를 사용할지 설정할 수 있습니다.GPU/TPU Quota
: GPU
및 TPU
사용 시간와 사용량을 보여줍니다.Internet
: 인터넷 연결 여부를 설정할 수 있습니다.Internet
을 On
으로 설정하면 특정 패키지를 설치할 수 있습니다. 또한 구글 계정을 이용해 GCP (Google Cloud Platform)
의 BigQuery
, Cloud Storage
, AutoML
서비스를 사용할 수 있습니다.Notebook
에서 Data
불러오는 법Kaggle Notebook
은 Competition Data
뿐만 아니라 공유되고 있는 다양한 Dataset
을 이용할 수 있습니다.Notebook
에서 사용할 수 있도록 설정해주어야 합니다.Notebook
에 추가하는 방법Notebook
의 출력 데이터를 사용하는 방법Kernel Ouput Files
탭을 클릭하면 다른 Notebook
의 출력 데이터를 사용할 수 있습니다.Notebook
에서 외부 패키지 사용하기pip
를 사용할 수도 있습니다.
!pip install package_name
import os
os.system('pip install package_name')
Notebook
에서 Dataset
소스 코드 사용하기hello_kaggle
이라는 패키지를 포함한 example dataset
을 Notebook
에 추가하면 ../input/example-dataset/hello_kaggle 디렉터리를 추가하면됩니다.import sys
sys.path.append("../input/example-dataset/hello_kaggle")
Notebook
은 데이터 분석 Competition
말고 어디에 사용될 수 있나요?Competition
이 종료된 후 Notebook
을 공개하게 됩니다.Competition
이 진행되고 있을 때에도 Kaggler
들과 토론을 할 수 있는 환경도 조성되어 있습니다.Competition Notebook
에서 사용할 Data File
다루는 법Competition
을 진행할 때 Notebook
의 오른쪽 상단을 보면 Data
탭이 있습니다. 눌러보면 3가지의 파일이 있을 것인데 각 파일에 대한 설명은 다음과 같습니다.
train.csv
: 정답 레이블이 있는 학습용 데이터입니다.test.csv
: 정답 레이블이 없는 테스트용 데이터입니다.sample_submission.csv
: 제출용 데이터 예입니다.Competition
의 Data
메뉴를 보면 각 파일이 어떤 데이터가 담겨 있는지 확인할 수 있습니다.
예시로 Titanic - Machine Learning from Disaster
를 보겠습니다.
위 사진에서 Data 메뉴를 클릭하면 다음과 같이 Overview를 읽어볼 수 있고
더 아래로 내려가보면 다음과 같이 각 파일을 선택해 데이터를 확인해볼 수 있으며 다운로드도 가능합니다.
위 파일들을 이용해서 모델을 작성 및 제출할 csv 파일을 생성했다고 가정하고 제출하는 방법을 다루어보겠습니다.
(4-competition에-참가하기에서도 같은 내용이 설명되어 있습니다.)
Notebook
화면의 오른쪽 상단에 있는 Save Version
을 클릭합니다. (만약 코드를 실행하지 않은 상태라면 Save & Run All (Commit)
을 클릭하면 됩니다.Save & Run All (Commit)
에서 Commit
은 현재 제가 문서를 작성하고 있는 Github
의 Git Commit
과 같은 의미입니다.Kaggle Notebook
은 이전에 작성했던 소스 코드의 버전을 참조할 수 있습니다.이제 프로필로 돌아가서 Notebooks
를 클릭하면 방금 저장한 Notebook을 확인할 수 있습니다.
이 노트북을 클릭하면 오른쪽 메뉴 중에 Output
이 있습니다.Output
을 누르면 볼 수 있는 Submission.csv
를 선택하고 오른쪽에 있는 Submit to Competition
을 클릭합니다.
Leaderboard
메뉴로 화면이 옮겨지고 제출된 파일이 자동으로 채점이 됩니다.Jump to your position on the leaderboard
를 클릭해 자신의 순위를 확인할 수 있습니다.캐글 가이드
저자 사카모토 도시유키님의 개인 생각입니다.Baseline
Notebook
Competition
의 데이터를 분석하고 시각화
를 해서 보여주는 Notebook
을 뜻합니다.종속 변수
와 잘 맞는 독립 변수
도 찾습니다.Competition
경험이 적다면 다른 Kaggler
들이 분석한 데이터들을 보면서 지식과 인사이트를 쌓는 것도 좋은 시작이 될 수 있습니다.Notebook 포크하기
머신러닝
과 Kaggle
에 처음 입문한 사람들은 곧바로 데이터 분석이나 모델을 개발하지 않고 공개되어 있는 Notebook
을 포크해오는 것도 하나의 방법입니다.포크(Fork)
란 소스 코드의 한 버전을 복사해오는 것을 뜻합니다.Notebook
의 오른쪽 상단에 위치한 버튼을 눌러서 복사하면됩니다.병합 Notebook
Merge
, Blending
, Stacking
, Ensemble
등의 단어가 Notebook
제목에 있다면 병합 Notebook
이라고 합니다.Notebook
을 합친 Notebook
을 뜻합니다.Notebook
등장 순서 정리와 결론Competition
이 진행된다고 했을 때 무작정 우승자의 Notebook
을 보는 것보단 그 과정을 이해할 수 있도록 다양한 Notebook
을 공부해보는 것이 좋을 것이라 생각이됩니다.Competition
은 기본적으로 경쟁을 하는 것이므로 공개된 Notebook
들은 다른 Kaggler
들이 알아도 본인에게 큰 타격이 없다는 뜻입니다.Notebook
을 보면 당시 최신 기술을 사용하거나 공개했던 Notebook
과는 다른 솔루션을 사용한 경우도 종종 보입니다.Kaggle
의 Competitions
는 간혹 별도의 규칙이 있는 경우가 있습니다. 그 이유는 Competitions
의 주최가 보통 특정 회사로부터 이루어지기 때문인데요, 그 회사가 원하는 결과를 얻기 위해 특별한 규칙이 생기곤 합니다.규칙
들을 봐야하나요?Rules
: Competition
에서 입상하기 위해선 우선 그 Competition
의 규칙을 잘 알고 있어야 합니다. 각 Competition
의 Rules
메뉴를 확인하면 됩니다.Evaluation
: Overview
의 Evaluation
페이지에서 평가 함수
를 살펴보고 어떤 평가 방식이 적용되는지를 확인해야 합니다. 보통 통계학 기반의 함수가 사용됩니다.1인 점수 확인 횟수
: 데이터를 하나씩 변경하면서 결과 파일을 자주 제출하여 점수를 자주 확인할 수 있다면 의미있는 성과를 거두지 못하겠죠, 그래서 보통 점수 확인 횟수에 제한이 있습니다.Notebook Only Competition
: Kaggle Notebook
만 사용해서 결과를 제출해야 합니다.Kaggle Notebook
만 사용하게 될 경우 Kaggler
들이 Notebook
을 공개할 확률이 높아지며 모든 참가자는 공개된 Notebook
을 볼 수 있으므로 좋은 아이디어를 쉽게 발견할 수 있습니다.Competition
에서 살펴보기Kaggle
의 특징이 하나 있는데 바로 오래전에 종료된 Competition
의 Discussion
과 Notebook
을 그대로 남긴다는 것입니다.Competition | 사용된 기술 | 설명 |
---|---|---|
Mercari Price Suggestion Cahllenge(2018.2) | TF-IDF 벡터 + 전결합층 신경망 | 각 단어의 출현 빈도를 신경망으로 학습 |
Toxic Comment Classification Challenge(2018.3) | FastText, Glove + GRU + LightGBM | 단어 벡터 사전을 시계열 데이터로 학습해 조합함 |
Avito Demand Prediction Challenge(2018.6) | FastText + LSTM + 2D-CNN | 문장의 데이터와 이미지를 신경망으로 동시에 학습 |
Quora Insincere Questions Classification(2019.1) | Glove, para + OOV Token + LSTM + 1D-CNN | 어휘 이외의 단어를 OOV 토큰으로 학습 |
Jigsaw Unintended Bias in Toxicity Classification(2019.6) | BERT + XLNet + GPT2 | BERT 모델이 Kaggle에 등장 |
Github
저장소에서 Competition
에 입상한 솔루션을 주제별로 정리하여 공개하고 있습니다.(지금 확인해보니 11개월전이 마지막 커밋이긴 합니다.)Competition
은 종료된 이후에도 Private Leaderboard
페이지에 최신 기술을 적용한 솔루션이 계속 공개됩니다.Dataset
활용하기Dataset
을 통해 성능을 테스트하는 것이 좋은데 UCI Machine Learning Repository
가 유명합니다.Data Repository
(데이터 저장소)로 활용하기Github
를 사용할 때 스토리지나 서버는 필요하지 않은 것처럼 Kaggle
을 Dataset
과 Notebook
을 간편하게 저장하는 장소로 활용할 수 있습니다.(무료!)Notebook
에 Dataset
을 바로 연결하여 사용할 수 있다는 장점도 있습니다.Dataset
하나당 최대 20GB를 사용할 수 있고 비공개의 경우 전체 최대 20GB를 사용 가능하다는 용량 제한이 있습니다.Kaggle API
Kaggle API
는 다양한 개발 환경에서 Kaggle
의 여러가지 기능을 사용할 수 있는 API 입니다.Python 3
으로 구현되었으며 터미널 환경에 커맨드를 입력하는 방식입니다.Kaggle API
설치하기pip install kaggle
명령어로 Kaggle API
를 설치해줍니다.Accounts
를 누릅니다.Create New API Token
을 눌러서 json
파일을 다운로드합니다.json
파일을 사용자의 홈 디렉터리에 .kaggle/kaggle.json
으로 저장하면 Kaggle API
를 사용할 준비가 완료되었습니다.Kaggle API
사용하기kaggle competitions list
명령을 실행하면 현재 진행중인 Competition
들을 확인할 수 있습니다.Competition
의 파일을 확인하고 다운로드하려면 kaggle competitions files COMPETITION_NAME
으로 파일을 확인하고 kaggle competitions download COMPETITION_NAME
하면 파일들을 다운로드할 수 있습니다.Kaggle API
에 대해 더 자세히 알아보시려면 Kaggle Public API Documentation을 확인해주시길 바랍니다.일단 부족함이 많은 저의 Hello Kaggle!
문서를 읽어주신 모든 분들에게 감사 드립니다.
사실 저는 파이썬
을 2020년 4월에 처음 공부했고 같은 해 7월에 입대를 하게되면서 공부에 온전히 집중하지 못하는 상황이기도 했습니다.
그래서 데이터 사이언스 분야를 심도있게 공부하지 못했고 이해도 많이 부족합니다.
이제서야 머신러닝
과 Kaggle
에 발을 들이게 되었네요.
이번에 Hello Kaggle!
문서를 정리하면서 Kaggle
에 대한 이해도가 높아졌고 Getting Started 에 있는 Competition
부터 시작하려고 합니다.
또한 다른 뛰어난 Kaggler분들의 Notebook
을 보면서 최신기술을 열심히 따라가 보려고 합니다.
데이터 사이언스를 공부하는 모든 분들 화이팅
입니다!
Kaggle 是一个网站流量预测项目,项目采用Python语言开发,可以给大家的流量预测建模提供一些思路。 数据模型 Kaggle的训练数据集由大约14.5万套时间序列组成,每一套时间序列代表的是每天不同维基百科文章页的浏览次数,时间记录的周期为2015年7月1日到2017年9月10日。而我们的目标是为了预测2017年9月13日到2017年11月13日之间每天的页面浏览量。其中,需要检测的流量包括
For lesson 1, competition is dogs-vs-cats-redux-kernels-edition: pip install kaggle-cli kg config -g -u `username` -p `password` -c `competition` kg download unzip train.zip unzip test.zip Links http
EEG Seizure Prediction Gareth Paul Jones 3rd place Melbourne University AES/MathWorks/NIH Seizure Prediction 2016 See also: Seizure Prediction Competition, 3rd Place Winner's Interview: Gareth Jones U
Summary Pytorch Kaggle starter is a framework for managing experiments in Kaggle competitions. It reduces time to first submission by providing a suite of helper functions for model training, data loa
Kubernetes clusters for the hobbyist This guide answers the question of how to setup and operate a fully functional, secure Kubernetes cluster on a cloud provider such as Hetzner Cloud, DigitalOcean o
在本教程竞赛中,我们对情感分析进行了一些 深入 研究。谷歌的 Word2Vec 是一种受深度学习启发的方法,专注于单词的含义。