在 Google Colab 中使用 Kaggle 数据集

Using Kaggle Datasets in Google Colab

是否可以在 Google Colab 中使用通过 kaggle API 提供的任何数据集?我看到 this Colab notebook 中使用了 Kaggle API,但我有点不清楚它提供了哪些数据集访问权限。

您应该能够通过 API 访问 Kaggle 上的任何数据集。在这个例子中,只列出了比赛的数据集。您可以看到可以使用此命令访问的数据集:

kaggle datasets list

您还可以通过添加 -s 标记然后添加您感兴趣的搜索词来搜索数据集。因此这将为您提供有关狗的数据集列表:

kaggle datasets list -s dogs

您可以在 documentation here 中找到有关 API 及其使用方法的更多信息。

希望对您有所帮助! :)

看看this

它在幕后使用官方 kaggle api,但会自动执行该过程,因此您不必在每次移除 VM 时都手动重新下载。此外,我在 Colab 上直接使用 Kaggle API 时面临的另一个问题是通过 Google Drive 传输 Kaggle API 令牌的麻烦。上面的方法也可以自动执行。

免责声明:我是 Clouderizer 的创建者之一。

循序渐进--

  1. 在 Kaggle 中创建一个 API 密钥。

    为此,请转到 kaggle.com/ 并打开您的用户设置页面。

  2. 接下来,向下滚动到 API 访问部分并单击生成 下载 API 密钥。 这会将名为 kaggle.json 的文件下载到您的计算机。 您将在 Colab 中使用此文件来访问 Kaggle 数据集,并且 比赛。

  3. 导航至 https://colab.research.google.com/.

  4. 使用以下代码片段上传您的 kaggle.json 文件 一个代码单元格:

    from google.colab import files files.upload()

  5. 使用 !pip install -q kaggle

  6. 安装 kaggle API
  7. kaggle.json 文件移动到 ~/.kaggle,这是 API 客户希望您的令牌位于:

    !mkdir -p ~/.kaggle !cp kaggle.json ~/.kaggle/

  8. 现在您可以使用客户端访问数据集,例如,!kaggle datasets list

这是此过程的 Colab 部分的完整示例笔记本: https://colab.research.google.com/drive/1DofKEdQYaXmDWBzuResXWWvxhLgDeVyl

此示例显示了上传 kaggle.json 文件、Kaggle API 客户端以及使用 Kaggle 客户端下载数据集。

After the steps (1-6) above from Bob Smith's answer,要在 colab 中使用来自特定比赛的数据集, 你可以使用命令:

!kaggle competitions download -c elo-merchant-category-recommendation

这里,elo-merchant-category-recommendation是比赛的名称。

首先,运行这个命令找出这个colab文件存在的位置,它是如何执行的。 !ls -d $PWD/* 它将显示 /content/data /content/gdrive /content/models 也就是说,你的当前目录是root/content/。您的工作目录 (pwd) 是 /content/。所以当您执行 !ls 时,它会显示 data gdrive models。 供参考, !允许您在 colab 中 运行 linux 命令。

Google 驱动器不断清理 /content 文件夹。因此,你每次使用 colab 时,下载的数据集、kaggle json 文件都会消失。这就是为什么将流程自动化很重要,这样您就可以专注于编写代码,而不是每次都设置环境。

运行 这在 colab 代码块中以您自己的 api 密钥为例。打开 kaggle.json 文件。你会发现它们的。

# Info on how to get your api key (kaggle.json) here: https://github.com/Kaggle/kaggle-api#api-credentials
!pip install kaggle
{"username":"seunghunsunmoonlee","key":""}
import json
import zipfile
import os
with open('/content/.kaggle/kaggle.json', 'w') as file:
    json.dump(api_token, file)
!chmod 600 /content/.kaggle/kaggle.json
!kaggle config path -p /content
!kaggle competitions download -c dog-breed-identification
os.chdir('/content/competitions/dog-breed-identification')
for file in os.listdir():
    zip_ref = zipfile.ZipFile(file, 'r')
    zip_ref.extractall()
    zip_ref.close()

然后 运行 再 !ls。您将看到所需的所有数据。 希望对您有所帮助!

合并对此 Github gist as Colab Implementation 的最高响应。可以直接复制代码使用

How to Import a Dataset from Kaggle in Colab

方法:

首先你必须做几件事:

  1. 注册 Kaggle
  2. 报名参加您想要访问数据的比赛(例如 LANL-Earthquake-Prediction competition)。
  3. 下载您的凭据以访问 Kaggle API 作为 kaggle.json
# Install kaggle packages
!pip install -q kaggle
!pip install -q kaggle-cli
# Colab's file access feature
from google.colab import files

# Upload `kaggle.json` file
uploaded = files.upload()
# Retrieve uploaded file
# print results
for fn in uploaded.keys():
  print('User uploaded file "{name}" with length {length} bytes'.format(
      name=fn, length=len(uploaded[fn])))

# Then copy kaggle.json into the folder where the API expects to find it.
!mkdir -p ~/.kaggle
!cp kaggle.json ~/.kaggle/
!chmod 600 ~/.kaggle/kaggle.json
!ls ~/.kaggle

现在检查它是否有效!

#list competitions
!kaggle competitions list -s LANL-Earthquake-Prediction

从 kaggle 下载关于 google colab 的竞争数据。 我正在研究 google colab,我遇到了同样的问题。但我做了两次。

首先,您必须注册您的手机号码和国家代码。 其次,您必须单击 kaggle 数据集页面上的最后一次提交 然后在 google colab 上从 kaggle.upload kaggle.json 下载 kaggle.json 文件 之后在 google colab 运行 这些代码如下。

!pip install -q kaggle
!mkdir -p ~/.kaggle
!cp kaggle.json ~/.kaggle/ 
!chmod 600 ~/.kaggle/kaggle.json 
!kaggle competitions download -c web-traffic-time-series-forecasting

详细做法:

  1. 在您的个人资料中转到我的帐户

  1. 向下滚动,直到找到选项创建新的 Api 令牌,这将下载一个名为 kaggle.json
  2. 的文件

  1. 转到 Colab 上传文件 kaggle.json

  1. pip 安装 kaggle

  1. 新建一个名为kaggle的文件夹,将kaggle.json复制到kaggle文件夹中,并为你(用户)设置读写权限。

6.Go以Kagglewebsite.For为例,你想下载任何数据,点击屏幕右侧的三个点。然后点击复制API命令

  1. 转到 colab,粘贴 API 命令

8.When你做一个!ls,你会看到我们的下载是一个zip文件。

  1. 要解压缩文件,请使用以下命令

  1. 现在,当您执行 !ls 时,您会发现我们的 csv 文件是从 zip 文件中提取出来的。

  1. 要读取文件,请执行简单的 pd.read_csv,导入 pandas

12.As你看,我们已经成功将我们的文件读入colab。

这会将 kaggle 数据集下载到 google colab,您可以在其中执行分析并构建出色的机器学习模型或训练神经网络。

快乐分析!!!

最重要的部分是下载文件之前:

在 Kaggle 网页的竞赛部分,您必须点击:

迟交或参加比赛

接受 KAGGLE 竞赛网页上的规则和条件

如果没有,复制api文件后,启动下载数据集后,结果显示403错误。

一个 hacky 方式:

  1. 登录后进入数据集页面
  2. 打开 Chrome 开发人员工具,然后转到网络窗格
  3. 点击 Kaggle 上的下载按钮
  4. 单击后您会在“网络”窗格中看到许多请求,找到从 archive.zip
  5. 开始的请求
  6. 右键单击该请求,然后复制 -> 复制为 cURL (bash)。现在你复制了命令
  7. 在 Colab 上,粘贴命令并将 ! 附加到命令的开头,然后 运行 它

这绝对是一种不如 API 可靠的方法,但仍然可以作为一种选择。

我发现接受的答案非常全面,但我想补充一点:

!kaggle competitions download -c dogs-vs-cats

或大多数其他下载仍然无法运行。您可能会收到以下错误:

403 - Forbidden

这不是很冗长。它想说:“请访问 kaggle.com 并接受规则(例如对于那场比赛)。你不能通过 API 接受!它在文档中明确说明(参见 Public API documentation | Kaggle) :

Just like participating in a Competition normally through the user interface, you must read and accept the rules in order to download data or make submissions. You cannot accept Competition rules via the API. You must do this by visiting the Kaggle website and accepting the rules there.

是的,这可能是一条评论,但我缺少足够的声誉来发表评论。


import os
os.makedirs("/content/.kaggle/")

import json
token = {"username":"your_username_here","key":"your_kaggle_key_here"}
with open('/content/.kaggle/kaggle.json', 'a+') as file:
    json.dump(token, file)

import shutil
os.makedirs("/.kaggle/")
src="/content/.kaggle/kaggle.json"
des="/.kaggle/kaggle.json"
shutil.copy(src,des)


os.makedirs("/root/.kaggle/")
!cp /content/.kaggle/kaggle.json ~/.kaggle/kaggle.json

!kaggle config set -n path -v /content

#https://towardsdatascience.com/setting-up-kaggle-in-google-colab-ebb281b61463

!kaggle datasets download -d xhlulu/siim-covid19-resized-to-512px-png

截至 2021 年 5 月 29 日在 Colab 上为我工作!

在 Google 使用 Kaggle 的 Colab 中使用 Kaggle 数据集的快速指南 API

(1) 下载 Kaggle API 令牌。

  • 转到“帐户”,向下浏览页面,然后找到“API”部分。
  • 单击“创建新 API 令牌”按钮。
  • 将下载“kaggle.json”文件。

(2) 将 Google 驱动器挂载到 Colab 笔记本。

  • 这意味着将 google 驱动器中的文件的访问权限授予 Colab 笔记本。
from google.colab import drive
drive.mount("/content/gdrive", force_remount=True)

(3) 将“kaggle.json”文件上传到google驱动器中要下载Kaggle数据集的文件夹中。

(4) 安装 Kaggle API.

!pip install kaggle

(5) 将当前工作目录更改为您要下载 Kaggle 数据集的位置。

%cd /content/gdrive/MyDrive/DataSets/house_price_data/

(6)运行以下代码配置路径为“kaggle.json”。

import os
os.environ['KAGGLE_CONFIG_DIR'] = "/content/gdrive/MyDrive/DataSets/house_price_data/"

(7) 下载数据集。

!kaggle competitions download -c house-prices-advanced-regression-techniques