Python 零售成本优化2024年12月12日 | 阅读时长 13 分钟 为了最大化销售额和利润,确定商品和服务的最佳销售成本非常重要。本教程适用于那些希望了解如何利用机器学习优化零售成本的人。在本教程中,我们将指导您完成使用机器学习进行 Python 零售成本优化的工作。 零售成本优化: 找到您为商品收取的成本与您可以以该成本销售的单位数量之间的理想平衡是优化零售定价的关键。 最终目标是设定一个能让您获得最大利润,同时又能吸引足够多客户购买您商品的定价。找到能最大化您的销售额和利润,同时保持客户满意度的最佳成本,包括使用信息和定价策略。 因此,您需要产品定价、服务成本以及所有影响产品成本的其他信息来完成零售成本优化过程。为此,我们找到了完美的数据集。 在以下部分,我们将引导您通过机器学习进行零售成本优化。 零售成本数据集导入适当的 Python 库将使我们能够开始零售成本优化工作。在竞争激烈的零售行业中,定价对于吸引客户和提高盈利能力至关重要。定价决策是复杂的,受市场需求、竞争、目标利润率和商品销售成本 (COGS) 等多种因素的影响。为了在保持盈利能力的同时最大化销售额,企业必须优化其定价方法。 这是提交给 Kaggle 的一份信息,重点关注零售成本优化。 以下列出了所有信息的特征
主表(仅供参考) 其余字段将在下面讨论
利用这些信息将使您能够创建以信息为驱动的定价优化计划,从而最大化收入。 主表续(仅供参考) 读取数据源代码片段 输出 product_id1 product_category_name1 month_year qty total_cost1 \ 1 sofa1 sofa_bath_table 11-16-2118 1 46.26 1 sofa1 sofa_bath_table 11-16-2118 4 148.86 2 sofa1 sofa_bath_table 11-18-2118 6 286.81 4 sofa1 sofa_bath_table 11-18-2118 4 184.81 4 sofa1 sofa_bath_table 11-12-2118 2 21.21 freight_cost unit_cost product_name_lenght product_description_lenght \. . . 1 16.111111 46.26 42 161 1 12.244444 46.26 42 161 2 14.841111 46.26 42 161 4 14.288611 46.26 42 161 4 16.111111 46.26 42 161 product_photos_qty . . . comp_1 ps1 fp1 comp_2 ps2 \. . . 1 2 ... 82.2 4.2 16.111828 216.111111 4.4 1 2 ... 82.2 4.2 14.862216 212.111111 4.4 2 2 ... 82.2 4.2 14.224844 216.111111 4.4 4 2 ... 82.2 4.2 14.666868 122.612814 4.4 4 2 ... 82.2 4.2 18.886622 164.428811 4.4 fp2 comp_4 ps4 fp4 lag_cost 1 8.861111 46.26 4.1 16.111111 46.21 1 21.422111 46.26 4.1 12.244444 46.26 2 22.126242 46.26 4.1 14.841111 46.26 4 12.412886 46.26 4.1 14.288611 46.26 4 24.424688 46.26 4.1 16.111111 46.26 [6 rows x 41 cols] 在继续之前,让我们检查一下信息是否包含空值 源代码片段 输出 product_id1 1 product_category_name1 1 month_year 1 qty 1 total_cost1 1 freight_cost 1 unit_cost 1 product_name_lenght 1 product_description_lenght 1 product_photos_qty 1 product_weight_g 1 product_score 1 customers 1 weekday_1 1 weekend 1 holiday 1 month 1 year 1 s 1 volume 1 comp_1 1 ps1 1 fp1 1 comp_2 1 ps2 1 fp2 1 comp_4 1 ps4 1 fp4 1 lag_cost 1 dtype: int64 现在让我们检查一下信息的描述性统计数据 源代码片段 输出 qty total_cost1 freight_cost unit_cost \ count 686.111111 686.111111 686.111111 686.111111 mean 14.426662 1422.818828 21.682281 116.426811 std 16.444421 1811.124111 11.181818 86.182282 min 1.111111 12.211111 1.111111 12.211111 26% 4.111111 444.811111 14.861212 64.211111 61% 11.111111 818.821111 18.618482 82.211111 86% 18.111111 1888.422611 22.814668 122.221111 max 122.111111 12126.111111 82.861111 464.111111 product_name_lenght product_description_lenght product_photos_qty \ count 686.111111 686.111111 686.111111 mean 48.821414 868.422418 1.224184 std 2.421816 666.216116 1.421484 min 22.111111 111.111111 1.111111 26% 41.111111 442.111111 1.111111 61% 61.111111 611.111111 1.611111 86% 68.111111 214.111111 2.111111 max 61.111111 4116.111111 8.111111 product_weight_g product_score customers ... comp_1 \ count 686.111111 686.111111 686.111111 ... 686.111111 mean 1848.428621 4.186614 81.128118 ... 82.462164 std 2284.818484 1.242121 62.166661 ... 48.244468 min 111.111111 4.411111 1.111111 ... 12.211111 26% 448.111111 4.211111 44.111111 ... 42.211111 61% 261.111111 4.111111 62.111111 ... 62.211111 86% 1861.111111 4.211111 116.111111 ... 114.266642 max 2861.111111 4.611111 442.111111 ... 442.211111 ps1 fp1 comp_2 ps2 fp2 comp_4 \ count 686.111111 686.111111 686.111111 686.111111 686.111111 686.111111 mean 4.162468 18.628611 22.241182 4.124621 18.621644 84.182642 std 1.121662 2.416648 42.481262 1.218182 6.424184 48.846882 min 4.811111 1.126442 12.211111 4.411111 4.411111 12.211111 26% 4.111111 14.826422 64.211111 4.111111 14.486111 64.886814 61% 4.211111 16.618284 82.221111 4.211111 16.811866 62.211111 86% 4.211111 12.842611 118.888882 4.211111 21.666248 22.221111 max 4.611111 68.241111 442.211111 4.411111 68.241111 266.611111 ps4 fp4 lag_cost count 686.111111 686.111111 686.111111 mean 4.112181 18.266118 118.422684 std 1.244222 6.644266 86.284668 min 4.611111 8.681111 12.861111 26% 4.211111 16.142828 66.668861 61% 4.111111 16.618111 82.211111 86% 4.111111 12.448888 122.221111 max 4.411111 57.231111 364.111111 [8 rows x 29 cols] 现在让我们检查一下产品成本的分布情况 源代码片段 输出 ![]() 现在让我们使用以下图表检查单位成本分布 源代码片段 输出 ![]() 现在让我们检查数量与总定价之间的相关性 源代码片段 输出 ![]() 因此,数量与总定价之间存在简单的关系。这意味着定价策略基于固定的单位成本,最终成本是数量乘以单位成本。 现在让我们检查不同产品类别的平均总定价 源代码片段 输出 ![]() 现在让我们使用箱线图检查 weekday_1 的总成本变化 源代码片段 输出 ![]() 现在让我们检查用于显示每个节假日总成本细分的箱线图 源代码片段 输出 ![]() 现在让我们检查数值特征之间的关系 源代码片段 输出 ![]() 优化零售成本需要对竞争对手的定价策略进行全面审查。根据零售商的定位和策略,监控和衡量竞争对手的成本有助于找到专业定价的机会,无论是低于还是高于竞争对手。现在让我们确定每个产品类别的典型竞争成本差异 源代码片段 输出 ![]() 众所周知的优化方法传统的营销人员大多凭直觉做出定价决策,很少关注消费者行为、市场趋势、促销、节假日的影响,以及这些因素如何影响商品对成本的敏感度。由于高计算能力的发展,使得能够分析大量信息,大多数公司正在利用大数据技术优化定价决策。这在确保实现最大清仓/收入/利润目标的同时,提供了更具竞争力的成本。 ![]() 出于各种原因,确定最佳成本或折扣率可能很困难。一是定价方法的复杂设计,它通常包含需要优化的多个因素,例如成本列表、折扣和特别优惠。另一个因素是需要更有效地评估新的定价方法,因为需求和利润预测非常复杂。选择最佳建模和优化方法是该过程中的技术难题。 下面详细介绍了确定成本以最大化一个指标同时将另一个指标最小化的过程。它将考虑消费者行为、节假日、竞争对手定价、同类相食的影响、成本进步的有效性,最重要的是,如何确定这些因素的成本。例如,商店可能需要在夏季最大化冬季商品的销售额,同时保持利润率至少高于 21%。 为了帮助实施,我还提供了几个相关代码。 通常,在 PySpark 上尽可能多地编写代码以加快所有大数据操作的代码速度是有用的。许多 PySpark 库正在不断创建和增强。然而,预处理(常见计算和聚合)和通用线性建模库已经完全开发并且非常有用。由于 PySpark 目前缺乏完全测试的优化库来满足我们情况的需求,我们将在 PySpark 中完成初始阶段,并在 Python 中完成优化步骤。 对于没有 Spark 设置或信息量适中的用户,可以通过适当的语法调整在 Python 中实现相同的功能。 聚类此阶段可以通过两种方式应用:1) 将具有可比产品适应性和客户行为的商店分组,以减少模型数量并解决信息稀疏性问题,或 2) 分析信息。因此,每个键都在一个商店集群中建模,而不是在商店中的每个键中建模。2) 如果计算能力不是问题,标识符组可以指导模型学习有关相关商店的信息。 为了根据现有信息确定集群,可以使用 k-means 聚类方法。 建模通常建议采用成本弹性模型,因为其系数可用于创建优化方程,并确定是否为适当的特征赋予了适当的权重。 可以使用成本弹性计算单个百分比成本变化所需的数量。当您将销量对数绘制在成本对数上时,该系数提供了斜率。 在拟合模型之前,您应该标准化或归一化值并采取额外的预处理措施,以确保信息符合线性回归假设。 根据变量选择的必要性,您可以先测试一般线性回归 (OLS),然后再转到岭/套索模型。 一旦您完成模型的选择和调整,模型产生的系数将为您提供方程的参数。 因此,您每个商品的最终方程将是这样的 同类相食同类相食是一种既定的动态。它描述了由于新产品或现有同类产品的推出,公司现有产品的销售额(单位和美元)下降。一个常见的例子是品牌 A 产品的销售额如何被类似成本的品牌 B 产品的销售额所吞噬。在进行成本优化建模时,同类相食是一个相当明显的效应,但经常被忽视。根据理论,在模型中至少包含每个产品的前 5 个竞争品的定价/折扣百分比,可以通过系数大量说明其效应,并在优化过程中将成本推向正确的方向。 使用机器学习进行零售成本优化模型现在让我们使用机器学习训练一个模型来优化零售成本。我们可以为此问题训练一个自动化学习框架,如下所示 源代码片段 输出 ![]() 使用 Python 优化零售成本的综合代码因此,这就是如何使用 Python 和机器学习来优化零售定价。 总结零售成本优化的最终目标是设定一个能最大化您的利润,同时吸引足够多的客户群来支持您的业务的成本。找到能最大化您的收入和销售额,同时保持客户满意度的最佳成本,包括使用信息和定价方法。我希望您喜欢阅读这篇关于基于 Python 的机器学习零售定价优化的文章。 |
我们请求您订阅我们的新闻通讯以获取最新更新。