컴퓨터 공학 기본/GDGoC 멘토 활동 기록

Kaggle API 이용법 (feat. kaggle.json이 뭐예요?)

백악기작은펭귄 2024. 11. 27.
반응형

나는 현재 Google Developers on Campus(이하 GDGoC)에서 AI 멘토로 활동하며, 멤버들을 대상으로 스터디 자료와 멘토링을 제공하고 있다. 이 과정에서 받은 질문들에 대해 답변하는 글을 작성하고자 한다.

 

AI 스터디 2차 세션(Kaggle: Pre-trained Model 파인튜닝을 이용해서 새 종류 분류) 중 받은 질문

 

Kaggle API 이용법 (feat. kaggle.json이 뭐예요?)

Kaggle은 데이터 과학자와 머신러닝 엔지니어들이 다양한 데이터셋을 활용하고 경진대회에 참여할 수 있는 플랫폼이다.

 

https://www.kaggle.com/

 

Kaggle: Your Machine Learning and Data Science Community

Kaggle is the world’s largest data science community with powerful tools and resources to help you achieve your data science goals.

www.kaggle.com

 

Kaggle에서는 Kaggle API를 제공하는데, 이를 사용하면 데이터셋 다운로드와 결과 제출을 명령어로 간편하게 수행할 수 있다. 이 글에서는 Kaggle API 설치부터 kaggle.json 파일 설정, 데이터셋 다운로드, 그리고 결과 제출까지의 과정을 단계별로 설명한다.

 

Kaggle API 설치

Kaggle API는 Python 패키지로 제공되므로, pip을 사용하여 설치할 수 있다. 터미널이나 명령 프롬프트에서 다음 명령어를 입력하여 설치할 수 있다. 이 명령어는 최신 버전의 Kaggle API를 설치한다.

pip install kaggle --upgrade

 

Kaggle API Token (kaggle.json 파일) 다운로드

Kaggle API를 사용하려면 인증을 위한 API Token이 필요하다.

 

1. Kaggle에 로그인한 후, 우측 상단의 프로필 사진을 클릭하고 'Settings'를 선택한다.

 

2. 'API' 섹션으로 이동하여 'Create New Token' 버튼을 클릭한다.

 

그러면 kaggle.json 파일이 다운로드된다.

 

이 파일에는 API를 사용할 때 필요한 인증 정보가 포함되어 있으므로, 외부에 유출되지 않도록 안전하게 보관해야 한다. (깃허브에 올리면 안 된다!)

 

kaggle.json 파일 이동 및 권한 설정

Kaggle API를 사용하기 전, 다운로드한 kaggle.json 파일을 시스템의 적절한 위치로 이동시켜야 한다. 사용하고 있는 OS에 따라 다음 위치로 이동시키자.

  • Windows: C:\Users\<사용자명>\.kaggle\kaggle.json
  • Mac OS / Linux: ~/.kaggle/kaggle.json

 

이때, .kaggle 폴더가 없다면 직접 생성해야 한다. 또한, 보안을 위해 파일의 권한을 제한하는 것이 좋다.

 

다음 명령어는 소유자(Owner)에게 읽기(read)와 쓰기(write) 권한을 허용한다는 의미이며, 그룹 사용자와 소유자 외 다른 사용자에게는 접근 권한을 부여하지 않는다는 의미이다.

chmod 600 ~/.kaggle/kaggle.json

(주의: Windows에는 chmod 명령어가 존재하지 않는다. GUI 레벨에서 처리하거나, 혹은 WSL을 이용하자)

 

여담으로, 개발을 하다 보면 서버에 접근하기 위해 ssh를 사용하게 될 때가 있는데, 이때의 인증키(id_rsa 등) 역시 0600으로 권한을 설정해 주는 것을 추천한다.

 

chmod 명령어와 관련해서 자세한 내용을 알고 싶다면 다음 링크를 참고하자.

 

chmod 명령

용도 파일 모드를 변경합니다. 구문 기호적으로 파일 모드를 변경하려면 chmod [ -R ] [ -h ] [ -f ] [[ u ] [ g ] [ o ] | [ a ] { - | + | = } [ r ] [ w ] [ x ] [ X ] [ s ] [ t ]} { 파일 ... | 디렉토리 ... } 숫자적으로 파

www.ibm.com

 

API Command 살펴보기

Kaggle API는 다양한 명령어를 제공한다. 주요 명령어는 다음과 같다.

kaggle competitions {list, files, download, submit, submissions, leaderboard}  
kaggle datasets {list, files, download, create, version, init}  
kaggle kernels {list, init, push, pull, output, status}  
kaggle config {view, set, unset}

 

각 명령어는 다양한 옵션을 제공하며, kaggle -h 명령어를 통해 각 커맨드 및 옵션에 대한 내용을 간단하게 살펴볼 수 있다.

kaggle -h

 

자세한 내용은 공식 문서를 참고하자.
https://www.kaggle.com/docs/api

 

Public API Documentation

Create Datasets, Notebooks, and connect with Kaggle

www.kaggle.com

 

API 사용 실습: 진행 중인 Competition List 살펴보기

현재 진행 중인 경진대회 목록을 확인하려면 다음 명령어를 사용한다.

kaggle competitions list

이 명령어를 실행하면 현재 참여할 수 있는 경진대회 목록이 출력된다.

 

특정 경진대회의 데이터셋을 다운로드하려면 해당 경진대회 페이지의 'Data' 탭에서 제공하는 명령어를 사용한다.

Download Data 섹션에 Kaggle API 이용 데이터 다운로드를 위한 명령어가 나와있다

 

예를 들어, Titanic 경진대회의 데이터를 다운로드하려면 다음과 같이 입력한다.

kaggle competitions download -c titanic

이 명령어를 실행하면 titanic.zip 파일이 다운로드되며, 이를 압축 해제하면 train.csv, test.csv 등의 파일을 얻을 수 있다.

 

Submission API

모델을 통해 예측한 결과를 제출하려면 다음 명령어를 사용한다.

kaggle competitions submit -c <competition-name> -f <submission-file> -m "<message>"

 

예를 들어, Titanic 경진대회에 submission.csv 파일을 제출하려면 다음과 같이 입력할 수 있다.

kaggle competitions submit -c titanic -f submission.csv -m "First submission"

 

이 명령어를 실행하면 제출이 완료되며, Kaggle 웹사이트의 'My Submissions' 페이지에서 제출 결과를 확인할 수 있다.

이와 같이 Kaggle API를 활용하면 데이터셋 다운로드와 결과 제출을 명령어로 간편하게 수행할 수 있다. 특히 kaggle.json 파일을 통한 인증 설정은 필수적이므로, 이를 정확하게 설정하여 원활한 작업을 진행하길 바란다.

반응형

댓글