Jupyter Notebook 使用技巧彙整:與 Kaggle 資料集互動

如何在筆記本中設定好 Kaggle Public API

郭耀仁 Yao-Jen Kuo
Apr 4 · 7 min read

The Kaggle API and CLI tool provide easy ways to interact with Datasets on Kaggle.

Kaggle

Jupyter Notebook 是一個建構於網頁應用程式的整合開發環境,允許資料科學團隊像是寫作筆記一般地撰寫程式、顯示程式輸出、視覺化、支援 Markdown 標記語言與 LaTex 數學方程式的文字段落,從 2014 年推出以來風靡資料科學生態圈。Jupyter 其中 Ju 指的是 Julia 語言、py 代表 Python 語言而 r 則為 R 語言,這個命名也讓 Jupyter 專案希望海納百川、作為多種程式語言的共同撰寫介面的企圖心一覽無遺。Google、Microsoft 與 Kaggle 分別依據 Jupyter 專案建立出了 Google Colaboratory、Azure Notebook 以及 Kaggle Kernels 的雲端筆記本解決方案,這意味著本機端的環境建置或者個人筆記型電腦效能不佳等議題不再是資料愛好者裹足不前的原因了,只要有網路與瀏覽器,就能夠踏上資料科學的旅程。


摘要

既然 Google、Microsoft 與 Kaggle 已經為我們解決了開發環境與電腦運算效能的問題,最後一塊拼圖剩下輔助學習的範例資料。本文將簡介如何在筆記本中設定 Kaggle Public API、在筆記本中載入 Kaggle Datasets 以及如何從 Google Colaboratory 下載與上傳檔案。

設定 Kaggle Public API

Kaggle 是全世界資料科學愛好者首屈一指的集散地,標榜五項重要服務:競賽、資料集、核心、討論與學習。其中競賽、資料集以及核心都可以利用 Public API 連結,而學習又仰賴著核心;表示五項主要服務中四樣都與 Public API 緊扣,因此不論在本機或雲端的筆記本環境中做好設定,都有助於愛好者後續深入資料科學與 Kaggle 平台。

與 Kaggle Public API 互動最佳的方式是透過以已經被包裝成名為 的 Python 模組命令列工具,在筆記本的儲存格中如果要傳指令至終端機,必須在指令前方加上一個驚嘆號

Google Colaboratory 的使用者會發現 是已安裝的預設模組。

接著我們前往 Kaggle 登入自己的帳戶(尚未註冊的資料科學愛好者可趁此機會註冊一個帳戶),於 My Account 頁面點選 Create New API Token,網站將生成憑證(是一個 kaggle.json 的檔案)並觸發下載。

登入後前往 My Account 頁面
點選 Create New API Token

下載好的憑證 kaggle.json 檔案中紀錄了兩組資訊:使用者名稱(username)與金鑰(key)。依據 Kaggle 文件說明,這個憑證應放置於指定路徑:

  • UNIX 類作業系統(Linux、OSX):
  • Windows 作業系統:

於是我們在使用者目錄下建立隱藏資料夾 再將下載好的憑證移動到至該資料夾中,為了減少因為權限設定過於寬鬆導致日後使用 Public API 時一直收到警告,我們將 kaggle.json 檔案的權限設定為只有檔案所有人可以讀寫、其他使用者不可讀寫( )。

Google Colaboratory 的使用者可以將憑證中的兩組資訊用 Python 紀錄並寫入位於 的檔案中。

在筆記本中載入 Kaggle Datasets

模組安裝與憑證下載已經完成,接著我們可以來測試與資料集互動的功能,Kaggle Datasets 主要支援的檔案格式有 CSV、JSON、SQLite、壓縮檔與 BigQuery,除了下載使用平台上現有的資料,進階的使用者更可以創建並維護自己所產製的資料,我們將使用最基礎的兩個資料集指令:

  • :列出搜尋關鍵字吻合的資料集
  • :下載指定資料

首先試著使用 指令以及搜尋名稱有 MNIST 的資料。

接著使用 指令下載 Fashion MNIST 資料。

如果不清楚想要使用的資料名稱,可以前往 Kaggle Datasets 找尋該資料的頁面,點選 Copy API Command 將下載指令複製起來。

搜尋資料關鍵字
資料主頁面
點選 Copy API Command

下載完成之後,在 Jupyter Notebook 的開啟路徑下會看到 fashionmnist.zip 壓縮檔,可以使用 指令解壓縮。

最後可以將 fashion-mnist_train.csv 檔案讀入,用 matplotlib.pyplot 的 函數視覺化前 16 筆資料。

從 Google Colaboratory 下載與上傳檔案

剛開始接觸 Google Colaboratory 的使用者對於雲端環境筆記本覺得較不便利的部分就是檔案輸入與輸出,只要透過 模組提供的 函數就可以輕鬆實現下載檔案、上傳檔案以及和 Google 雲端硬碟連結。

與其他的 Kaggle 服務互動

Kaggle Public API 還可以與競賽(Competitions)、核心(Kernels)互動,包含下載競賽相關資料、繳交模型預測結果、下載 Kaggle 筆記本以及創建 Kaggle 筆記本等,更多關於 Public API 的應用詳見:https://github.com/Kaggle/kaggle-api

小結

在這篇文章中我們簡介了 Jupyter Notebook 的使用技巧:如何在筆記本中設定 Kaggle Public API、在筆記本中載入 Kaggle Datasets 以及如何從 Google Colaboratory 下載與上傳檔案。


如果您喜歡這篇文章,請多按下方的「拍手」圖像幾次、分享到社群網站以及訂閱 Pyradise追蹤更多 Python 資訊,請關注 Pyradise 的臉書粉絲專頁!🙏想看影音教學?🎥
我們將在 Pyradise 的 Youtube 頻道,定期跟大家直播分享相關心得!
訂閱我們!👇👇👇

Pyradise

在 Py 樂園輕鬆學習 Python。

郭耀仁 Yao-Jen Kuo

Written by

Could that data be any tidier? It is always nice to meet a data enthusiast / 2:43 marathon runner.

Pyradise

Pyradise

在 Py 樂園輕鬆學習 Python。