1. 简介
上次更新日期:2024 年 5 月 10 日
什么是 Kaggle?
Kaggle 是全球最大的 AI 平台,机器学习社区,这是一个终极平台,可供各级数据科学和机器学习爱好者了解最新技术和技术。探索包含数据集、笔记本和预训练模型的大型代码库,开始您的下一个项目。您可参与竞赛、学习课程,并与全球超过 1800 万用户的多元化社区建立联系。无论您是初学者还是经验丰富的专业人士,都可以在 Kaggle 上磨练技能、保持领先地位并协作完成前沿项目。
构建内容
在此 Codelab 中,您将创建、配置和发起 Kaggle 竞赛。您将详细了解竞争对手的体验,并了解开展富有吸引力的竞争的最佳做法。
学习内容
- 了解如何从主办方发起和管理 Kaggle 竞赛
- 浏览竞争对手体验(从探索到提交)
- 了解开展有吸引力的竞争的最佳做法
此 Codelab 侧重于利用 Kaggle 不断发展壮大的竞赛库,快速创建竞赛库。
所需条件
- 最新版的网络浏览器
- 具备 Python 的基础知识
2. 准备工作
创建 Kaggle 账号
访问 Kaggle 网站 (https://www.kaggle.com/),然后点击“注册”创建免费账号。
验证您的账号
- 在页面的右上角,点击您的个人资料图片
- 点击“您的个人资料”
- 点击“设置”个人资料内容右侧的按钮
- 在“电话验证”下按照说明验证您的账号
3. 正在创建您的首个竞赛
全新推出 AI 生成的竞争模板
AI 生成竞赛是 Kaggle 的一项新功能,可让用户轻松快速地创建机器学习竞赛。它利用 AI 生成模拟现有数据集的统计特性的合成数据集,不包含任何个人身份信息。
具体方法如下:
- 选择模板:根据不同的机器学习任务(例如分类、回归)从模板列表中进行选择。
- AI 生成数据集:Kaggle 的 AI 会根据您选择的模板为您的竞争对手创建一个新的数据集。此数据集与原始数据集类似,但使用了一部分特征,特征分布略有不同。
- 自定义比赛内容:输入比赛名称、说明和时间表等基本详情。你还可以选择与自己竞争的隐私设置。
- 发布:在最终确定细节并设置发布之后,您就可以发布竞争了。
此功能简化了竞赛创建过程,使其可供更多用户访问,使他们能够专注于机器学习方面,而不是数据集准备。
创建竞赛
前往 https://www.kaggle.com/competitions/new,选择“新的 AI 生成的竞赛”
选择“Regression with a Crab Age Dataset”(使用蟹年龄数据集进行回归)竞争。
竞赛详细信息
填写描述性名称和副标题。例如,您可以使用“<Your Names>的甲壳虫竞赛”标题以及“创建我的首个比赛,了解比赛运作方式”作为副标题。请注意,系统会根据标题自动填充竞争网址。
公开范围和访问权限
现在,我们需要设置比赛的公开范围和访问权限。
公开范围
- 公开:Kaggle 上的所有人都可以看到您的比赛。活动会显示在搜索结果中,因此所有感兴趣的用户都可以加入。
- 私享:您的竞赛不会公开显示。它不会显示在搜索结果中,只有您明确邀请的人可以参与。
哪些人可以加入
- 所有人:这类似于开放政策。Kaggle 上的任何人都可以加入你的竞赛。
- 仅限知道链接的用户:此选项更具专享权限。系统会生成一个特殊链接,只有知道此链接的人才能加入。
- 受限电子邮件列表:这是受控制最多的选项。您可以提供一系列特定电子邮件地址或域名(例如 @yourschool.edu),并且只有拥有这些地址的用户才能加入。
我们稍后会详细介绍启用笔记本和模型设置。目前,请确保它处于开启状态。在我们的示例比赛中,将这些设置设为不公开和仅限知道链接的人。
阅读并同意相关条款,然后点击“创建竞赛”。
4. 了解和配置您的竞争情况
我们在后台通过一个独一无二的数据集创建了一个全新的竞赛。我们来快速回顾一下竞争设置。
“主持人”标签页
“托管”标签页包含您作为托管方正确配置竞争机制所需的一切。具体来说,请查看页面右侧的页面列表:
基本详情
此部分包括:
- 常规
- 隐私权、访问权限和资源
- 时间表
- 评分和团队
启动本项比赛时,我们介绍了“常规”和“隐私权”部分。
时间轴
竞争结束日期可视时区而定。
评分和团队
评分与“小组”部分可让您控制加入小组的人数、每天可以提交的次数,以及需要选择多少人来进行最终评估。
图片
通过图片,您可以自定义竞争的横幅和缩略图。这将影响竞赛主页以及竞赛条目信息。
主机
在这里,你可以将其他 Kaggle 用户添加为你比赛的托管者。其他主持人将对你的竞赛拥有完整访问权限(包括发布该竞赛)。
评估指标
“评估指标”标签页是比赛的核心。从头开始创建比赛时,您需要仔细考虑要使用哪个评估(或评分)指标,上传解决方案文件,定义公开/不公开测试分组,并提供提交内容示例。不过,由于我们使用的是系统生成的竞争,因此无需执行任何其他操作!
评分指标
这决定了如何根据解决方案文件为提交内容评分。每个指标都有文档和实际代码。
解决方案文件
因为我们使用的是生成的竞赛,所以此文件是您的竞赛所独有的!
通过解决方案抽样,您可以调整用于在比赛期间对提交内容进行评分的解决方案文件量(公开排行榜)与用于确定最终排行榜的行数。在比赛过程中,用户可以(根据“有分量的非公开排行榜”设置)选择他们提交的哪些视频将用于最终排行榜(此处称为“非公开排行榜”)。
此过程可确保竞争对手不会因提交内容过拟合或过多而获得奖励。
沙盒提交
通过这些做法,竞争托管方可以确保评分按预期运行,并允许他们设定“基准”供竞争对手比较。这些基准提交内容将显示在排行榜上。
团队和提交内容
比赛期间,主持人可以下载所有比分并管理球队。在比赛开始之前,此处是空的。
Launch Checklist
相关内容将在下一部分中介绍!
5. 发布比赛
在竞赛页面的顶部,点击“发布核对清单”按钮。
Launch Checklist
发布核对清单显示了在发起竞争之前必须执行的步骤。由于我们已经从一个比赛模板开始,因此其中大部分步骤已经完成!现在只剩两项任务,即设置截止日期和更新竞赛规则。
设置截止日期
首先点击“设置截止日期”旁边的箭头。竞赛通常会持续几个月。竞赛的最长期限为一年。
修改规则
您需要在发布之前根据默认模板更新您的竞争规则。如果你是为班级或小组举办本次比赛,可以在此处填写任何有关期望的信息。
发布
我们已准备好发布!开始吧,开始你的竞赛!参赛者现已加入!
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': test[‘id'], ‘Age': predictions})
submit.to_csv(‘submission.csv', index=False)
然后,您可以选择“提交至竞赛”以提交参赛作品。
开展精彩竞争的提示
- 请务必添加一个用于提交基本提交内容的起始笔记本
- 鼓励在比赛前期参与讨论和分享笔记本
- 乐在其中!