↑↑↑关注后"星标"Datawhale
每日干货 & 每月组队学习,不错过
Datawhale干货
作者:陈锴,中山大学,Datawhale成员
最近有很多读者留言,希望能有一个完整的数据分析项目练手,这几天收集了组织成员们的推荐。其中泰坦尼克号生存预测作为最经典的启蒙数据分析项目,对于初学者来说是应该是最合适的了,后面将分享更多进阶的数据分析项目。如果已经有基础了,推荐:
1.开源项目《动手学数据分析》:
https://github.com/datawhalechina/hands-on-data-analysis
2.DCIC 2020算法分析赛:DCIC 是国内少有的开放政府真实数据的经典赛事,对能力实践,学术研究等都提供了很好的机会。
https://mp.weixin.qq.com/s/-fzQIlZRig0hqSm7GeI_Bw
全文如下:
本文结合泰坦尼克号生存预测,从1.数据探索(数据可视化),2.数据预处理,3.模型训练,4.模型调参这四个步骤进行了完整的梳理:
1. 数据概述与可视化
1.1 数据概述
首先我们导入我们的训练数据和测试数据:
数据集包含train.csv和test.csv两个文件,在 Datawhale 公众号回复 数据集,可获取打包链接,也可以直接在kaggle官网上下载。
train_data = pd.read_csv("input/train.csv", index_col=0)
test_data = pd.read_csv("input/test.csv", index_col=0)
train_data.head()

train_data.describe()

我们再看看数据中值为null的数据,这是我们后面需要进一步处理的:
train_data.isnull().sum().sort_values(ascending=False).head(4)
显示结果为:
Cabin 687 Age 177 Embarked 2 Fare 0 dtype: int64
1.2 数据可视化
为了这篇文章看起来内容多一点(误),我们可以画多点图来展示数据信息,想直接进行数据预处理的读者可以跳过这部分,这部分内容大多来自Kaggle官网的一篇notebook。
1.2.1 性别与生存率
首先我们应该还记得电影里感人的“女士优先”策略:
sns.barplot(x="Sex", y="Survived", data=train_data)

1.2.2 仓位等级(社会等级)与生存率
我们还可以猜测不同仓位的乘客应有不同的获救率:
#draw a bar plot of survival by Pclass
sns.barplot(x="Pclass", y="Survived", data=train)
#print percentage of people by Pclass that survived
print("Percentage of Pclass = 1 who survived:", train["Survived"][train["Pclass"] == 1].value_counts(normalize = True)[1]*100)
print("Percentage of Pclass = 2 who survived:", train["Survived"][train["Pclass"] == 2].value_counts(normalize = True)[1]*100)
print("Percentage of Pclass = 3 who survived:", train["Survived"][train["Pclass"] == 3].value_counts(normalize = True)[1]*100)

Percentage of Pclass = 1 who survived: 62.96296296296296
Percentage of Pclass = 2 who survived: 47.28260869565217
Percentage of Pclass = 3 who survived: 24.236252545824847
数据结果还是很现实的,贵的仓位自然有更高的生存率