如何开发预测类AI应用
预测类AI应用通过分析历史数据,对未来的数据进行预测,有助于更好地制定业务决策。
场景描述
根据用户访问某网站产品网页的数据,分析用户访问页面的平均退出率值。平均退出率高,说明该页面对用户的吸引不大;相反,则说明该页面产品有较大吸引力。分析影响用户访问页面的平均退出率值的相关字段,根据分析结果预测相关字段取其他值时的平均退出率值。
前提条件
- 参考如何登录经典版环境配置中操作,登录AstroZero经典版环境配置。
- 在左侧导航栏中,选择“系统管理 > 数据处理 > 数据导入”,单击“新建”,导入对象依赖的选项列表数据包“picklist.zip”(单击下载链接获取该包)。
- 预测前,需要准备好预测对象“aienable__onlineshopperintension__CST”及预测字段,预测字段的数据类型要求为数字、币种金额、百分比、复选框、选项列表或选项列表(多项选择)。
本节示例场景下请参考如下方法导入对象元数据:在AstroZero管理中心左侧导航栏中,选择“系统管理 > 数据处理 > 元数据导入”,单击“新建”,导入元数据包“预测类AI应用对象元数据表.zip”(单击下载链接,获取该包)。
表1 aienable__onlineshopperintension__CST对象说明 字段标签
字段名称
数据类型
字段描述
Administrative
aienable__Administrative__CST
数字
访问者访问的有关账户管理的页面数
ExitRates
aienable__ExitRates__CST
数字
访问者访问页面的平均退出率值
BounceRates
aienable__BounceRates__CST
数字
访问者访问页面的平均跳出率值
ProductRelated_Duration
aienable__ProductRelatedDuration__CST
数字
访问者在产品相关页面上花费的总时间(以秒为单位)
ProductRelated
aienable__ProductRelated__CST
数字
访问者访问的有关产品相关页面的页面数
Informational_Duration
aienable__InformationalDuration__CST
数字
访问者在信息页面上花费的总时间(以秒为单位)
Informational
aienable__Informational__CST
数字
访问者访问的有关网站、通讯和购物网站地址信息的页面数
Administrative_Duration
aienable__AdministrativeDuration__CST
数字
访问者在账户管理相关页面上花费的总时间(以秒为单位)
TrafficType
aienable__TrafficType__CST
选项列表
访问者到达网站的流量来源(例如横幅、短信、直接)
Region
aienable__Region__CST
选项列表
访问者开始会话的地理区域
Browser
aienable__Browser__CST
选项列表
访客浏览器
OperatingSystems
aienable__OperatingSystems__CST
选项列表
访客操作系统
Month
aienable__Month__CST
选项列表
访问日期的月份值
SpecialDay
aienable__SpecialDay__CST
数字
网站访问时间与特殊日子的接近程度
PageValues
aienable__PageValues__CST
数字
访问者访问页面的平均页面价值
Revenue
aienable__Revenue
选项列表
标识客户最终是否进行了交易
Weekend
aienable__Weekend
选项列表
指示访问日期是否为周末的布尔值
VisitorType
aienable__VisitorType
选项列表
访客类型为“新访客”、“回访者”和“其他”
- 已准备好用于分析的历史数据,其中可以分析的有效数据要求不低于50条。
本节示例场景下请参考如下方法导入数据:在AstroZero管理中心左侧导航栏中,选择“系统管理 > 数据处理 > 数据导入”,单击“新建”,导入数据包“预测类AI应用数据样例.zip”(单击下载链接,获取该包)。
创建预测类AI应用
- 参考如何进入经典开发环境中操作,登录经典版开发环境。
- 在 页签中,单击“AI应用”。
- 单击“创建场景式AI服务”,设置AI应用名称、描述信息(可选),选择“预测服务”类型,单击“确定”。
- 选择要预测的对象“aienable__onlineshopperintension__CST”和字段“aienable__ExitRates__CST”,单击“下一步”。
支持预测的字段数据类型为:数字、币种金额、百分比、复选框、选项列表、选项列表(多项选择)。
图1 选择预测字段
- 选择与预测结果相关的字段,保持默认,单击“下一步”。
可以在预测结果所在的对象中选择和预测的结果有关的字段,也可以从与该对象存在多对一关联关系的对象中选择。根据选择的字段与训练数据集,系统将自动学习它们与预测结果之间的相关性。
- 单击“检查数据”,查看可用数据记录数是否足够,如图2所示,表示满足要求,单击“下一步”。
默认会检查当前环境中5选择字段的所有数据,有效数据会进行计数,至少需要50条有效数据用于训练。系统也支持通过设置筛选条件使用指定行数据进行训练。选择“指定行”,单击“+添加条件”可设置筛选条件。
当训练的可用数据不满足记录数要求时,可参考如何使用布局增删改查对象数据增加有效数据,再次单击“检查数据”。
- 检查配置是否正确,单击“开始训练”。
系统将根据数据训练预测模型,通常需要花费几分钟,请耐心等待。
- 查看此训练相关的详细信息,包括性能评估、影响因子及各影响力,单击“发布”。
如下图所示,状态为“已发布”,表示场景式AI服务发布成功。
在服务编排中使用AI服务
- 预测模型发布后,在图3中单击“使用”,可使用该预测模型进行预测。
系统支持使用服务编排或者脚本来调用预测服务。
- 选择使用该预测服务的应用,保持默认所选页签“在Flow中使用”,单击“开发”。
系统会自动为所选应用创建好“AIExample”文件夹和归属于该文件夹的服务编排。
- 在弹出的服务编排编辑页面查看如下信息。
- 在页面右侧选择,在全局上下文页面查看到系统已自动创建如下变量。
图5 查看变量
表2 变量说明 变量名
类型
描述
dataInputs
任意
输入参数。
resCode
文本
返回码,如果返回“0”代表请求成功。
resMsg
文本
返回消息,如果成功状态,通常会返回“成功”,其他情况会返回具体的错误信息。
result
任意
调用预测服务请求返回的预测字段取值。
- 查看整个服务编排的入参、出参。
图6 查看入参出参
- 选择预测服务图元,查看配置信息。
图7 图元配置
- 在页面右侧选择,在全局上下文页面查看到系统已自动创建如下变量。
- 单击编辑器上方的,保存服务编排。
- 保存成功或,单击编辑器上方的,运行服务编排。
- 输入入参,入参可从图4中“输入参数详情”区域,单击获取,给入参即相关字段配上测试值。
{ "dataInputs": { "aienable__AdministrativeDuration__CST": "222", "aienable__Administrative__CST": "221", "aienable__BounceRates__CST": "118", "aienable__InformationalDuration__CST": "1144", "aienable__Informational__CST": "112", "aienable__PageValues__CST": "11", "aienable__ProductRelatedDuration__CST": "12", "aienable__ProductRelated__CST": "11", "aienable__SpecialDay__CST": "11", "aienable__Browser__CST": "123", "aienable__Month__CST": "123", "aienable__OperatingSystems__CST": "123", "aienable__Region__CST": "123", "aienable__Revenue__CST": "123", "aienable__TrafficType__CST": "122", "aienable__VisitorType__CST": "111", "aienable__Weekend__CST": "111" } }
输出如下结果,表示调用预测服务成功,输出的“value”值为预测字段“aienable__ExitRates__CST”的预测值。
{ "interviewId": "002N000000pLp8qlHHQ8", "outputs": { "resCode": "0", "resMsg": "成功", "result": [{ "value": 0.1666532122219126 }] } }
- 单击编辑器上方的,启用服务编排。
在脚本中使用AI服务
- 预测模型发布后,在图3中单击“使用”,可使用该预测模型进行预测。
系统支持使用服务编排或者脚本来调用预测服务。
- 选择使用该预测服务的应用,选择页签“在Script中使用”,单击“开发”。
系统会自动为所选应用创建好调用该AI的脚本,代码示例如下:
import * as aienable from 'aienable'; export class Input { @action.param({ type: "Any", required: false, description: "name" }) name: string; // name为已发布的预测/推荐服务名称 @action.param({ type: "Any", required: false, description: "input" }) dataInputs: JSON; } export class Output { @action.param({ type: "Any" }) result: JSON; } export class testAIEnable { @action.method({ input: "Input", output: "Output", description: "do a operation" }) run(input: Input): void { let client = aienable.newClient("prediction_services") let result = client.predict(input.name, input.dataInputs); console.log(result) } }
- 单击编辑器上方的,保存脚本。
- 保存成功后,单击编辑器上方的,运行脚本。
- 在页面底部“输入参数”页签,输入请求参数,可从图8中“输入参数详情”区域,单击获取,给入参即相关字段配上测试值。
- 单击测试窗口右上角的,执行脚本。
{ "name": "test_01", "dataInputs": { "aienable__AdministrativeDuration__CST": "222", "aienable__Administrative__CST": "221", "aienable__BounceRates__CST": "118", "aienable__InformationalDuration__CST": "1144", "aienable__Informational__CST": "112", "aienable__PageValues__CST": "11", "aienable__ProductRelatedDuration__CST": "12", "aienable__ProductRelated__CST": "11", "aienable__SpecialDay__CST": "11", "aienable__Browser__CST": "123", "aienable__Month__CST": "123", "aienable__OperatingSystems__CST": "123", "aienable__Region__CST": "123", "aienable__Revenue__CST": "123", "aienable__TrafficType__CST": "122", "aienable__VisitorType__CST": "111", "aienable__Weekend__CST": "111" } }
输出如下日志,表示调用预测服务成功,输出的“value”值为预测字段“aienable__ExitRates__CST”的预测值。
- 单击编辑页面上方的,启用脚本。