如何在机器学习项目中使用Kaggle

1,008 阅读9分钟

你可能听说过Kaggle数据科学竞赛,但你是否知道Kaggle还有很多其他功能,可以帮助你完成下一个机器学习项目?对于为下一个机器学习项目寻找数据集的人来说,Kaggle允许你访问别人的公共数据集,并分享你自己的数据集。对于那些希望建立和训练自己的机器学习模型的人,Kaggle还提供了一个浏览器内的笔记本环境和一些免费的GPU时间。你也可以看看其他人的公共笔记本!

除了网站之外,Kaggle还有一个命令行界面(CLI),你可以在命令行内使用它来访问和下载数据集。

让我们直接进入并探索Kaggle所提供的东西吧!

完成本教程后,你将了解到

  • 什么是Kaggle?
  • 如何使用Kaggle作为你的机器学习管道的一部分
  • 使用Kaggle API的命令行界面(CLI)。

让我们开始吧!

概述

本教程分为五个部分:

  • 什么是Kaggle?
  • 设置Kaggle笔记本
  • 在GPU/TPU上使用Kaggle笔记本
  • 在Kaggle笔记本中使用Kaggle数据集
  • 用Kaggle CLI工具使用Kaggle数据集

什么是Kaggle?

Kaggle可能因其举办的数据科学竞赛而闻名,其中一些竞赛提供5位数的奖金,并有数百个团队参加。除了这些比赛,Kaggle还允许用户发布和搜索数据集,他们可以将其用于机器学习项目。要使用这些数据集,你可以在你的浏览器中使用Kaggle笔记本或Kaggle的公共API来下载他们的数据集,然后你可以在你的机器学习项目中使用。

Kaggle竞赛

除此之外,Kaggle还提供一些课程和讨论页面,供你学习更多关于机器学习的知识,并与其他机器学习从业者进行交流!

在本文的其余部分,我们将重点讨论在从事自己的机器学习项目或寻找新项目时,如何使用Kaggle的数据集和笔记本来帮助我们。

设置Kaggle笔记本

要开始使用Kaggle笔记本,你需要创建一个Kaggle账户,可以使用现有的Google账户或用你的电子邮件创建一个。

然后,进入 "代码 "页面。

Kaggle主页的左侧边栏,代码标签

然后你就可以看到你自己的笔记本,以及其他人的公开笔记本。要创建自己的笔记本,请点击新建笔记本。

Kaggle代码页

这将创建你的新笔记本,它看起来像一个Jupyter笔记本,有很多类似的命令和快捷键。

Kaggle笔记本

你还可以通过进入文件->编辑器类型在笔记本编辑器和脚本编辑器之间进行切换。

在Kaggle笔记本中改变编辑器类型

将编辑器类型改为脚本,则会显示这个。

Kaggle笔记本脚本编辑器类型

用GPU/TPU使用Kaggle

谁不喜欢为机器学习项目提供免费的GPU时间?GPU可以帮助大大加快机器学习模型的训练和推理速度,尤其是深度学习模型。

Kaggle提供了一些免费的GPU和TPU分配,你可以在你的项目中使用。在撰写本文时,在用电话号码验证你的账户后,GPU的可用性为每周30小时,TPU为每周20小时。

要在你的笔记本上附加一个加速器,请进入设置 ▷ 环境 ▷ 首选项。

改变Kaggle笔记本环境首选项

你会被要求用一个电话号码来验证你的账户。

验证电话号码

然后会看到这个页面,其中列出了你剩余的可用数量,并提到开启GPU会减少CPU的可用数量,所以可能只有在做神经网络的训练/推理时才是个好主意。

在Kaggle笔记本中添加GPU加速器

在Kaggle笔记本中使用Kaggle数据集

机器学习项目是对数据要求很高的怪物,为我们目前的项目寻找数据集或为开始新项目寻找数据集总是一件麻烦事。幸运的是,Kaggle有一个丰富的数据集,由用户和比赛提供。这些数据集可以成为人们为当前机器学习项目寻找数据的宝库,也可以成为人们为项目寻找新思路的宝库。

让我们探讨一下如何将这些数据集添加到我们的Kaggle笔记本中。

首先,点击右侧边栏的添加数据。

向Kaggle笔记本环境添加数据集

应该会出现一个窗口,显示一些公开可用的数据集,并让你选择上传自己的数据集以用于你的Kaggle笔记本。

通过Kaggle数据集进行搜索

我将使用经典的泰坦尼克号数据集作为本教程的例子,你可以在窗口右上方的搜索栏中输入搜索条件。

用 "泰坦尼克号 "关键词过滤的Kaggle数据集

之后,该数据集就可以被笔记本使用了。要访问这些文件,请看一下文件的路径,并在前面加上../input/{path} 。例如,泰坦尼克号数据集的文件路径是。

../input/titanic/train_and_test2.csv

在笔记本中,我们可以用...读取数据。

import pandas

pandas.read_csv("../input/titanic/train_and_test2.csv")

这样我们就能得到文件中的数据。

在Kaggle笔记本中使用泰坦尼克号数据集

用Kaggle CLI工具使用Kaggle数据集

Kaggle还有一个带有CLI工具的公共API,我们可以用它来下载数据集,与比赛进行交互,以及其他更多的事情。我们将看看如何使用CLI工具来设置和下载Kaggle数据集。

要想开始,请使用CLI工具安装。

pip install kaggle

对于Mac/Linux用户,你可能需要。

pip install --user kaggle

然后,你需要创建一个API令牌用于认证。进入Kaggle的网页,点击右上角的个人资料图标,进入账户。

进入Kaggle账户设置

在那里,向下滚动到创建新的API令牌。

为Kaggle公共API生成新的API令牌

这将下载一个kaggle.json 文件,你将用这个文件在Kaggle CLI工具中认证自己。你必须把它放在正确的位置才能发挥作用。对于Linux/Mac/Unix操作系统,应该放在~/.kaggle/kaggle.json ,而对于Windows用户,应该放在C:\Users\<Windows-username>\.kaggle\kaggle.json 。把它放在错误的位置并在命令行中调用kaggle ,会出现错误。

OSError: Could not find kaggle.json. Make sure it’s location in … Or use the environment method

现在,让我们开始下载这些数据集!

要使用一个搜索词来搜索数据集,例如,泰坦尼克号,我们可以使用。

kaggle datasets list -s titanic

搜索泰坦尼克号,我们得到。

$ kaggle datasets list -s titanic
ref                                                          title                                           size  lastUpdated          downloadCount  voteCount  usabilityRating
-----------------------------------------------------------  ---------------------------------------------  -----  -------------------  -------------  ---------  ---------------
datasets/heptapod/titanic                                    Titanic                                         11KB  2017-05-16 08:14:22          37681        739  0.7058824
datasets/azeembootwala/titanic                               Titanic                                         12KB  2017-06-05 12:14:37          13104        145  0.8235294
datasets/brendan45774/test-file                              Titanic dataset                                 11KB  2021-12-02 16:11:42          19348        251  1.0
datasets/rahulsah06/titanic                                  Titanic                                         34KB  2019-09-16 14:43:23           3619         43  0.6764706
datasets/prkukunoor/TitanicDataset                           Titanic                                        135KB  2017-01-03 22:01:13           4719         24  0.5882353
datasets/hesh97/titanicdataset-traincsv                      Titanic-Dataset (train.csv)                     22KB  2018-02-02 04:51:06          54111        377  0.4117647
datasets/fossouodonald/titaniccsv                            Titanic csv                                      1KB  2016-11-07 09:44:58           8615         50  0.5882353
datasets/broaniki/titanic                                    titanic                                        717KB  2018-01-30 04:08:45           8004        128  0.1764706
datasets/pavlofesenko/titanic-extended                       Titanic extended dataset (Kaggle + Wikipedia)  134KB  2019-03-06 09:53:24           8779        130  0.9411765
datasets/jamesleslie/titanic-cleaned-data                    Titanic: cleaned data                           36KB  2018-11-21 11:50:18           4846         53  0.7647059
datasets/kittisaks/testtitanic                               test titanic                                    22KB  2017-03-13 15:13:12           1658         32  0.64705884
datasets/yasserh/titanic-dataset                             Titanic Dataset                                 22KB  2021-12-24 14:53:06           1011         25  1.0
datasets/abhinavralhan/titanic                               titanic                                         22KB  2017-07-30 11:07:55            628         11  0.8235294
datasets/cities/titanic123                                   Titanic Dataset Analysis                        22KB  2017-02-07 23:15:54           1585         29  0.5294118
datasets/brendan45774/gender-submisson                       Titanic: all ones csv file                      942B  2021-02-12 19:18:32            459         34  0.9411765
datasets/harunshimanto/titanic-solution-for-beginners-guide  Titanic Solution for Beginner's Guide           34KB  2018-03-12 17:47:06           1444         21  0.7058824
datasets/ibrahimelsayed182/titanic-dataset                   Titanic dataset                                  6KB  2022-01-27 07:41:54            334          8  1.0
datasets/sureshbhusare/titanic-dataset-from-kaggle           Titanic DataSet from Kaggle                     33KB  2017-10-12 04:49:39           2688         27  0.4117647
datasets/shuofxz/titanic-machine-learning-from-disaster      Titanic: Machine Learning from Disaster         33KB  2017-10-15 10:05:34           3867         55  0.29411766
datasets/vinicius150987/titanic3                             The Complete Titanic Dataset                   277KB  2020-01-04 18:24:11           1459         23  0.64705884

要下载该列表中的第一个数据集,我们可以使用。

kaggle datasets download -d heptapod/titanic --unzip

使用Jupyter笔记本来读取文件,类似于Kaggle笔记本的例子,我们可以得到。

在Jupyter笔记本中使用泰坦尼克号数据集

当然,有些数据集的大小非常大,你可能不想把它们放在自己的磁盘上。尽管如此,这也是Kaggle为你的机器学习项目提供的免费资源之一!

总结

在本教程中,你了解了什么是Kaggle,我们如何使用Kaggle来获取数据集,甚至在Kaggle笔记本中获取一些免费的GPU/TPU实例。你还看到了我们如何使用Kaggle API的CLI工具来下载数据集,以便在我们的本地环境中使用。

具体来说,你学到了

  • 什么是Kaggle
  • 如何使用Kaggle笔记本和其GPU/TPU加速器
  • 如何在Kaggle笔记本中使用Kaggle数据集或使用Kaggle的CLI工具下载它们