kaggle:泰坦尼克号获救预测_Titanic_EDA##
问题
数据来源于Kaggle,通过一组列有泰坦尼克号灾难幸存者或幸存者的训练样本集,我们的模型能否基于不包含幸存者信息的给定测试数据集确定这些测试数据集中的乘客是否幸存。
代码与数据分析
导入必要的包和titanic数据
image数据集基本信息
将数据分为不同类别,分别为类别型数据和数字型数据
-
类别数据:Survived, Sex, and Embarked. Ordinal: Pclass
-
数字型数据:Age, Fare. Discrete: SibSp, Parch
数据分布来看:
-
大多数乘客(75%)没有和父母或孩子一起旅行
-
近30%乘客有兄弟姐妹或配偶
-
票价差异很大,只有少数乘客(<1%)支付了512美金的票价
-
年龄较大的乘客数据较少(1%)
提出假设
-
关联:各个特征与存货的相关性是如何
-
填充缺失值:对 Age 和 Embarked 进行缺失值填充
-
清洗、处理、剔除字段:Ticket由于高重复率,Cabin仓位空值过多,PassengerId与存活无关,Name数据不标准,都需要处理后进行剔除
-
添加字段:我们可以根据 Parch 和 SibSp 创造一个关于家庭成员数量的字段;可以从名字中提取特征形成新特征;可以从 Age 和 Fare 创造分层,使数据更具有机器学习意义
-
分类:猜测女性(Sex = female)、儿童(Age<自定义值)、上层人士(Pclass=1)更有可能存活
通过pandas pivot进行简单分析
imagePclass 等级越低,存活率越低
image女性存活率远高于男性
imageSibSp与存活率很分散,可能需要进行重构新字段
通过可视化进行分析
数据发现
-
婴儿(Age < 4)存活率很高
-
年龄最大的乘客存活了下来
-
大多数15-25岁之间的乘客没有存活下来
-
大多数乘客处于15-35岁之间
决策
通过对以上数据分析,可以得到以下决策
- 我们应该对年龄进行缺失值填空、分层
数据相关性
结合多个特征来识别相关性
数据发现
-
Pclass=3的乘客最多,但存活率最低
-
Pclass=2和Pclass=3的婴儿乘客幸存率很高
-
大多数Pclass=1的乘客存活率很高
-
不同阶层的年龄分布不同
分类特征关联
数据发现
-
女性存活率比男性高很多
-
Pclass=3的男性存活率更高
-
Pclass=3和男性乘客的生存率各不相同
数值数据和分类数据的关系
数据发现
-
票价越高的乘客存活率越高
-
登陆口岸与乘客存活率相关
数据处理
现在我们上文中的数据分析对数据进行处理
Name 列处理
名称列提取后发现分组较为集中和准确,进行简单处理就可以得到比较明确的类别
image image女性称谓的存活率也明显较高
image将类别数据(Title、Sex)数字化
image image删掉不必要的列
image填充空缺值
填充 Age
我们考虑用三种方法对Age进行空缺值填充
-
随机生成一个均值±方差之间的数字
-
在以上的分析中我们可以看到每个阶层、性别之间的年龄分布有所不同,所以我们可以根据阶层和性别组合特征进行空缺的年龄值预测
-
结合1、2方法,通过阶层和性别组合特征随机生成一个均值±方差之间的数字
这里我们选择方法 2
生成年龄填充DataFrame
[图片上传中...(image-a6ff10-1576513947294-25)]
填充空缺 Age
根据每条空缺值的 Pclass 和 Sex 进行 Age 填充
image对年龄进行分层
image根据年龄分层将年龄类别数据数字化
image移除多余列
image结合 SibSp 和 Parch 创建新列
image image删除多余字段
image结合阶层和年龄生成新列
image对 Embarked 列进行填充
由于绝大多数 Embarked=S,故用 S 对空缺值进行填充
image对 Embarked 列类别数据数字化
image对 Fare 列进行空缺值填充与分层
image根据数据分层对 Fare 进行分类并数据化
image数据学习模型选择与评估
我们选择以下几种模型进行学习预测:
-
Logistic Regression
-
KNN or k-Nearest Neighbors
-
Support Vector Machines
-
Naive Bayes classifier
-
Decision Tree
-
Random Forrest
-
Perceptron
-
Artificial neural network
-
RVM or Relevance Vector Machine
进行训练集、预测集分割处理
image逻辑回归
逻辑回归主要原理是 Sigmoid 函数,是在工作流早期运行的一个有用模型。Logistic回归通过使用Logistic函数(累积Logistic分布)估计概率来度量分类因变量(特征)与一个或多个自变量(特征)之间的关系 Wikipedia。
image我们可以看到各个特征的的系数:
-
Sex 的系数为2.019,性别为1(female),存活率越大
-
Pclass系数为-1.046,值越大,存活率越低
SVM模型
imageKNN 模型
image朴素贝叶斯模型
image感知机模型
image支持向量机模型
image梯度下降模型
image决策树模型
image随机森林模型
image对所有模型进行评价分析
随机森林和决策树的分类效果都比较好,防止过拟合选择随机森林,进行 Kaggle 数据预测
imageKaggle 预测数据上传
Kaggle 预测集准确率只有0.74641,排名9256名。如果对模型进行适当调参,模型准确性应该会更高
image参考资料:Titanic
END