应用kaggle进行机器学习项目开发

news/2024/12/28 9:46:18/

你可能听说过Kaggle数据科学竞赛,但你知道Kaggle还有许多其他功能,可以帮助你完成机器学习项目吗?对于为机器学习项目寻找数据集的人,Kaggle允许你访问别人的公共数据集,并共享你自己的数据集。对于那些希望构建和训练自己的机器学习模型的人,Kaggle还提供了浏览器上notebook开发环境和一些免费的GPU时长。你也可以查看其他人的公开的notebook!

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

概述

本博客分为五个部分;它们是:

  • Kaggle是什么?
  • 设置Kaggle notebook
  • 在kaggle中使用 gpu / tpu
  • 使用Kaggle数据集
  • Kaggle CLI工具

Kaggle是什么?

Kaggle最出名的可能是它主办的数据科学比赛,其中一些比赛提供5位数的奖金池,有数百支队伍参加。除了这些比赛,Kaggle还允许用户发布和搜索数据集,这些数据集可以用于他们的机器学习项目。要使用这些数据集,您可以在您的浏览器或Kaggle的公共API中使用Kaggle notebook下载他们的数据集,然后用于机器学习项目。

在这里插入图片描述
除此之外,Kaggle还提供了一些课程和一个讨论页面,让你了解更多关于机器学习的知识,并与其他机器学习从业者交流!

设置Kaggle Notebook

要开始使用Kaggle Notebooks,需要使用谷歌帐户或使用您的电子邮件创建一个Kaggle帐户。
然后,进入“Code”页面。
在这里插入图片描述
你可以看到你自己的notebooks,也可以看到别人公开的notebooks。要创建自己的笔记本,点击“New Notebook”。

在这里插入图片描述
这将创建一个新的notebook,它看起来像一个Jupyter notebook,有许多类似的命令和快捷方式。
在这里插入图片描述
您还可以通过转到File ->Editor Type在笔记本编辑器和脚本编辑器之间进行切换。
在这里插入图片描述
将编辑器类型改为script显示如下:
在这里插入图片描述

在Kaggle中使用 gpu / tpu

谁不喜欢机器学习项目的免费GPU呢?gpu可以极大地加速机器学习模型的训练和推理,尤其是深度学习模型。

Kaggle提供了一些免费的gpu和tpu分配,您可以将它们用于您的项目。在撰写本文时,在用电话号码验证您的帐户后,gpu每周可用30小时,tpu每周可用20小时。

如果想在笔记本电脑上安装加速器,请访问Settings ▷ Environment ▷ Preferences.

在这里插入图片描述
您将被要求用电话号码验证您的帐户。
在这里插入图片描述
然后这一页列出了你剩下的可用量,并提到打开gpu会减少可用的cpu数量,所以这可能只是在用神经网络进行训练/推理时的一个好主意。
在这里插入图片描述

Kaggle Notebook使用Kaggle数据集

机器学习项目是渴求数据的怪物,为我们当前的项目寻找数据集或寻找数据集来启动新项目总是一件苦差事。幸运的是,Kaggle有一个丰富的数据集,由用户和比赛贡献。对于为当前机器学习项目寻找数据或为项目寻找新想法的人来说,这些数据集可是一个宝库。

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

首先,单击右边栏的Add data
在这里插入图片描述
这时会出现一个窗口,显示一些公开可用的数据集,你也可以上传自己的数据集,用来开发。
在这里插入图片描述
在本博客中,我将使用经典的titanic数据集作为我的例子,你可以通过在窗口右上角的搜索栏中输入你的搜索词来找到它。
在这里插入图片描述
之后,该数据集就可以供notebook使用了。要访问这些文件,请查看文件的路径并添加../input/{path}。例如,titanic数据集的文件路径是:

../input/titanic/train_and_test2.csv

执行notebook第一个单元格的代码,就可以显示所有数据的路径
在这里插入图片描述

在notebook中,我们可以使用以下方法读取数据:

import pandaspandas.read_csv("../input/titanic/train_and_test2.csv")

在这里插入图片描述

利用Kaggle CLI工具使用Kaggle数据集

Kaggle也有一个带有CLI工具的公共API,我们可以使用它来下载数据集,与竞赛交互,以及更多。我们将研究如何使用CLI工具设置和下载Kaggle数据集。

首先,使用以下命令安装CLI工具:

pip install kaggle

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

pip install --user kaggle

然后,您需要为身份验证创建一个API令牌。进入Kaggle的网页,点击右上角的个人资料图标,进入Account

在这里插入图片描述
从那里,向下滚动创建新的API令牌:
在这里插入图片描述

这将下载一个kaggle.json。您将使用Kaggle CLI工具对自己进行身份验证。你必须把它放在正确的位置,它才能工作。对于基于Linux/Mac/ unix的操作系统,这应该放在~/.kaggle/kaggle。对于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

现在,让我们开始下载这些数据集吧!
要使用搜索词搜索数据集,例如,titanic,我们可以使用:

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 Notebook来读取文件,类似于Kaggle Notebook的例子,我们得到:
在这里插入图片描述

参考

Kaggle: https://www.kaggle.com
Kaggle API文档:https://www.kaggle.com/docs/api


http://www.ppmy.cn/news/756049.html

相关文章

自制Unity小游戏TankHero-2D(3)开始玩起来

自制Unity小游戏TankHero-2D(3)开始玩起来 我在做这样一个坦克游戏&#xff0c;是仿照&#xff08;http://game.kid.qq.com/a/20140221/028931.htm&#xff09;这个游戏制作的。仅为学习Unity之用。图片大部分是自己画的&#xff0c;少数是从网上搜来的。您可以到我的github页…

IT人,你在为什么而战

说起为什么而战&#xff0c;也可以理解为为什么活着&#xff0c;这是一个永恒的话题&#xff0c;人们见仁见智。 记得英国哲学家罗素曾经说过&#xff0c;对真理的不懈的追求&#xff0c;对爱情的渴望&#xff0c;对苦难人们的不可遏制的同情&#xff0c;这三种感情强烈地支配着…

Redisson实现分布式锁

一、jedis/luttuce/redisson关系 在redis官网推荐的三大框架就是&#xff1a;jedis、lettuce&#xff0c;redission。 1、jedis jedis使用阻塞的I/O&#xff0c;是同步的&#xff0c;即当jedis与redis数据库建立连接后&#xff0c;只有当连接释放后才允许下一次的连接 jedis客户…

Spring Cloud Feign传输Header,并保证多线程情况下也适用

Spring Cloud Feign传输Header&#xff0c;并保证多线程情况下也适用 一、现象 微服务在生产中&#xff0c;常遇到需要把 header 传递到下一子服务的情况&#xff08;如服务A访问服务B的接口&#xff0c;需要传递header&#xff09;&#xff0c;网上大多数的方案是实现 Reque…

Feign接口 多线程问题

Spring Cloud Feign传输Header&#xff0c;并保证多线程情况下也适用 一、现象 微服务在生产中&#xff0c;常遇到需要把 header 传递到下一子服务的情况&#xff08;如服务A访问服务B的接口&#xff0c;需要传递header&#xff09;&#xff0c;网上大多数的方案是实现 Request…

链表_第10章_基本数据结构_算法导论

双向链表&#xff08;double linked list&#xff09;中每个元素都是一个对象&#xff0c;每个对象有一个关键字key与两个指针&#xff1a;next and prev。next指向链表的后一个元素&#xff0c;prev指向前驱元素。 单链接的链表&#xff08;singly linked&#xff09;省略每个…

python求2到100间的素数_python找2-100之间的素数并输出。你会用什么算法来解决这个问题?...

清波 import math def isprime(n): if not isinstance(n,int) or n<1: return False for i in range(2,int(math.sqrt(n)1)): if n % i 0: return False return True result[x for x in range(2,101) if isprime(x)]解释&#xff0c; 还是建议先定义判断函数 &…

java实现的MD5哈希算法

密码学的实验&#xff0c;参考 &#xff08;照抄&#xff09;了https://blog.csdn.net/jankingmeaning/article/details/84778668 分享出来供大家学习讨论,最后哈希出来的值应该是和在线工具结果一样的。 目录 MD5 &#xff08;MD:message digest,消息摘要&#xff09;简介MD…