ML .NET 预测订单是否被退货
场景
根据历史订单的退货情况,预测新订单是否被退货
这次利用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
数据
选择数据文件,加载数据
设置要预测的列为order_status
设置特征字段的属性
开始训练
这里我们选择的时间越长,ML .NET可能会尝试更多的算法
从控制台可以看出来,10秒的训练时间,输出如下
自动选择SdcaMaximumEntropyMulti
模型
Experiment output folder: ......
| Trainer MicroAccuracy MacroAccuracy Duration #Iteration |
|0 SdcaMaximumEntropyMulti 0.9362 0.6000 1.4 0 |
|1 LightGbmMulti 0.9362 0.6000 1.5 1 |===============================================Experiment Results=================================================
------------------------------------------------------------------------------------------------------------------
| Summary |
------------------------------------------------------------------------------------------------------------------
|ML Task: Classification |
|Dataset: ......\TrainData\orders_data.txt|
|Label : order_status |
|Total experiment time : 2.88 Secs |
|Total number of models explored: 2 |
------------------------------------------------------------------------------------------------------------------| Top 2 models explored |
------------------------------------------------------------------------------------------------------------------
| Trainer MicroAccuracy MacroAccuracy Duration #Iteration |
|1 LightGbmMulti 0.9362 0.6000 1.5 1 |
|0 SdcaMaximumEntropyMulti 0.9362 0.6000 1.4 0 |
------------------------------------------------------------------------------------------------------------------|2 FastTreeOva 0.9362 0.6000 11.1 2 |
60秒的训练时间,输出如下
自动选择FastForestOva
模型
这里模型生成有点问题,需要手动添加引用Microsoft.ML.FastTree
Experiment output folder: ......
| Trainer MicroAccuracy MacroAccuracy Duration #Iteration |
|0 SdcaMaximumEntropyMulti 0.9362 0.6000 1.3 0 |
|1 FastForestOva 0.9363 0.7625 11.9 1 |
|2 SdcaMaximumEntropyMulti 0.9362 0.6000 2.2 2 |
|4 SdcaMaximumEntropyMulti 0.9362 0.6000 1.2 4 |
|5 SdcaLogisticRegressionOva 0.9362 0.6000 2.5 5 |
|6 LightGbmMulti 0.9362 0.6000 1.4 6 |
|7 SdcaLogisticRegressionOva 0.9362 0.6000 2.6 7 |
|8 FastTreeOva 0.9362 0.6000 11.2 8 |
|9 SdcaMaximumEntropyMulti 0.9362 0.6000 1.3 9 |
|10 LbfgsMaximumEntropyMulti 0.9362 0.6000 2.3 10 |
|11 LbfgsLogisticRegressionOva 0.9362 0.6000 3.4 11 |
|12 LbfgsMaximumEntropyMulti 0.9242 0.5938 2.4 12 |
|13 SdcaMaximumEntropyMulti 0.9362 0.6000 2.0 13 |
|14 LightGbmMulti 0.9362 0.6000 1.6 14 |
|15 SdcaMaximumEntropyMulti 0.9362 0.6000 1.9 15 |===============================================Experiment Results=================================================
------------------------------------------------------------------------------------------------------------------
| Summary |
------------------------------------------------------------------------------------------------------------------
|ML Task: Classification |
|Dataset: ......\TrainData\orders_data.txt|
|Label : order_status |
|Total experiment time : 49.15 Secs |
|Total number of models explored: 15 |
------------------------------------------------------------------------------------------------------------------| Top 5 models explored |
------------------------------------------------------------------------------------------------------------------
| Trainer MicroAccuracy MacroAccuracy Duration #Iteration |
|1 FastForestOva 0.9363 0.7625 11.9 1 |
|14 SdcaMaximumEntropyMulti 0.9362 0.6000 1.9 14 |
|13 LightGbmMulti 0.9362 0.6000 1.6 13 |
|12 SdcaMaximumEntropyMulti 0.9362 0.6000 2.0 12 |
|10 LbfgsLogisticRegressionOva 0.9362 0.6000 3.4 10 |
------------------------------------------------------------------------------------------------------------------|16 FastForestOva 0.9302 0.7316 12.8 16 |
评估
之后有一个简单的评估功能,可以迅速看一下这个模型的效果如何
最后ML .NET贴心的为我们准备了调用模型获得结果的示例代码,让我们可以快速开发
调用模型完成功能
写一个UI,输入数据,并预测是否会被退货
示例代码
OrderStatusPrediction
参考资料
Microsoft.ML.Trainers.FastTree 命名空间
官方machinelearning-samples
社区示例
ML .NET 预测订单是否被退货相关推荐
- ML之预测:玩转2018世界杯—采用机器学习预测小组赛、十六比赛、四决赛、半决赛、决赛以及世界杯总冠军的各个队伍
ML之预测:玩转2018世界杯-采用机器学习预测小组赛.十六比赛.四决赛.半决赛.决赛以及世界杯总冠军的各个队伍 导读 机器学习预测.玩转2018世界杯-采用机器学习预测小组赛.十六比赛. ...
- 企业ERP系统、电商erp、企业erp、智慧电商erp、工作台、销售管理、出库、退货、生产管理、生产订单、礼品、资产、员工、库存管理、仓库盘点、物品入库、采购管理、采购订单、采购退货、库存预警、供应商
企业ERP系统.电商erp.企业erp.智慧电商erp.工作台.销售管理.销售订单.出库.退货.生产管理.生产订单.礼品.资产.员工.库存管理.仓库盘点.物品入库.采购管理.采购订单.采购退货.库存预 ...
- SD中的销售订单和销售退货订单的应用对比
从业务应用角度,用户可以了解到SD中的销售订单和销售退货订单的处理方法的差异主要在于订单类型的选择上,其它方面的处理流程基本一致.在退货订单中,有的用户想象中是不是需要在订单中去定义一个数量或金额上的 ...
- 使用ML.NET预测纽约出租车费
有了上一篇<.NET Core玩转机器学习>打基础,这一次我们以纽约出租车费的预测做为新的场景案例,来体验一下回归模型. 场景概述 我们的目标是预测纽约的出租车费,乍一看似乎仅仅取决于行程 ...
- [转载] 使用神经网络和ml模型预测客户流失
参考链接: Keras中的深度学习模型-探索性数据分析(EDA) This story is a walk-through of a notebook I uploaded on Kaggle. Or ...
- SAP已发票校验采购订单退货 - 特殊业务
采购业务过程中,偶尔出现外购物料质量问题或采购订单价格输入错误等原因,需要在系统中做收货的冲销. 外购物料退回给供应商在不同的业务场景中,可能出现的移动类型有102.122.162甚至是601等. 1 ...
- 批量生成销售订单、退货订单
生成一般销售订单和退货订单所要使用的BAPI不同, 一般销售订单: BAPI_SALESORDER_CREATEFROMDAT2 退货订单: BAPI_CUSTOMERRETURN_CREATE 二者 ...
- sap 流程图 退货销售订单_销售订单_退货及退回客户(采用高级退货)
一.说明 客户退货,换货后再发给客户,通常方案用两张销售订单完成,一张退货订单加一张出货订单,两张订单通常关联性不强.但在启用高级退货(Advanced Returns)后,可用一张销售订单完成,操作 ...
- sap 流程图 退货销售订单_销售订单_退货入库及退款(采用高级退货)
一.说明 客户退货及退款,在通常方案需要两张销售订单完成,一张退货一张贷项凭证请求,两张订单均需手工维护县城通常关联性不强.但在启用高级退货(Advanced Returns)后,在创建退货订单时,系 ...
最新文章
- Android消息机制Handler用法
- 怎样使用Debussy+ModelSim快速查看前仿真波形
- 字节输出流的续写和换行
- 联合国再请马云出任要职
- 打开wmware没反应_白酒打开后能存放多久?
- js获取验证码倒计时60s(超简单)
- 织梦php me,GitHub - czmz/DedeCMSv5: 中国专业的PHP网站内容管理系统-织梦内容管理系统...
- 【python】59个Python使用技巧,从此你的Python与众不同(二)
- 《完全写作指南》读书笔记
- 人世轮回,无人相怜--观《艺妓回忆录》有感
- 开源软件的法律风险及防控
- readiness与liveness
- 【Web项目测试访问遇到404错误的相关解决办法】
- 计算机科学引论2021英文,计算机科学引论= Computer Science Illuminated : 第3版 : 英文...
- Jenkins部署项目时,git报错fatal: index file smaller than expected
- OATS-正交表测试策略
- PHP Startup: Unable to load dynamic library 解决办法
- java alter session_java程序里面可以执行alter session之类的语句?
- java 扫描器的使用练习
- 编程代码:用C语言来实现下雪效果,这个冬天,雪花很美
热门文章
- java 扫雷注释_swing 扫雷简单版实现代码-附注释
- 机器人组装_建立自己的机器人手臂-组装
- matlab 关闭硬件加速,matlab常见问题集
- VS2019编译OCCT
- 智能车电磁环岛处理方法_UV漆与TPU智能手表套附着力差解决方法之TPU处理剂
- 【github】常用Github项目类库
- Nickel 28公布Ramu业务2021年第一季度经营业绩
- 【雅思】雅思需要购买和准备的学习资料
- 【数论知识】1:和1-n中的所有质数有关的算法(朴素版+升级版)
- linux命令怎么输入乘号,linux expr命令参数及用法详解---linux手工命令行计数器