本文介绍如何将对象存储OSS里面的数据作为PAI的训练样本。
本文由 龙临@阿里云 提供,仅供参考。
背景信息
本文通过OSS与PAI的结合,为一家传统的文具零售店提供决策支持。本文涉及的具体业务场景(场景与数据均为虚拟)如下:
一家传统的线下文具零售店,希望通过数据挖掘寻找强相关的文具品类,帮助合理调整文具店的货架布局。但由于收银设备陈旧,是一台使用XP系统的POS收银机,可用的销售数据仅有一份从POS收银机导出的订单记录(csv格式)。本文介绍如何将此csv文件导入OSS,并连通OSS与PAI,实现商品的关联推荐。
操作步骤
数据上传至Bucket。
以上传文件为Sample_superstore.csv,上传至华东1(杭州)地域下的目标存储空间examplebucket为例。
构造Sample_superstore.csv文件数据样例。
order_id,order_date,customer_id,item,sales,quantity 1,20240101,1,aa,10,100
将Sample_superstore.csv文件上传至examplebucket。具体操作,请参见简单上传。
连通OSS和PAI。
在华东1(杭州)地域新建工作流。具体操作,请参见新建自定义工作流。
单击新建的工作流,然后在左侧导航栏选择
。双击读CSV文件组件,在右侧的读CSV文件组件面板的参数设置页签,文件路径设置为
oss://examplebucket/Sample_superstore.csv
,Schema设置为order_id string,order_date string,customer_id string,item string,sales string,quantity string
,打开是否忽略第一行数据开关,其他参数保留默认配置。右键单击读CSV文件组件,然后单击执行该节点。
等待执行完成后,右键单击读CSV文件组件,然后单击
。在组件下方,查看表信息。数据预览仅支持1000条记录。如果需要查看全表,请按照页面指引前往DataWorks。
数据探索流程
本文所用的主要算法组件为协同过滤。有关该组件的详细用法,请参见协同过滤做商品推荐。
本案例中的数据探索流程如下:
本案例按8:2的比例将源数据拆分为训练集和测试集,其中一个订单中可能有多个item,故ID列选择order_id,保证含有多个item的订单不会被拆分,如下图所示:
本案例中共有17个产品item。通过协同过滤算法组件,取相似度最高的item,结果如下表:
结论
通过机器学习,我们发现“纸张”与“订书器”二者的相似度较高,且与其它产品也有较高的相似度。
对于这家文具零售店来说,根据此数据发现可以有两种布局货架的方式:
纸张和订书器货架放在最中间,其它产品货架呈环形围绕二者摆放,这样无论顾客从哪个货架步入,都可以快速找到关联程度较高的纸张和订书器。
将纸张和订书器两个货架分别摆放在文具店的两端,顾客需要横穿整个文具店才可以购买到另外一样,中途路过其他产品的货架可以提高交叉购买率。当然,此布局方式牺牲了用户购物的便利性,实际操作中应保持慎重。