新闻 / 人工智能技术

2020 年 11 月 25 日
在 Artefact,我们是如此法国,以至于我们决定将机器学习应用于羊角面包。本文是两篇文章中的第一篇,介绍了我们如何决定使用 Catboost 来预测 “羊角面包 ”的销售情况。影响销售额的最重要特征是最近一周的销售额、产品是否在促销以及价格。我们将向您介绍一些不错的功能工程,包括蚕食以及为什么有时需要更新目标变量。.

是什么?

在 Artefact,我们是如此法国,以至于我们决定将机器学习应用于羊角面包。本文是两篇文章中的第一篇,介绍了我们如何决定使用 Catboost 来预测 “羊角面包 ”的销售情况。影响销售额的最重要特征是最近一周的销售额、产品是否在促销以及价格。.

我们将向您介绍一些不错的功能工程,包括蚕食以及为什么有时需要更新目标变量。我们选择预测准确率和 biais 作为评估指标。第二篇文章将介绍我们如何将该模型投入生产,以及 ML Ops 的一些最佳实践。.

为了谁?

  • Data 科学家、ML 工程师或 Data 爱好者

背景

模型开发

现在,我们有了一个明确的问题和一些要实现的目标,我们终于可以开始在笔记本中编写一些漂亮的 python 代码了--让我们开始享受乐趣吧!

Data 申请

与任何 data 科学项目一样,一切都始于 data。根据经验,我们强烈建议尽快申请 data。不要羞于提出大量的 data,对于每个 data 来源,一定要确定一个参考者,一个您可以轻松联系并询问有关 data 收集或 data 结构的问题的人。.

由于召开了不同的会议,我们得以列出我们可以使用的 data 的清单:

  • 交易 data,包括产品价格。.
  • 促销:未来所有促销活动及其相关价格的列表。.
  • 产品信息:与产品有关的各种特征。.

探索性 Data 分析(EDA)和异常值检测

Image for post

从销售预测到最佳销售预测

一项挑战促使我们更新目标变量。有时,由于意外影响或预测失误,部门预计下班前会出现产品短缺。这时就会出现两种现象:顾客找不到自己的产品,就什么也不买,或者购买类似的商品。根据 data 的历史数据,我们推断出一些分布规律(基本统计),帮助我们将这种影响模型化,并更新我们的目标变量,以便不预测历史销售额,而是预测特定产品的最佳销售额。.

目标变量的更新很棘手,因为很难知道更新是否有意义。您是真的提高了 data 的质量,还是使其变得更糟?量化我们的影响的一种方法是,提取没有缺货的销售额,制造虚假短缺,例如,删除下午 5 点或 6 点之后的所有销售额,然后尝试重建销售额。这种方法可以帮助我们回到一个可以客观评估的经典监督问题。.

因此,我们能够预测最佳销售额,并避免我们的算法学习短缺模式。.

我们的模型

在对 data 进行适当清洁后,我们终于可以测试和试用几款机型了。.

Image for post

一种模式与多种模式

总而言之,我们使用了一种算法:Catboost)来预测每种产品和每家商店的所有 10,000 个时间序列。但是,如果某件商品或某家商店的销售模式非常特别呢?算法会识别并学习这种模式吗?

这些问题让我们想到,我们是否应该对产品、商店进行分组,并为每个分组训练一种算法?即使使用决策树算法可以应对这一挑战,我们也发现在某些特定情况下存在局限性。.

提升算法是一种迭代算法,以弱学习者为基础,将重点放在其最大的错误上。这显然有点过于简化,但有助于我指出其局限性之一。如果您没有将目标变量标准化,那么您的算法将 “只 ”关注误差大的产品,而误差大的产品更有可能是销量最大的产品。因此,算法可能会更关注销售量大的产品或商店。.

我们并没有找到解决这一难题的完美方法,但通过按产品系列或销售频率对产品/商店进行分组,我们看到了一些改进。.

如何评估我们的模型?

  1.  交叉验证

2.度量标准的选择:

Image for post

最后,给任何 data 项目一些建议

主要收获

对数字技术和 data marketing 感兴趣?

注册 Data Digest(Artefact 时事通讯),每月在您的收件箱中收到可行的建议、见解和意见。.

给我报名