场景
根据历史订单的退货情况,预测新订单是否被退货
这次利用ML .NET的数据分类
功能,将订单状态分为退货
、不退货
两种,计算每笔订单被退货、不被退货的概率
需要注意的是,这里是文本数据分类,使用数据分类,而之前完成的猫狗分类,需要使用图像分类
数据集
数据来自Amazon Seller - Order Status Prediction
描述:BL(Boss Leathers) 是一家小型皮革制品企业,最近开始在亚马逊上销售其产品。 目前,它在印度市场注册了大约 40 个 SKU。 在过去的几个月里,它因退货而蒙受了一些损失。 现在,BL 寻求帮助来预测新订单被拒绝的可能性。 这将有助于他们采取必要的行动,从而减少损失。
原始数据
数据如下
列名从左到右依次为唯一的亚马逊订单号order_no
、下订单的日期order_date
、买家姓名buyer
、收货城市ship_city
、收货州/联邦ship_state
、产品的唯一标识符sku
、产品描述description
、订购数量quantity
、支付的总金额item_total
、Boss Leathers 承担的运送物品的费用shipping_fee
、付款方式:货到付款与否cod
,最后一列是需要预测的结果,订单状态(退货、不退货)order_status
数据处理
这里需要对数据做一些处理,
sku可以去掉前缀SKU:
item_total和shipping_fee包含了货币单位,需要处理成数字
在cod
为空的单元格填上Not Cash On Delivery
,这样可以表示cod
是一个枚举类型,包括货到付款和非货到付款两种形式
得到了下图的数据
最后因为ML .NET的自动训练模型仅支持.csv,.txt,.tsv和SQL Server数据库,我将.xlsx的文件格式转换为.txt
训练模型
训练方案选择数据分类
训练环境选择本地CPU
数据
选择数据文件,加载数据
设置要预测的列为o