Kaggle比赛入门攻略(以 Titanic 为例)
为什么选择 Kaggle 入门比赛?
Kaggle 是全球最大的数据科学竞赛平台。入门比赛 Titanic: Machine Learning from Disaster 是初学者的理想起点,数据量小、结构简单、题目经典。
Step 1:注册并加入比赛
- 访问比赛地址:https://www.kaggle.com/c/titanic
- 注册或登录 Kaggle 账号
- 点击右上角
Join Competition
- 同意比赛规则(必须完成这步,才算正式参赛)
Step 2:理解比赛任务与数据
比赛目标:
预测泰坦尼克号乘客的生还情况(二分类问题:0 = 死亡,1 = 生还)
数据文件:
train.csv
:训练数据(已知生还结果,共891人)test.csv
:测试数据(未知生还结果,共418人)gender_submission.csv
:官方示例提交文件
Step 3:创建 Notebook 并加载数据
在比赛页面点击 Code
→ New Notebook
,复制以下代码执行:
import pandas as pd# 加载数据
train_data = pd.read_csv("/kaggle/input/titanic/train.csv")
test_data = pd.read_csv("/kaggle/input/titanic/test.csv")# 查看前几行
train_data.head()
Step 4:数据探索(EDA)
查看性别和生还率的关系:
# 女性生还率
women = train_data.loc[train_data.Sex == 'female']["Survived"]
print("女性生还率:", women.mean())# 男性生还率
men = train_data.loc[train_data.Sex == 'male']["Survived"]
print("男性生还率:", men.mean())
输出显示女性生还率高达 ~75%,男性仅约 19%
Step 5:训练一个简单模型(随机森林)
from sklearn.ensemble import RandomForestClassifier# 选择特征列
features = ["Pclass", "Sex", "SibSp", "Parch"]
X = pd.get_dummies(train_data[features])
X_test = pd.get_dummies(test_data[features])
y = train_data["Survived"]# 模型训练
model = RandomForestClassifier(n_estimators=100, max_depth=5, random_state=1)
model.fit(X, y)# 生成预测结果
predictions = model.predict(X_test)# 保存提交文件
output = pd.DataFrame({'PassengerId': test_data.PassengerId, 'Survived': predictions})
output.to_csv('submission.csv', index=False)
print("预测结果已保存为 submission.csv")
Step 6:提交结果并查看排名
- 点击右上角
Save Version
→ 选择Save & Run All
- 稍等片刻,Notebook 会执行完毕
- 在右上角点击版本号 → 进入
Viewer
- 在
Data
页点击Submit
按钮提交 - 页面底部可看到你的 Public Score 和排行榜位置
Step 7:下一步可以做什么?
- 添加更多特征:Age、Fare、Embarked 等
- 处理缺失值:如用中位数填充 Age
- 尝试其他模型:Logistic Regression、XGBoost、LightGBM
- 学习课程:
- Intro to Machine Learning
- Pandas 基础
总结
阶段 | 内容 |
---|---|
注册参赛 | 加入比赛并同意规则 |
数据理解 | train/test 数据结构清晰 |
创建 Notebook | 无需本地环境,在线运行 |
探索数据 | 找到性别、舱位等关键特征 |
构建模型 | 使用 sklearn 快速上手 |
提交预测 | 自动保存为 CSV 并提交评分 |
持续提升 | 学习课程,改进特征,调参优化 |
如果你成功提交了 Titanic 的预测结果,恭喜你正式迈出了数据科学之路的第一步!