【云知易】机器学习服务 入门 03 快速上手工作流

举报
阅识风云 发表于 2017/11/09 15:17:15 2017/11/09
【摘要】 本文通过银行存款预测业务的案例应用,介绍了华为机器学习服务的工作流使用方法,用户可以通过本文快速掌握工作流的使用和机器学习建模的流程。

一、业务分析

1.1 问题描述

      银行中常见一种业务:根据客户特征(年龄、工作类型、婚姻状况、文化程度、是否有房贷和是否有个人贷款),预测客户是否愿意办理定期存款业务。


1.2 数据理解

      本次演练的数据来自UCI的Machine Learning Repository,地址为https://archive.ics.uci.edu/ml/datasets/Bank+Marketing,数据样例如表1-1所示。我们把获取到的数据保存为“BANK_DATA.csv”,并根据上述网址提供的数据描述信息,编写数据描述文件“BANK.desc”。


表1-1 部分样本数据

年龄

Age

工作类型

Job

婚姻状况

Marital

文化程度

Education

房贷

Housing

贷款

Loan

标签

Label

58

management

married

tertiary

yes

no

no

44

technician

single

secondary

yes

no

no

33

entrepreneur

married

secondary

yes

yes

no

47

blue-collar

married

unknown

yes

no

no

33

unknown

single

unknown

no

no

no

35

management

married

tertiary

yes

no

no

28

management

single

tertiary

yes

yes

no


1.3 解决方案

       通过问题描述可知客户办理定期存款只有“是”、“否”两种可能,因此该问题为分类问题中的二分类问题。二分类问题可以用“逻辑回归”或“随机森林”算法来分析处理:

  • 逻辑回归(LogisticRegression

       逻辑回归算法是一种常用的二分类算法。它的一般处理步骤如下:

  • 将“样本属于此类”与“样本不属于此类”的概率之比转化成线性函数。

  • 借助极大似然估计对此函数进行参数估计,求得似然函数。

  • 利用梯度下降算法或牛顿法对似然函数最大化求解,不断迭代获得原始问题的最优解,得到逻辑回归模型。

  • 随机森林(RandomForest

       随机森林算法是数据挖掘中的一种分类方法,用于产生分类模型或回归模型。它用随机的方式建立一个森林,森林由很多决策树组成,每一棵决策树之间没有关联。得到森林之后,当有一个新的样本输入时,就让森林中的每一棵决策树分别进行判断,看这个样本对应哪一类(分类)或哪一个值(回归)。对于分类问题,哪一类被选择最多,就预测这个样本为那一类;对于回归问题,取所有树的预测值的平均值。

       通过数据观察,发现已有数据的线性关系不明显,那么用随机森林算法更好。这里的分类问题可以通过MLS创建包含“随机决策森林”节点的工作流进行分析处理。


二、数据导入

       使用机器学习服务前,需要将本地数据文件上传至OBS,再通过MRS将数据从OBS中导入至HDFS,供MLS从HDFS中读取数据。

2.1 上传数据至OBS

步骤 1    登录公有云管理控制台。

步骤 2    单击“服务列表”,选择“存储> 对象存储服务”。

步骤 3    单击“创建桶”。


表2-1 “创建桶”样例

参数名   

样例值

区域

选择新建桶所在的区域。

桶名称

obs-mls


步骤 4     单击“确定”,创建桶成功。

步骤 5     选择桶“obs-mls”,单击,在弹出框中选择待上传的数据文件,确定后,单击“上传”,等待页面提示上传成功。


2.2 通过MRS将数据导入HDFS

步骤 1     单击“服务列表”,选择“数据分析> MapReduce服务”。

步骤 2     选择集群“mrs-mls”,单击“文件管理 > 导入”。

步骤 3     在弹出框中,选择表2-2中的路径。


表2-2 导入路径

路径

样例

OBS路径

OBS中待导入的数据文件,例如“s3n://obs-mls/BANK_DATA”。

HDFS路径

数据文件导入到HDFS中的路径,例如“/user/omm/mls”。


步骤 4     单击“导入”,等待页面提示导入成功。


三、创建工作流
步骤1       登录MLS实例界面,单击左侧导航栏的“项目”,进入项目列表界面。
步骤2       在“bank”项目的“工作流”页签中,单击“创建”。
步骤3       在弹出的“创建工作流”对话框中,“名称”设置为“BankModel_wf”。 
步骤4       单击“确定”,创建工作流完成。 

四、编辑工作流
步骤1       进入BankModel_wf”的工作流编辑界面。
步骤2       进行算法节点的编排,然后为每个节点配置对应的参数。
4.1 算子编排 
      上述业务分析,选用随机决策森林作为模型训练算法。整个工作流包括数据输入、数据处理、模型构建和模型评估等4部分内容,具体流程图如图4-1所示。

图4-1 模型构建工作流
 

4.2 参数配置
       下面分别介绍图4-1工作流中各节点的参数设置。

表4-1“读取HDFS文件”节点参数配置样例

参数名称

样例值

数据格式

CSV

数据文件

“/user/omm/mls/BANK_DATA”

导入元数据

勾选

元数据文件

“/user/omm/mls/BANK.desc”

保存元数据文件

不勾选

处理异常值

null替代值

保存异常记录

不勾选


表4-2 “修改元数据”节点参数配置样例

参数名称

样例值

字段

“label”

角色

“Target”

测量尺度

“Nominal”

“yes,no”

输入数据模式

-

输出数据模式

-


表4-3 “拆分”节点参数配置样例

参数名称

样例值

分裂方式

比例

子数据集1的比例

66.0

随机种子

1


表4-4 “随机决策森林”节点参数配置样例

参数名称

样例值

学习类型

分类

树的数目

10

最大树深度

4

最大分箱数

100

不纯度

Gini

特征子集选取策略

Auto

随机种子

1


表4-5 “模型应用”节点参数配置样例

参数名称

样例值

预测类型

分类

分类阈值

0.5


表4-6 “分类模型评估”节点参数配置样例

参数名称

样例值

分类类型

二元分类

指标数据聚合点个数

2000

输出AUC数据

勾选

输出ROC曲线数据

不勾选

输出PR曲线数据

不勾选

输出精确率数据

勾选

输出召回率数据

勾选

输出F1测量数据

不勾选

输出混淆矩阵数据

不勾选


表4-7 AUC曲线指标的“保存HDFS文件”节点参数配置样例

参数名称

样例值

文件目录

“/user/bank/output/”

文件名

AUC

文件格式

CSV

字段分隔符

“,”

允许覆盖

勾选


表4-8 精确率曲线指标的“保存HDFS文件”节点参数配置样例

参数名称

样例值

文件目录

“/user/bank/output/”

文件名

Precision

文件格式

CSV

字段分隔符

“,”

允许覆盖

勾选


表4-9 召回率曲线指标的“保存HDFS文件”节点参数配置样例

参数名称

样例值

文件目录

“/user/bank/output/”

文件名

Recall

文件格式

CSV

字段分隔符

“,”

允许覆盖

勾选


表4-10 “保存模型”节点参数配置样例

参数名称

样例值

模型路径

“/user/bank/output/”

模型文件名

RandomForest_bank

允许覆盖

勾选


五、模型评估
步骤1       完成工作流的构建后,单击画布左上角的运行按钮,运行改工作流。
步骤2       工作流运行完毕后,右键单击“分类模型评估”节点,可查看各分类性能的评价指标值。

  • 评估曲线面积如表5-1所示。


表5-1 PR曲线和ROC曲线面积

PR曲线下方的面积

ROC曲线下方的面积(AUC)

0.5220767326479612

0.9421892150965534


  • 精确率指标的值如表5-2所示。


表5-2 精确率指标的值

分类阈值

精确率

1.0

0.8857236842105263

0.9

0.884340821271858

0.8

0.883664661260**9

0.7

0.8826943140323422

0.6

0.8817225253312548

0.5

0.8811157131762879

0.4

0.8810093820769977


  • 召回率指标的值如表5-3所示。


表5-3 召回率指标的值

分类阈值

召回率

1.0

0.9887632197414806

0.9

0.9917009400705052

0.8

0.9924353701527615

0.7

0.9941980023501763

0.6

0.9969888366627497

0.5

0.9999265569917744

0.4

1.0


六、模型应用

       完成模型训练时候,将训练后的模型使用“保存模型”节点保存起来。在模型应用阶段,新建一个新的工作流中,并使用“读取模型”节点读取已训练好的模型。模型应用的工作流如图6-1所示。通过“读取HDFS文件”节点导入待预测的数据集,通过“模型应用”节点,把预测结果保存在“保存HDFS文件”节点。


图6-1 模型应用工作流


更多内容,请参见MLS服务帮助中心http://support.huaweicloud.com/mls_gls/index.html)。

jiemian.jpg

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。