MaxCompute大数据计算服务中提供了机器学习平台,用户可基于该平台有效利用自己的数据,并从中发现价值。本文主要介绍从用户行为数据收集,到在机器学习平台中运算,最后将结果同步到RDS数据库中便于展示结果的一整个流程。本实验实现的目标是收集用户的操作行为数据,抽样一部分数据进行人工标注,标注结果为满意和不满意,用1和0表示,然后用机器学习平台对行为数据进行训练得到模型,最后以得到的模型基于用户行为预测用户对当前结果是否满意。该实践的创新之处在于借助DataHub和RDS以及任务运维将MaxCompute平台和本地项目结合起来,可自动实现模型预测。
1 用户行为数据收集
本实验用的阿里云的DataHub收集用户行为数据。DataHub可实时收集到用户产生的行为并实时同步到MaxCompute平台中。其主要流程如下(地址为datahub.console.aliyun.com):
1.1 创建项目
点击创建Project按钮弹出如下窗口:
输入自定义的项目名称点击创建即可。
点击查看可配置项目基本信息。
1.2 创建Topic
点击创建Topic,可配置同步到MaxCompute平台中哪个项目那张表的信息。其弹出的窗口如下:
有两种创建方式,直接创建和导入MaxCompute表结构。建议用第二种方式,该方式可直接导入MaxCompute中的表结构,不用自己再创建表。按提示完善信息即可创建完成Topic(提示:每个空都需要填,包括最后的备注,否则不能创建)。
1.3 配置完成
Topic创建完成,点击查看可进入下图页面,下图中已经收集了数据,点击数据抽样可查看收集的数据。Connectors中可查看连接到MaxCompute的信息。
2 机器学习平台
本实验用的逻辑回归算法对行为数据进行分类。第一步DataHub收集到数据并同步到MaxCompute中之后,即可对数据进行处理与计算。
2.1 数据预处理
DataHub收集的用户行为数据往往不符合机器学习平台的要求,此时需要先对数据做一些预处理操作。机器学习平台组件提供了数据预处理的各种组件。
为了能自动对收集的数据进行预处理,可在大数据开发套件中新建任务,设置其调度过程。其过程如下:
点击新建任务:
类型中有可设置需要进行的任务类型。其中创建机器学习任务是创建完成之后,选择在机器学习平台已创建的实验,然后设置调度配置,然后即可自动执行机器学习的实验。
2.2 模型训练
数据预处理完成之后,将数据写入下图中1所表示的数据表中,然后用机器学习的写数据组件读取数据,下图为数据训练过程:
上图中对数据特征进行了离散操作,然后采样部分数据用逻辑回归算法进行训练,采样部分数据进行测试,混淆矩阵可得到测试结果。
2.3 模型预测
当模型训练完成之后,即可将模型用来预测。上图中1表示模型训练数据表,2表示待预测数据表,3表示预测结果存放表。
3 预测结果同步到RDS数据库
3.1 创建数据源
大数据开发套件中的数据集成中可创建数据源,数据源的作用是将MaxCompute中的当前项目与某个数据源(如RDS数据库)联系起来:
点击新增数据源:
按要求填写即可创建成功。
3.2 同步数据到RDS数据库
在大数据开发套件的数据开发中,点击新建任务,创建数据同步类型的任务:
创建完成并按提示配置后如下:
点击保存之后,点击提交、测试运行即可将数据即时同步到RDS数据库中。
同步到RDS数据库之后,即可从数据库中获取预测结果并展示,这样就可将项目与MaxCompute平台结合起来。
4 任务运维
在任务运维中可设置MaxCompute中创建的各种任务的调度过程,即设置定时任务。而MaxCompute平台的各种组件,包括机器学习平台中的实验均可创建为任务,因此可用任务运维控制机器学习平台的实验自动运行。
5 总结
本文主要介绍了DataHub收集数据,MaxCompute平台处理数据,同步数据到RDS数据库展示数据的一整个流程。展示了如何获取项目中的行为数据,用MaxCompute进行处理,然后同步到RDS数据库中,项目再从RDS数据库中获取MaxCompute的处理结果。这样就将本地的项目与MaxCompute平台完美结合起来了。
#MaxCompute最佳实践#