Kaggle의 공식 문서
와 캐글 가이드
라는 책을 읽고 Kaggle
의 정의나 기본적인 사용법들에 대하여 정리해보았습니다.
캐글 가이드
는 동양북스
라는 출판사에서 나온 책입니다. 책에 대해 궁금하신 분을 위해 링크도 첨부해두겠습니다.
- 캐글 가이드: 전 세계 데이터 과학자와 소통하고, 경쟁하고, 성장하기 - 동양북스 (동양북스 공식 홈페이지 - 캐글 가이드)
- kaggle-guide by dybooksIT (동양북스의 공식 깃허브 - 캐글 가이드)
저처럼 이제 막 Kaggle
을 접하는 분들에게 도움이 되었으면 합니다.
수정해야할 부분이 있으면 Issues
에 남겨주시면 감사하겠습니다.
참고로 Hello Kaggle!
문서는 Python 프로그래밍
또는 머신러닝 이론
같은 것은 거의 다루지 않고 Kaggle 사용법
에 집중하였습니다.
프로그래밍이나 데이터 사이언스, 머신러닝 자료를 찾고 계신 분들을 위해 제가 도움을 받았던 링크를 몇 군데 남겨두겠습니다.
- DATA SCIENCE ROADMAP 2020
- datastacktv님의 data engineer roadmap
- My Data Science Online Learning Journey on Croursera
- 머신러닝 딥러닝 독학자료 모음 - teddylee777님의 machine-learning Repository
- Team-Neighborhood의 I want to study Data Science
- 한걸음 한걸음, 데이터 과학자(Data Scientist)가 되는 방법
인공지능, 머신러닝 붐
이 일어나면서 참가자 수가 계속 증가해왔으며 2017년구글
의 모회사 'Alphabet' 에 인수되기도 하였습니다.- Alphabet의 인수 이후 Kaggle은 단순한 플랫폼이 아닌 데이터 사이언티스트, 엔지니어들에게 매우 중요한 사이트가 되었습니다.
- 마치 구글에서 검색하는 것을
Googling
이라고 하는 것 처럼
Kaggle의 사용자는Kaggler
, Kaggle에서 활동하거나 Competition에 참가하는 것은Kaggling
이라고 합니다.
Jobs
- Jobs를 원래 제공해왔으나 2020년 12월 22일 서비스를 종료했습니다.
간단하게 요약하자면 이용자 수가 적어서라네요.
자세한 내용은 https://www.kaggle.com/jobs-board-closed 여기서 읽어보시길 바랍니다.
- Jobs를 원래 제공해왔으나 2020년 12월 22일 서비스를 종료했습니다.
Course
Python
,머신러닝
,시각화
등에 대한 실무, 실용적인 강의들을 제공합니다.- 체계적으로 배우지 못했거나 최신 기술이 아닌 강의를 공부했다면 Kaggle의 Course가 꽤 유용할 수 있습니다.
- 또한 모든 강의들은
영어
로 제공되고무료
이며수료증
을 제공합니다.
영어
프로그래밍 언어
- 일반적으로
Python
과R
을 많이 사용합니다.
- 일반적으로
-
목적 필요한 지식 Competition 참가 Python, R, 데이터 분석 Competition 주최 데이터 분석, 영어 Kaggler와 토론 영어 Course를 통한 학습 영어
- 필수:
인터넷
,Python
,R
프로그래밍이 가능한 PC - 권장:
GPU 탑재된 서버
or워크스테이션
, 대용량의HDD
orSSD
- Kaggle은
웹 기반
으로 데이터 분석에 필요한 도구를 제공해줍니다.(Notebook) - 다양한 Kaggler들과 커뮤니티를 이루고 있어 경쟁과 협력이 가능합니다.
- Kaggle에서 제공하는
데이터 분석용 프로그래밍 환경
입니다. - SaaS 환경으로 Notebook에 작성한 코드를 서버에서 실행하는 방식입니다.
- 프로그래밍 환경을 제공해주므로 별도의 개발 환경 구축이 필요없습니다.(Python 설치, Anaconda 설치 등등 필요 X)
Jupyter Notebook
을 참고해 만들어져 비슷합니다.- 기본적으로
4Core CPU + 16GB RAM
을 제공합니다.GPU 서버
는2Core CPU + GPU + 13GB RAM
을 제공합니다.
사용 횟수 제한없이 무료로 제공
해주며GPU는 1주일에 30시간
동안 사용할 수 있습니다.
- 머신러닝 기반의 데이터 분석 프로그램을 개발할 때 가장 먼저 해야하는 것은
Dataset
을 준비하는 것입니다. - 학술 목적으로 공개되었거나 Kaggler가 만들어 공개한 Dataset는 누구나 사용할 수 있습니다.
- 만약 공개하고 싶지 않은 Dataset이라면
Private
설정을 통해 외부에는 공개하지 않을 수 있습니다. - 한 번이라도 Dataset이나 Notebook을
공개
로 설정하면Apache 2.0 License
가 적용되므로 신중하게 결정해야 합니다.
- 책에 나온 예시: 신경망 기반 머신러닝 프로그래밍 작성 직원 연수
-
- Kaggle 회원 가입
-
- 직원들은 진행자의 Noteboook을 복사하고 실행할 준비
-
- Notebook의 신경망 모델 수정
-
- 수정한 모델의 실행 결과를 Competition에 제출하고 점수 확인
-
- 만약 Kaggle을 이용하지 않았다면?
-
- 연수용 컴퓨터에 개발 환경 구축
-
- 머신러닝 프로그램(신경망 모델) 예제 배포
-
- 신경망 모델 실행 결과를 점수로 환산하여 평가하는 프로그램 작성
-
- 실행한 모델의 평가 점수 확인
-
- 신경망 모델 수정
-
- 실행 결과에 따라 점수가 달라지는 것을 확인
-
- Kaggle이
개발 환경 구축
,점수 확인
,배포
등의 점에서 훨씬 간편하고 비용이 덜 든다는 것을 알 수 있습니다.
-
모르는 것이 있으면 메인 홈페이지의
Communities
,Site Forums
, 그리고 Competition마다 있는Discusstion
에 질문할 수 있습니다.
Competitions Documentation에서 몇 가지 내용을 참조하여 작성했습니다.
- 난이도가 있으며 일반적으로 상업적인 목적을 가진 Competition들입니다.
- 대부분의 Kaggler들이 참여하며 지금까지 진행되었던 Competition들의 상금은
$100
부터 많게는$1,500,000
까지도 있습니다.
- 연구적인 주제들을 주로 다루며 일반적으로 상금이나 보상은 주어지지 않습니다.(현재 진행중인 Research Competition들은 모두 상금이 있네요)
- 대신 덜 경쟁적이며 지적 호기심이 많은 Kaggler들과 토론해가며 연구를 할 수 있습니다.
- 여기에 나오는 Competition들은 초보자 대상의 학습용 Competition들입니다.
- 특히
Titanic: Machine Learning from Disaster
,House Prices: Advanced Regression Techniques
,Digit Recognizer
이 3가지 Competition은 머신러닝에 입문한 분들에게 가장 많이 추천되고 도움이 되는 Competition들입니다.
- 주로 데이터 사이언티스트와 엔지니어들이 흥미롭다고 느낄만한 주제들로 Competition이 열립니다.
- Playground라고 해서 난이도가 쉽진 않습니다. 보통 최근에 발표한 학술/기술적 문제나 공공 사회 문제도 다룹니다.
- 주최측에서 상금이나 보상을 제공하는 경우도 있습니다.
- 기업들이 주최하며 보상은 주로 Job Interview(면접) 기회입니다. Competition이 종료된 시점에 참가자들은 Resume(이력서)를 업로드할 수 있습니다.
- 이건 Documentation에 설명이 나와있지 않아서 현재 올라와있는 Analytics Competition들을 직접 읽어보고 작성했습니다.
- 각 Competition의 Evaluation과 Submission 형식을 읽어보니 Analytics의 채점 방식은 Notebook을 직접 제출하여 사람이 채점하는 방식으로 보여집니다.
분석한 데이터를 주최자의 요구사항에 맞게 설명해야 합니다. 마치 회사에서 프레젠테이션을 통해 경영진을 설득하는 것과 비슷해보입니다.
- Kaggle을 시작하기에 앞서 오른쪽 상단의
Register
버튼을 눌러서 회원가입을 먼저 진행해주셔야 합니다.
- 머신러닝이나 데이터 분석 공부가 충분하지 못한 분들은 위에서 소개했던
Courses
에서 필요한 부분을 공부하는 것도 좋은 방법입니다. - 각 과정은 2~8개의 수업으로 구성되어 있고 다양한 실습 예제를 제공합니다.
Kaggle Progression System을 참조해서 작성했습니다.
Contributer
가 되는 법에 대해 설명하기 전에 Kaggle 등급
과 메달
에 대한 설명을 먼저 하겠습니다.
-
Kaggle에는 Progression System이 있는데 쉽게 이야기해서
Kaggler 등급
입니다.
이 등급은 데이터 사이언티스트로써 어느정도의 실력을 가졌는지 가늠할 수 있는 좋은 지표입니다.
또한 자신이 얼마나 성장했는지를 직관적으로 보여주기도 합니다. -
Kaggle 등급은 다음과 같이 5단계로 나뉘어지며 각 등급을 달성하기 위한 조건도 제시되어 있습니다.
-
또한 위 사진들에서 볼 수 있듯이 Kaggle 등급은
Competitions
,Datasets
,Notebooks
,Discussion
각 분야 별로 다르게 부여됩니다. -
오른쪽 위 계정 아이콘을 누른 후
My Profile
을 선택해서 프로필 페이지로 넘어갑니다.
그럼 본인의 프로필 정보와 Kaggle 활동 내용 및 등급을 확인할 수 있습니다.
- 간단히 이야기해서 메달은 Kaggler들의 각 분야에서의 활동 성과를 보여줍니다.
Competition
에서 훌륭한 결과를 얻은 Kaggler- 인기가 많은
Notebook
을 작성하고 공유하는 Kaggler - 유용한
Dataset
을 공유하는 Kaggler - 좋은
Comment
를 작성하는 Kaggler
Contributer
등급은 해당하는 조건을 만족하면 되지만Expert
부터는 각 분야에 해당하는 조건에 요구하는 메달을 모아야 합니다.Competitions
의 경우 참가하는 팀 수에 따라 메달의 수여 기준도 다음과 같이 달라집니다.
Datasets
,Notebooks
,Discussion
은 Vote 숫자로 평가합니다. Vote 숫자가 높을 수록 많은 Kaggler들에게 추천을 받았다는 의미입니다.
- 유의해야할 사항은 각 부분의 게시물별로 수여되는 메달의 종류는 하나입니다.
예를 들어서Dataset
에 올린 게시물이 20 Votes를 받았다면 동메달은 없어지고 은메달을 받는 것입니다.
- 본인의 프로필에 들어가서 Edit Profile을 클릭하고 다음 내용을 입력합니다.
자기소개 (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
도 눌러줍시다.
- 한 가지 내용을 더 추가하겠습니다. 바로 Kaggle Rankings입니다.
Competitions
,Datasets
,Notebooks
,Discussion
네 분야 별로 순위를 확인할 수 있습니다.- 아래 사진은
Competitions
분야의 순위를 보여주고 있습니다. 또한 그 분야에 각 등급별로 몇 명이나 있는지 확인도 가능합니다.
- 데이터 분석용 프로그래밍이 주 목적이며 작성된 프로그램은 캐글 서버에서 실행됩니다.
Competition
에 제출하거나Notebook
을Kaggler
들과 공유할 수 있습니다. 공유되는Notebook
중에는 오직 교육 또는 기술을 알려주기위한 목적인 것도 있습니다.코드용 셀
과마크다운 셀
을 활용하여 코드, 코드에 대한 설명(텍스트, 이미지 등)을 작성할 수 있습니다.
마크다운(Markdown) 사용법
마크다운 emoji-cheat-sheet
위 두가지 링크는 제가 처음 마크다운을 사용하면서 참고했고 이모지는 지금도 필요할 때마다 가끔식 보고있습니다.
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
은 다른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
서비스를 사용할 수 있습니다.
Kaggle Notebook
은Competition Data
뿐만 아니라 공유되고 있는 다양한Dataset
을 이용할 수 있습니다.
이런 경우에는 별도의 파일을Notebook
에서 사용할 수 있도록 설정해주어야 합니다.
-
- 기존의
Notebook
에 추가하는 방법
- 기존의
-
- 직접 업로드하는 방법
-
- 다른
Notebook
의 출력 데이터를 사용하는 방법
- ii의 방법을 따라하면 창이 하나 나타나는데 거기서
Kernel Ouput Files
탭을 클릭하면 다른Notebook
의 출력 데이터를 사용할 수 있습니다.
- 다른
- 또한 다음 두 가지 예시처럼 코드 셀에서 직접
pip
를 사용할 수도 있습니다.!pip install package_name
import os os.system('pip install package_name')
- 만약
hello_kaggle
이라는 패키지를 포함한example dataset
을Notebook
에 추가하면 ../input/example-dataset/hello_kaggle 디렉터리를 추가하면됩니다.
추가하는 코드는 다음과 같습니다.import sys sys.path.append("../input/example-dataset/hello_kaggle")
- 일반적으로 입상이 목표라면
Competition
이 종료된 후Notebook
을 공개하게 됩니다.
하지만Competition
이 진행되고 있을 때에도Kaggler
들과 토론을 할 수 있는 환경도 조성되어 있습니다.
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
를 클릭해 자신의 순위를 확인할 수 있습니다.
- 여기서 나오는 종류나 순서는
캐글 가이드
저자 사카모토 도시유키님의 개인 생각입니다.
- 먼저 데이터 분석을 시작하면 범용 알고리즘을 통해 출력 데이터를 얻습니다.
- 이후 본격적으로 머신러닝 모델을 개발하고 범용 알고리즘을 통해 얻은 출력 데이터와 결과를 비교합니다.
- 비교한 결과에서 범용 알고리즘보다 결과가 나쁘게 나왔다면 모델에 문제점이 있다고 추측할 수 있습니다.
Competition
의 데이터를 분석하고시각화
를 해서 보여주는Notebook
을 뜻합니다.- 제출할 데이터를 만들지 않고 분석한 데이터 사이의 상관관계, 규칙, 구조 등을 파악하는데 집중합니다. 또한
종속 변수
와 잘 맞는독립 변수
도 찾습니다. Competition
경험이 적다면 다른Kaggler
들이 분석한 데이터들을 보면서 지식과 인사이트를 쌓는 것도 좋은 시작이 될 수 있습니다.
머신러닝
과Kaggle
에 처음 입문한 사람들은 곧바로 데이터 분석이나 모델을 개발하지 않고 공개되어 있는Notebook
을 포크해오는 것도 하나의 방법입니다.포크(Fork)
란 소스 코드의 한 버전을 복사해오는 것을 뜻합니다.- 포크하고 싶은
Notebook
의 오른쪽 상단에 위치한 버튼을 눌러서 복사하면됩니다.
Merge
,Blending
,Stacking
,Ensemble
등의 단어가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
을 볼 수 있으므로 좋은 아이디어를 쉽게 발견할 수 있습니다.
또한 모든 참가자의 컴퓨터 연산 자원이 같아지기 때문에 개인 워크스테이션을 쓰는 사람과 그렇지 않은 사람 사이의 불평등을 해소할 수 있습니다.
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에 등장
- Data-Science-Competitions라는
Github
저장소에서Competition
에 입상한 솔루션을 주제별로 정리하여 공개하고 있습니다.(지금 확인해보니 11개월전이 마지막 커밋이긴 합니다.) - 입상한 솔루션은 당시 기술 기반이므로 현재 더 좋은 기술이 있는지 확인해봐야 합니다.
- 그리고 대부분의
Competition
은 종료된 이후에도Private Leaderboard
페이지에 최신 기술을 적용한 솔루션이 계속 공개됩니다.
- 일반적인 알고리즘을 연구할 때는 널리 공개된
Dataset
을 통해 성능을 테스트하는 것이 좋은데UCI Machine Learning Repository
가 유명합니다.
많은 학술 논문에서 이용하기도 합니다.
Github
를 사용할 때 스토리지나 서버는 필요하지 않은 것처럼Kaggle
을Dataset
과Notebook
을 간편하게 저장하는 장소로 활용할 수 있습니다.(무료!)- 또한
Notebook
에Dataset
을 바로 연결하여 사용할 수 있다는 장점도 있습니다. - 공개
Dataset
하나당 최대 20GB를 사용할 수 있고 비공개의 경우 전체 최대 20GB를 사용 가능하다는 용량 제한이 있습니다.
Kaggle API
는 다양한 개발 환경에서Kaggle
의 여러가지 기능을 사용할 수 있는 API 입니다.Python 3
으로 구현되었으며 터미널 환경에 커맨드를 입력하는 방식입니다.
- 1.우선
pip install kaggle
명령어로Kaggle API
를 설치해줍니다. - 2.그리고 본인 프로필에 들어가서 이렇게 생긴 버튼을 클릭후
Accounts
를 누릅니다. - 3.
여기서Create New API Token
을 눌러서json
파일을 다운로드합니다. -
- 방금 다운로드한
json
파일을 사용자의 홈 디렉터리에.kaggle/kaggle.json
으로 저장하면Kaggle API
를 사용할 준비가 완료되었습니다.
- 방금 다운로드한
- 사용자 PC의 터미널을 열고 명령을 실행할 수 있습니다.
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
을 보면서 최신기술을 열심히 따라가 보려고 합니다.
데이터 사이언스를 공부하는 모든 분들 화이팅
입니다!