泰坦尼克号生存预测项目是kaggle 竞赛上的经典项目之一。1912年泰坦尼克号沉船灾难,这次灾难导致2224名船员和1502乘客遇难,但是灾难中哪些人幸存那些人丧生并非完全随机。在这生死攸关的情况下,生存与否与性别,年龄,阶层等因素是有关系的,如果把这些因素作为特征,生存的结果作为预测目标,就可以建立一个典型的二分类机器学习模型。在这个项目中提供了部分的乘客名单,包括各种维度的特征以及是否幸存的标签,存在train.csv文件中,这是项目训练需要的数据;另一个test.csv文件是需要预测的乘客名单,只有相应的特征。项目要做的工作就是通过对训练数据的特征与生存关系进行分析,构建合适的机器学习的模型,再用这个模型预测测试文件中乘客的幸存情况。本部分包括泰坦尼克号生存预测案例和快速创建两部分。
首先调用人工智能平台数据准备模块-获取csv列名和列参数信息组件,对数据集有个初步了解,根据下方截图可以看到,训练数据集有891个样本,11个特征和1个标签,其中特征“Age”,“Cabin”,“Embarked”都有不同程度的缺损;测试集有418个样本,只有11个特征,其中特征“Age”,“Fare”,“Cabin”有不同程度的缺损。 11个特征的类型,其中有4个特征,包括:“PassengerId”,“Pclass”,“Sibsp”,“Parch”属于整数型数据,5个特征,包括:“Name”,“Sex”,“Ticket”,“Cabin”,“Embarked”属于字符串类型数据,2个特征,包括:“Age”,“Fare”属于浮点数。
图-1 数据集分析
首先在[人工智能平台]左侧导航栏中选择[文件管理/我的文件]菜单项,然后新建文件夹,上传项目需要的训练数据集和测试数据集。
图-2 上传数据集
在[人工智能平台]左侧导航栏中单击[样例库管理/AI建模]菜单项,单击<创建工程>按钮,新建工程工作目录选择文件管理中自己存放数据的文件夹。
图-3 新建工程
工程创建完成后创建新的任务流,输入任务流名称后,单击<确定>按钮,完成任务流的创建。
图-4 创建任务流
双击创建的任务流,进入任务流组件选择页面,此时会看到左侧包含输入、框架、算法、输出4个部分,此案例主要使用到算法-机器学习相关的组件。
图-5 组件列表
任务流分为左右两个部分,左边是模型训练过程,包含数据预处理-模型训练-模型评估;右边是利用生成的模型进行预测,包括数据预处理-模型加载-预测。
图-6 任务流组件
删除无效特征列。["PassengerId","Name","Ticket","Cabin"]4列特征分别表示乘客ID、乘客姓名、船票编号、船舱编号,前3个特征对预测没有作用,而船舱编号由于缺损严重无法使用,所以直接将这4列特征删除,任务流中调用的是机器学习-特征工程-删除列组件,实现删除指定特征列的功能。
图-7 删除无效特征列
修复缺省值。训练集中“Age”,“Embarked”,分别表示乘客年龄和乘客上船的港口,测试集中Fare票价,这3个特征列有部分缺省值,采用机器学习-数据准备-数据修复组件进行缺省值填充,填充方法选择mode(众数),即对缺省值用所在特征列的众数进行填充。
图-8 修复缺省值-选择特征列
连续数值型特征列离散化。["Age","Fare"]年龄和票价两个特征属于连续性数值,此处我们调用机器学习-特征工程-离散化组件,将年龄离散成3类(儿童、成年人、老年人),同时将票价离散成3类(低等、中等、头等)。
图-9 连续数值型特征列离散化-选择特征列
非数值特征数值化。["Sex","Embarked"]分别表示性别和乘客的上船的港口,都是字符串类型的数据,需要转化成整型的数值。
图-10 数值化-选择特征列
one-hot编码。目前所有的特征列都是离散类型的,我们可以将输入算法的特征列进行one-hot编码,将特征映射到欧式空间,提高模型的训练精度同时也能加快训练速度。
图-11 one-hot编码-选择特征列
模型训练评估。此处采用分类算法是GBDT算法,GBDT(Gradient Boosting Decision Tree)是boosting系列算法中的一个代表算法,它是一种迭代的决策树算法,由多棵决策树组成,所有树的结论累加起来作为输出结果。模型参数:建立子树的数量50,最大迭代次数100(此处重点是讲述任务流的使用方法和通过此案例快速帮助用户上手AI建模,所有没有进行参数调优,用户可以自行测试选择最优参数)。训练部分的预测组件是调用训练生成模型产生predict_class用于与标签列进行比较,是模型评估用的。
图-12 分类算法
|
此处采用模型评估-二分类模型评估组件对训练好的模型进行评估,返回模型的训练精度、召回率等以及ROC曲线。 |
图-13 评估显示结果
利用训练好的模型对无标签数据进行生存预测。右边那部分就是对测试集test.csv进行同样的数据预处理,然后调用训练好的模型进行预测,最后生成预测出的predict_class。
图-14 预测数据图
可以通过“立即创建”的功能,来快速创建泰坦尼克生存预测的示例。
选择[人工智能平台],进入人工智能平台页面。
在[人工智能平台]左侧导航栏中选择[样例库管理/样例库]菜单项,进入样例库页面。
单击泰坦尼克生存预测样例右侧的<立即创建>按钮,选择任务流所在工程,输入任务流名称,单击<确定>按钮,保存任务流。页面会自动跳转到该工程的页面。
单击上一步创建的任务流,进入任务流页面。各个组件已经创建,且参数已经配置,也可以根据自己的需要,调整参数。