나는 현재 Google Developers on Campus(이하 GDGoC)에서 AI 멘토로 활동하며, 멤버들을 대상으로 스터디 자료와 멘토링을 제공하고 있다. 이 과정에서 받은 질문들에 대해 답변하는 글을 작성하고자 한다.
Kaggle API 이용법 (feat. kaggle.json이 뭐예요?)
Kaggle은 데이터 과학자와 머신러닝 엔지니어들이 다양한 데이터셋을 활용하고 경진대회에 참여할 수 있는 플랫폼이다.
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 명령어를 통해 각 커맨드 및 옵션에 대한 내용을 간단하게 살펴볼 수 있다.
자세한 내용은 공식 문서를 참고하자.
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' 탭에서 제공하는 명령어를 사용한다.
예를 들어, 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
파일을 통한 인증 설정은 필수적이므로, 이를 정확하게 설정하여 원활한 작업을 진행하길 바란다.
'컴퓨터 공학 기본 > GDGoC 멘토 활동 기록' 카테고리의 다른 글
AI 스터디 관련 질의응답 기록 (2024 가을학기 1차세션) (1) | 2024.12.15 |
---|
댓글