借助 Kaggle 提升贵组织的机器学习/AI 技能

1. 简介

47566e1490c16443

上次更新日期:2024 年 5 月 10 日

什么是 Kaggle?

Kaggle 是全球最大的 AI 平台,机器学习社区,这是一个终极平台,可供各级数据科学和机器学习爱好者了解最新技术和技术。探索包含数据集、笔记本和预训练模型的大型代码库,开始您的下一个项目。您可参与竞赛、学习课程,并与全球超过 1800 万用户的多元化社区建立联系。无论您是初学者还是经验丰富的专业人士,都可以在 Kaggle 上磨练技能、保持领先地位并协作完成前沿项目。

构建内容

在此 Codelab 中,您将创建、配置和发起 Kaggle 竞赛。您将详细了解竞争对手的体验,并了解开展富有吸引力的竞争的最佳做法。

学习内容

  • 了解如何从主办方发起和管理 Kaggle 竞赛
  • 浏览竞争对手体验(从探索到提交)
  • 了解开展有吸引力的竞争的最佳做法

此 Codelab 侧重于利用 Kaggle 不断发展壮大的竞赛库,快速创建竞赛库。

所需条件

  • 最新版的网络浏览器
  • 具备 Python 的基础知识

2. 准备工作

创建 Kaggle 账号

访问 Kaggle 网站 (https://www.kaggle.com/),然后点击“注册”创建免费账号。

验证您的账号

  1. 在页面的右上角,点击您的个人资料图片
  2. 点击“您的个人资料”
  3. 点击“设置”个人资料内容右侧的按钮
  4. 在“电话验证”下按照说明验证您的账号

3. 正在创建您的首个竞赛

全新推出 AI 生成的竞争模板

AI 生成竞赛是 Kaggle 的一项新功能,可让用户轻松快速地创建机器学习竞赛。它利用 AI 生成模拟现有数据集的统计特性的合成数据集,不包含任何个人身份信息。

具体方法如下:

  1. 选择模板:根据不同的机器学习任务(例如分类、回归)从模板列表中进行选择。
  2. AI 生成数据集:Kaggle 的 AI 会根据您选择的模板为您的竞争对手创建一个新的数据集。此数据集与原始数据集类似,但使用了一部分特征,特征分布略有不同。
  3. 自定义比赛内容:输入比赛名称、说明和时间表等基本详情。你还可以选择与自己竞争的隐私设置。
  4. 发布:在最终确定细节并设置发布之后,您就可以发布竞争了。

此功能简化了竞赛创建过程,使其可供更多用户访问,使他们能够专注于机器学习方面,而不是数据集准备。

创建竞赛

前往 https://www.kaggle.com/competitions/new,选择“新的 AI 生成的竞赛”

2629bf77a282a46c

选择“Regression with a Crab Age Dataset”(使用蟹年龄数据集进行回归)竞争。

竞赛详细信息

2dd2228b9d686a6e

填写描述性名称和副标题。例如,您可以使用“<Your Names>的甲壳虫竞赛”标题以及“创建我的首个比赛,了解比赛运作方式”作为副标题。请注意,系统会根据标题自动填充竞争网址。

公开范围和访问权限

现在,我们需要设置比赛的公开范围和访问权限。

5c7dcae412ddd574

公开范围

  • 公开:Kaggle 上的所有人都可以看到您的比赛。活动会显示在搜索结果中,因此所有感兴趣的用户都可以加入。
  • 私享:您的竞赛不会公开显示。它不会显示在搜索结果中,只有您明确邀请的人可以参与。

哪些人可以加入

  • 所有人:这类似于开放政策。Kaggle 上的任何人都可以加入你的竞赛。
  • 仅限知道链接的用户:此选项更具专享权限。系统会生成一个特殊链接,只有知道此链接的人才能加入。
  • 受限电子邮件列表:这是受控制最多的选项。您可以提供一系列特定电子邮件地址或域名(例如 @yourschool.edu),并且只有拥有这些地址的用户才能加入。

我们稍后会详细介绍启用笔记本和模型设置。目前,请确保它处于开启状态。在我们的示例比赛中,将这些设置设为不公开仅限知道链接的人

阅读并同意相关条款,然后点击“创建竞赛”。

4. 了解和配置您的竞争情况

我们在后台通过一个独一无二的数据集创建了一个全新的竞赛。我们来快速回顾一下竞争设置。

“主持人”标签页

“托管”标签页包含您作为托管方正确配置竞争机制所需的一切。具体来说,请查看页面右侧的页面列表:

bcedd6768cc4f32c.png

基本详情

此部分包括:

  • 常规
  • 隐私权、访问权限和资源
  • 时间表
  • 评分和团队

启动本项比赛时,我们介绍了“常规”和“隐私权”部分。

时间轴

竞争结束日期可视时区而定。

7141f4aea90bccb0

评分和团队

评分与“小组”部分可让您控制加入小组的人数、每天可以提交的次数,以及需要选择多少人来进行最终评估。

5efb6387612db941

图片

通过图片,您可以自定义竞争的横幅和缩略图。这将影响竞赛主页以及竞赛条目信息。

6dfd442376a1c702

主机

在这里,你可以将其他 Kaggle 用户添加为你比赛的托管者。其他主持人将对你的竞赛拥有完整访问权限(包括发布该竞赛)。

8f8c90eb6baa7747

评估指标

“评估指标”标签页是比赛的核心。从头开始创建比赛时,您需要仔细考虑要使用哪个评估(或评分)指标,上传解决方案文件,定义公开/不公开测试分组,并提供提交内容示例。不过,由于我们使用的是系统生成的竞争,因此无需执行任何其他操作!

评分指标

这决定了如何根据解决方案文件为提交内容评分。每个指标都有文档和实际代码。

解决方案文件

因为我们使用的是生成的竞赛,所以此文件是您的竞赛所独有的!

89fa1f42d177505a

通过解决方案抽样,您可以调整用于在比赛期间对提交内容进行评分的解决方案文件量(公开排行榜)与用于确定最终排行榜的行数。在比赛过程中,用户可以(根据“有分量的非公开排行榜”设置)选择他们提交的哪些视频将用于最终排行榜(此处称为“非公开排行榜”)。

此过程可确保竞争对手不会因提交内容过拟合或过多而获得奖励。

沙盒提交

通过这些做法,竞争托管方可以确保评分按预期运行,并允许他们设定“基准”供竞争对手比较。这些基准提交内容将显示在排行榜上。

团队和提交内容

比赛期间,主持人可以下载所有比分并管理球队。在比赛开始之前,此处是空的。

Launch Checklist

相关内容将在下一部分中介绍!

5. 发布比赛

50b03df072c02e6a

在竞赛页面的顶部,点击“发布核对清单”按钮。

Launch Checklist

发布核对清单显示了在发起竞争之前必须执行的步骤。由于我们已经从一个比赛模板开始,因此其中大部分步骤已经完成!现在只剩两项任务,即设置截止日期和更新竞赛规则。

938b9ed7bc4e0597

设置截止日期

首先点击“设置截止日期”旁边的箭头。竞赛通常会持续几个月。竞赛的最长期限为一年。

修改规则

您需要在发布之前根据默认模板更新您的竞争规则。如果你是为班级或小组举办本次比赛,可以在此处填写任何有关期望的信息。

发布

我们已准备好发布!开始吧,开始你的竞赛!参赛者现已加入!

6. 竞争对手体验

现在,比赛已经启动,我们来看看竞争对手的体验。我们将介绍如何参加比赛并提交参评资料。为此,您可以通过以下网址参加 Google IO 演示竞赛:https://www.kaggle.com/competitions/google-io-demo-competition

参加竞赛

转至比赛首页后,点击“加入比赛”按钮,然后点击“阅读并确认规则”。

首次提交答案

转到“代码”标签页,然后点击“新建笔记本”。此操作将打开一个笔记本,供您提交参评资料。

首先,我们将读取训练数据和测试数据

?# 读取测试并训练数据

模块序列 = pd.read_csv('/kaggle/input/google-io-demo-competition/train.csv')

test = pd.read_csv('/kaggle/input/google-io-demo-competition/test.csv')

我们来看一下数据。

?# 看一下部分数据

train.head()

让我们来准备训练数据。在本示例中,我们删除了“Sex”,因为它不是数值。(提示:弄清楚如何添加此字段可以提高模型的性能)。

• 从测试数据中丢弃 # 项结果

数据 = train.drop(columns=[‘Age', ‘Sex'])

答案 = 训练 [‘年龄’]

然后,我们创建一个模型。在本例中,我们使用的是随机森林模型。

模型有 ??# 项导入

from sklearn.model_selection import train_test_split,

from sklearn.ensemble import RandomForestRegressor

从 sklearn.metrics 导入 mean_大多数错误

model = RandomForestRegressor()

# 训练模型

model.fit(数据, 答案)

创建提交内容:

predictions = model.predict(test.drop(columns=[‘Sex']))

submission = pd.DataFrame({‘id&#39;: test[‘id&#39;], ‘Age&#39;: predictions})

submit.to_csv(‘submission.csv', index=False)

然后,您可以选择“提交至竞赛”以提交参赛作品。

1cf17449cae53abe

开展精彩竞争的提示

  1. 请务必添加一个用于提交基本提交内容的起始笔记本
  2. 鼓励在比赛前期参与讨论和分享笔记本
  3. 乐在其中!