生存预测
案例介绍
本案例的数据集来自泰坦尼克(Titanic)事件,对于船上的逃生问题,是否获救并不是随机发生的,而是有分级的。数据集的标签列对应是否幸存,每个属性都有其实际的意义,便于理解、检验我们的分析结果及构造的分类模型。
数据集介绍
数据来源于http://www.cs.toronto.edu/~delve/data/titanic/desc.html
包括乘客和船员共2201条记录,每条记录包含4个字段,如下表所示。该数据的特点是,所有属性列的类型都是string类型,都是枚举值。
名称 | 说明 | 包含枚举值 |
---|---|---|
class | 阶层 | first:一等舱乘客 second:二等舱乘客 third:三等舱乘客 crew:船员 |
age | 年龄 | adult:成人 child:儿童 |
sex | 性别 | male:男 female:女 |
survived | 是否幸存 | yes:是 no:否 |
特征分析
1、此数据的特征都是离散特征,我们使用excel表格的分组统计,将【survived】与其他3列(【class】,【age】,【sex】)进行分组统计。首先下图展示的是【sex】(性别)属性与【survived】(是否幸存)标签的关系,对于离散值female(女性)幸存的比例较大;而对于离散值male(男性),幸存的比例较小。
2、其次,对于【age】(年龄)属性,如下图所示,离散属性值child(儿童)的样本数较少,在机器学习中属于特征不均衡;对于属性值adult(成人),幸存的比例较小。
3、最后,对于【class】(乘坐的船舱等级)属性,如下图所示,可以看出离散属性值1st(一等舱)对应的幸存比例约60%;离散属性值2nd(二等舱)对应的幸存比例约为40%;而其他两个离散值对应的幸存比例都偏小。
案例操作
由前面的分析,我们发现有的条件在是否生存上起到重要作用。而朴素贝叶斯算法,即假设各特征独立的情况下,通过各特征的概率成绩作为总体的概率。具体建模、预测和评估的流程如下图所示。
1、使用“加载文件”组件加载数据集,在“样例数据”tab页选择“titanic”数据集,运行“加载文件”之后,通过右键菜单查看数据,数据显示如下图所示,每条记录代表一名乘客或船员,只是没有姓名等详细内容。该数据集的“status”属性即“class”。
2、为了评估模型的性能和泛化能力,我们还需将数据划分为训练集和测试集。其中训练集用于训练模型,测试集用于评估模型在未知数据上的表现,避免过拟合。“数据抽样”方便用户把一个数据拆分为两个集合(抽样数据及剩余数据),拆分后的数据其中一个可用于模型训练即作为训练集,另一个可作为测试集使用。我们使用该组件来对数据进行拆分。
下图为“数据抽样”组件的参数设置,我们选择“固定比例”进行抽样,比例设置为20%(即20%为抽样数据,80%为抽样后剩余数据)。
3、将数据处理好之后我们就需要将其传送给模型来进行生存预测。分析本案例的数据,我们可以得到要预测的因变量是离散的,因此我们可以选择分类模型来实现需求。我们使用“朴素贝叶斯”组件进行建模分析。
直接拖拽“朴素贝叶斯”组件到画布并连接即可,无需做配置
4、“预测”组件能够直观的查看各模型的预测结果和实际结果,对于分类任务,预测组件也可以直观的展示离散目标各属性值的预测概率。我们选择“预测”组件来查看我们的模型对目标属性值的预测概率。
可在“预测”组件的参数设置下按需选择需要查看的信息,本案例查看原始数据、类别预测值、概率预测值三类信息。
4、最后,我们想更直观的观察模型在各个类别上的表现,可以运行“混淆矩阵”组件,查看测试集的预测评估结果——混淆矩阵和比例矩阵,如下图所示,可以看到对于真实标签为no的测试样本,预测对的比例为82.3%,而对于真实标签为yes的测试样本,预测对的比例只有60.3%。