银行存款预测(使用自动学习实现预测分析)
银行中常见一种业务:根据客户特征(年龄、工作类型、婚姻状况、文化程度、是否有房贷和是否有个人贷款),预测客户是否愿意办理定期存款业务。
现在您可以使用ModelArts平台上的自动学习功能,预测某个客户是否会办理存款业务。自动学习功能的使用流程如下所示:
- 准备数据:下载数据集并上传至华为云OBS中。
- 创建预测分析项目:基于已有的数据集,创建预测分析项目。
- 训练模型:预览数据并选择训练目标,然后启动模型训练。
- 部署模型:将训练好的模型部署为在线服务,并测试预测结果。
准备数据
本示例使用的数据集来自UCI的Machine Learning Repository,数据集介绍请参见Bank Maketing Data Set。数据集的基本信息可参见表1和表2,您可以从Github获取数据集并上传至OBS中。
字段名 |
含义 |
类型 |
描述 |
|---|---|---|---|
attr_1 |
年龄 |
Int |
表示客户的年龄。 |
attr_2 |
职业 |
String |
表示客户所从事的职业。 |
attr_3 |
婚姻情况 |
String |
表示客户是否结婚或已离异。 |
attr_4 |
教育情况 |
String |
表示客户受教育的程度。 |
attr_5 |
房产情况 |
String |
表示客户名下是否有房产。 |
attr_6 |
贷款情况 |
String |
表示客户名下是否有贷款。 |
attr_7 |
存款情况 |
String |
表示客户名下是否有存款。 |
attr_1 |
attr_2 |
attr_3 |
attr_4 |
attr_5 |
attr_6 |
attr_7 |
|---|---|---|---|---|---|---|
31 |
blue-collar |
married |
secondary |
yes |
no |
no |
41 |
management |
married |
tertiary |
yes |
yes |
no |
38 |
technician |
single |
secondary |
yes |
no |
no |
39 |
technician |
single |
secondary |
yes |
no |
yes |
39 |
blue-collar |
married |
secondary |
yes |
no |
no |
39 |
services |
single |
unknown |
yes |
no |
no |
- 从gitee下载ModelArts-Lab工程,并在“ModelArts-Lab”工程中的“\ModelArts-Lab-master\official_examples\Using_ModelArts_to_Create_a_Bank_Marketing_Application\data”目录下获取训练数据文件“train.csv”。
- 将“train.csv”文件上传至OBS,例如“test-modelarts/bank-marketing”。OBS上传文件的操作指导,请参见上传文件。
创建预测分析项目
- 在ModelArts管理控制台,在左侧导航栏中选择“自动学习”。
图1 进入自动学习
- 在“自动学习”页面,单击“预测分析”区域的“创建项目”。
- 进入“创建预测分析项目”页面,然后设置项目“名称”,并选择“训练数据”所在的OBS路径,本示例中,数据集路径为“test-modelarts/bank-marketing/train.csv”。最后,单击“创建项目”完成操作。系统自动跳转至“自动学习 > 数据标注”页面,如图2所示。
训练模型
- 在“自动学习 > 数据标注”页面中,预览数据并选择训练目标。此处训练目标是客户是否会办理存款(即“attr_7”),该列目标结果是“离散值”。训练目标选择完成后,单击“训练”。
图3 选择训练目标
- 在弹出的“训练设置”对话框中,选择训练使用的“计算规格”,单击“下一步”进入配置页,确认规格后单击“提交”开始模型训练。
训练时间相对较长,建议您耐心等待。如果关闭或退出此页面,系统仍然在执行训练操作。
图4 训练设置
- 在模型训练页面中,左侧的训练作业状态变为“已完成”时,表示训练作业已结束,且右侧“训练详情”将展现此训练作业相关的详细信息。
图5 训练结束
部署模型
- 在“模型训练”页面,在“版本管理”区域,单击“部署”,系统开始部署服务并自动跳转至“部署上线”页面。
- 在“版本管理”区域,当状态变为“运行中”时,表示服务已部署完成。您可以在预测区域,测试服务。
测试代码如下所示,如图6所示预测结果为“"predict": "no"”,表示此用户会不办理存款。
{ "data": { "count": 1, "req_data": [ { "attr_1": "34", "attr_2": "blue-collar", "attr_3": "single", "attr_4": "tertiary", "attr_5": "no", "attr_6": "no" } ] } }

