最齊全的 Kaggle API 中文使用手冊(一)

Kai
7 min readMay 2, 2021

--

▍本篇目錄 1. 前言
2. 安裝 Kaggle API
3. 身份驗證
4. Kaggpe API 簡介
5. 競賽相關操作
6. 結語

前言

透過 Kaggle 的 CLI 工具能夠很輕易的操作 Kaggle API ,與 Kaggle 中的資料集、競賽做各種互動。

筆者之前在參與 Kaggle 競賽的時候,總是覺得透過 Kaggle 網站上傳預測結果是一件很麻煩的事。

要離開原本的專案環境,中斷在做資料分析、特徵工程、模型優化的思緒,到競賽網頁中按 Submit Prediction 上傳檔案。

有時候又會同時開著 Leaderboard 看成績和到 Discussion 看大家的分享,切來切去常常突然忘記自己要做什麼了!

如果能把一部份的工作用 Kaggle API 解決,更能夠讓你保持專注與效率。另外,在 Google Colab 的雲端開發環境,透過 Kaggle API 可以直接下載、上傳檔案,也是非常的方便好用。

如果你還不知道怎麼使用 Kaggle API 的話,一定要繼續看下去!

安裝 Kaggle API

如果你已經安裝了 Python 3 與套件管理工具 pip ,只要在終端機中輸入以下指令,就可以順利安裝 Kaggle API 了。

pip install kaggle

身份驗證

必須要取得憑證 (Token) ,才能使用 Kaggle API 進行各種操作

首先,來到 Kaggle 的官網並登入,沒有帳號的人可以先按右上角的 Register 註冊。

登入後,點擊右上角的使用者圖像展開側邊欄,點選 Account 進入帳戶設定頁面。

下滑找到 API 的區塊,點擊 Creat New API Token 後會自動下載你的憑證,檔名為 kaggle.json

為了讓 Kaggle API 能夠順利讀取憑證,我們要做以下三件事

  1. 在家目錄建立隱藏資料夾 .kaggle
  2. 將剛剛下載的憑證 kaggle.json 從下載資料夾中移到 .kaggle資料夾內
  3. 設定檔案讀寫權限 (chmod 600)

現在,打開終端機,輸入以下指令

# Linux & MacOS
mkdir ~/.kaggle
mv ~/Downloads/kaggle.json ~/.kaggle/kaggle.json
chmod 600 ~/.kaggle/kaggle.json
# Windows
mkdir C:\Users\username\.kaggle
mv C:\Users\username\Downloads\kaggle.json C:\Users\username\kaggle.json
chmod 600 C:\Users\username\kaggle.json

Kaggle API 簡介

Kaggle API 提供的指令包含四大類,競賽 (competitions) 、資料集 (datasets) 、雲端運算環境 (kernels) 、設定 (config)

詳細指令如下

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 competitions list

如果想要根據關鍵字搜尋比賽,可以加入參數 -s [KEYWORD]

範例:搜尋 Titanic 競賽

kaggle competitions list -s titanic

當然,也可以按照比賽類別去做查詢,使用參數 --category [CATEGORY]Category 的預設值是 all ,另外有 featuredresearchrecruitmentgettingStartedmastersplayground可以選擇。

範例:搜尋 playground 類型的比賽

kaggle competitions list --category playground

特別要注意的是,搜尋結果最多顯示 20 筆資料,可以使用參數 -p [PAGE] 來選擇頁數。

競賽檔案

部分操作必須要已經參與競賽才能順利執行,因此請先到競賽網頁中按下 Join Competition,接著按下 I understand and agree 同意競賽條款。

查詢競賽檔案

kaggle competitions files [COMPETITION]

下載競賽檔案

kaggle competitions download [COMPETITION]

一個競賽通常有多個檔案,有時候甚至包含 sample_submission.csv 這種用不到的檔案,可以透過設定參數 -f [FILE_NAME] 來指定要下載的檔案。

範例:下載 Titanic 競賽的 train.csv 檔案到根目錄的 dataset 資料夾中

kaggle competitions download titanic -f train.csv -p ~/dataset/train.csv

提交

你可以透過 Kaggle API 提交你的預測結果,非常方便。

設定參數 -c [COMPETITION] 指定要提交的競賽,參數 -f [FILE] 要填上你想上傳的檔案的完整路徑,參數 -m [MESSAGE] 可以寫下你想紀錄的訊息。

kaggle competitions submit -c [COMPETITION] -f [FILE] -m [MESSAGE]

範例:上傳位於家目錄的預測結果檔案 submission.csvTitanic 競賽,並寫下檔案描述 baseline model

kaggle competitions submit -c Titanic -f ~/submission.csv -m "baseline model"

查詢提交結果

kaggle competitions submissions [COMPETITION]

查詢 Leaderboard

kaggle competitions leaderboard [COMPETITION] -s

結語

看到這裡你應該可以感受到 Kaggle CLI 工具的方便之處了吧!基本上最常用到的與競賽有關的動作,都可以使用 Kaggle API 來輕鬆完成。

最後,提供一個在 Google Colab 使用 Kaggle API 的範例給大家參考。

如果你喜歡我的內容

1. 請按下拍手,給我一點鼓勵!
2. 有任何想法歡迎留言討論交流!

--

--