1. 簡介

上次更新時間:2024 年 5 月 10 日
什麼是 Kaggle?
Kaggle 是最大的 AI 和機器學習社群,也是數據科學和機器學習愛好者的終極平台,無論程度如何,都能透過最新技術和科技提升能力。探索豐富的資料集、筆記本和預先訓練模型存放區,為下一個專案做好準備。參加競賽、修習課程,並與全球超過 1,800 萬名使用者組成的多元社群交流互動。無論你是初學者還是經驗豐富的專業人士,都可以在 Kaggle 精進技能、掌握最新趨勢,並協作尖端專案。
建構項目
在本程式碼研究室中,您將建立、設定及啟動 Kaggle 競賽。您將瞭解參賽者體驗,並掌握如何舉辦吸引人的競賽。
課程內容
- 瞭解如何從主辦方的角度建立及管理 Kaggle 競賽
- 瞭解競爭對手的體驗,從探索到提交
- 瞭解如何舉辦吸引人的競賽
本程式碼研究室著重於快速建立競賽,並運用 Kaggle 日益擴充的競賽程式庫。
軟硬體需求
- 最新版網路瀏覽器
- Python 的基本知識
2. 開始設定
建立 Kaggle 帳戶
前往 Kaggle 網站 (https://www.kaggle.com/),然後按一下「註冊」建立免費帳戶。
驗證帳戶
- 按一下頁面右上角的個人資料圖片
- 按一下「你的個人資料」
- 按一下個人資料內容右側的「設定」按鈕
- 在「電話號碼驗證」下方,按照操作說明驗證帳戶
3. 建立第一個競賽
推出 AI 生成的競賽範本
Kaggle 的「AI 生成競賽」是一項新功能,可讓使用者輕鬆快速地建立機器學習競賽。這項工具會運用 AI 生成合成資料集,模擬現有資料集的統計屬性,且不含任何個人識別資訊。
運作方式如下:
- 選擇範本:根據不同的機器學習工作 (例如分類、迴歸),從範本清單中選取。
- AI 生成資料集:Kaggle 的 AI 會根據您選擇的範本,為競賽建立新的資料集。這個資料集與原始資料集類似,但使用部分特徵,且特徵分布略有不同。
- 自訂競賽:輸入競賽名稱、說明和時間表等基本詳細資料。你也可以選擇競賽的隱私權設定。
- 推出:確認詳細資料並設定推出日期後,即可推出競賽。
這項功能可簡化競賽建立程序,讓更多使用者都能參與,並專注於機器學習層面,而非資料集準備工作。
建立競賽
前往 https://www.kaggle.com/competitions/new,然後選取「New AI Generated Competition」(新 AI 生成競賽)

選取「Regression with a Crab Age Dataset」競賽。
競賽詳細資料

填寫描述性名稱和副標題。舉例來說,你可以使用「<你的名字>的螃蟹競賽測試」做為標題,並使用「建立我的第一個競賽,看看運作方式」做為副標題。請注意,系統會根據標題自動填入競爭網址。
瀏覽權限和存取權
現在需要設定競賽的瀏覽權限和存取權。
顯示設定
- 公開:Kaggle 上的任何人都能看到你的競賽。這項活動會顯示在搜尋結果中,感興趣的使用者都能加入。
- 私人:競爭對手不會公開顯示。這類活動不會顯示在搜尋結果中,只有您邀請的對象才能參加。
加入資格
- 任何人:這就像開放溝通政策,Kaggle 上的任何人都能加入你的競賽。
- 只有知道連結的使用者:這個選項的隱私權限制較嚴格。系統會產生專屬連結,只有知道連結的人才能加入。
- 受限制的電子郵件名單:這是控管最嚴格的選項。您提供特定電子郵件地址或網域 (例如 @yourschool.edu) 的清單,只有擁有這些地址的使用者可以加入。
我們稍後會進一步說明「啟用 Notebook 和模型」設定。目前請務必開啟這項設定。以我們的範例競賽為例,請將這些設定設為「私人」和「只有擁有連結的使用者」。
詳閱並同意條款,然後按一下「建立競賽」。
4. 瞭解及設定競爭對手
我們在幕後建立了一個全新的競賽,並提供獨特的資料集。讓我們快速回顧一下競賽設定。
「主機」分頁
主辦人分頁包含主辦人正確設定競賽所需的一切資訊。具體來說,請查看頁面右側的頁面清單:

基本詳細資料
本節的內容包含:
- 一般
- 隱私權、存取權與資源
- 時間軸
- 得分和團隊
我們在推出競賽時,已說明「一般」和「隱私權」部分。
時間軸
競賽結束日期會考量時區。

得分和球隊
您可以在「評分與團隊」部分控管團隊人數上限、每日提交次數上限,以及最終評估時需選擇的提交內容數量。

圖片
圖片:可自訂競賽的橫幅和縮圖。這會影響競賽首頁和競賽的登錄項目。

主機
您可以在這裡新增其他 Kaggle 使用者做為競賽主辦人。其他主辦人將擁有競賽的完整存取權 (包括啟動)。

評估指標
「評估指標」分頁是競賽的核心。從頭建立競賽時,您需要仔細思考要使用哪種評估 (或評分) 指標、上傳解決方案檔案、定義公開/私密測試分割,並提供範例提交內容。不過,由於我們使用了產生的競賽,因此不需要執行任何這類操作!
評分指標
這會決定系統如何根據解決方案檔案為提交內容評分。每個指標都有可用的文件和實際程式碼。
解決方案檔案
由於我們使用的是生成的競賽,因此這個檔案是您的競賽專屬檔案!

解決方案取樣功能可讓您調整解決方案檔案的用量,以在競賽期間 (公開排行榜) 評估提交內容,並決定最終排行榜的列數。競賽期間,使用者可以根據「已評分私人提交內容」設定,選取要用於最終排行榜 (以下稱為「私人排行榜」) 的提交內容。
這個程序可確保競爭對手不會因過度訓練或大量提交而獲得獎勵。
沙箱提交
競賽主辦單位可藉此確保評分機制運作正常,並設定「基準」提交內容供參賽者比較。這些基準提交內容會顯示在排行榜上。
團隊與提交內容
在比賽期間,主辦人可以下載所有分數,以及管理隊伍。比賽開始前,這個部分會是空白。
發布檢查清單
我們將在下一節說明這項功能!
5. 發起競賽
在競賽頁面頂端,按一下「啟動檢查清單」按鈕。
發布檢查清單
啟動檢查清單會顯示啟動競賽前必須完成的步驟。由於我們已從競賽範本開始,因此大部分步驟都已完成!只剩下兩項工作:設定截止日期和更新競賽規則。

設定截止日期
首先,請按一下「設定截止日期」旁的箭頭。競賽通常至少會持續幾個月。競賽時間上限為一年。
編輯規則
您必須先更新預設範本中的競賽規則,才能發布競賽。如果您是為班級或群組舉辦這項競賽,不妨在此處說明相關規定。
推出
我們準備發布了!請繼續發起競賽!現在參賽者可以加入競賽了!
6. 競爭對手體驗
現在你已推出競賽,接著來看看競爭對手的體驗。我們會說明如何參加競賽及提交作品。如要參加,請前往 Google IO 示範競賽:https://www.kaggle.com/competitions/google-io-demo-competition
參加競賽
前往競賽首頁後,按一下右上方的「加入競賽」按鈕,然後閱讀並確認規則。
首次提交內容
前往程式碼分頁,然後按一下「New Notebook」(新筆記本)。系統會開啟筆記本,方便你提交參賽內容。
首先,我們會讀取訓練和測試資料
# read the test and train data
train = pd.read_csv('/kaggle/input/google-io-demo-competition/train.csv')
test = pd.read_csv('/kaggle/input/google-io-demo-competition/test.csv')
我們來看看資料。
# take a look at some of the data
train.head()
接著準備訓練資料。在本例中,我們會捨棄「Sex」,因為這不是數值。(提示:瞭解如何納入這項資訊應能提升模型效能)。
# drop out the results from the test data
data = train.drop(columns=[‘Age', ‘Sex'])
answers = train[‘Age']
然後建立模型。在本例中,我們使用的是隨機森林模型。
# 個模型匯入作業
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestRegressor
from sklearn.metrics import mean_absolute_error
model = RandomForestRegressor()
# train the model
model.fit(data, answers)
建立提交內容:
predictions = model.predict(test.drop(columns=[‘Sex']))
submission = pd.DataFrame({‘id': test[‘id'], ‘Age': predictions})
submission.to_csv(‘submission.csv', index=False)
然後選取右側選單中的「Submit to Competition」(提交至競賽),即可提交作品。

舉辦優質競賽的訣竅
- 請務必加入可進行基本提交的入門筆記本
- 鼓勵參賽者在競賽初期使用討論區和共用筆記本
- 祝你玩得愉快!;-)

