例子描述:
比赛地址:https://www.kaggle.com/c/titanic
使用乘客数据(即姓名,年龄,性别,社会经济舱等),建立一个预测模型来回答以下问题:“什么样的人更有可能生存?” 。这是一个只适合小白的极简版本,不求排名,只求入门。
所需环境:Anaconda3
下载并安装:Anaconda3-2020.02-Windows-x86_64.exe
下载页面:https://www.anaconda.com/distribution/
下载地址:https://repo.anaconda.com/archive/Anaconda3-2020.02-Windows-x86_64.exe
3个步骤:
- 阅读比赛介绍,下载数据集
- 导入数据集
- 选择特征作为训练数据
- 构建模型
- 预测测试数据生成gender_submission.csv文件,用于提交到kaggle
- 上传gender_submission.csv文件到kaggle
1. 阅读比赛介绍,下载数据集
比赛介绍:https://www.kaggle.com/c/titanic/overview
下载数据集:https://www.kaggle.com/c/titanic/data
2. 导入数据集
打开Anaconda3并启动Jupyter Notebook
编写代码:
#导入相关模块
import numpy as np
import pandas as pd
#导入数据
train_data = pd.read_csv("D:/Anaconda3/notebook/kaggle/Titanic/data/train.csv") #你下载的数据集文件路径,不要用中文
train_data.head() #查看前5行数据
3. 选择特征作为训练数据
- PassengerID(ID)
- Survived(存活与否)
- Pclass(客舱等级,较为重要)
- Name(姓名,可提取出更多信息)
- Sex(性别,较为重要)
- Age(年龄,较为重要)
- Parch(直系亲友)
- SibSp(旁系)
- Ticket(票编号)
- Fare(票价)
- Cabin(客舱编号)
- Embarked(上船的港口编号)
features = ["Pclass", "Sex", "SibSp", "Parch"] #四个特征
X = pd.get_dummies(train_data[features]) #构造训练样本数据
y = train_data["Survived"] #构造训练标签数据
为了简单,这里只选择4个特征用于模型训练
4. 构建模型
from sklearn.ensemble import RandomForestClassifier #使用随机森林
model = RandomForestClassifier(n_estimators=100, max_depth=5, random_state=1) #构造模型
model.fit(X, y) #训练模型
5. 预测测试数据生成gender_submission.csv文件,用于提交到kaggle
X_test = pd.get_dummies(test_data[features]) #选择特征,构造测试样本数据
predictions = model.predict(X_test) #对测试数据继续预测
output = pd.DataFrame({'PassengerId': test_data.PassengerId, 'Survived': predictions})
output.to_csv('D:/Anaconda3/notebook/kaggle/Titanic/data/gender_submission.csv', index=False) #保存预测结果
print("预测结果gender_submission.csv文件保存成功,可以提交到kaggle了")
6. 上传gender_submission.csv文件到kaggle
这里有个错误,是因为提交文件需要翻墙
翻墙后再次提交成功