Python数据分析与数据化运营:商品数据化运营2-应用场景与分析模型

浏览: 2540

作者介绍:宋天龙(TonySong),资深大数据技术专家,历任软通动力集团大数据研究院数据总监、Webtrekk(德国最大的网站数据分析服务提供商)中国区技术和咨询负责人、国美在线大数据中心经理。


本文来自《Python数据分析与数据化运营》配套书籍第6章节内容,机械工业出版社华章授权发布,未经允许,禁止转载!

此书包含 50个数据工作流知识点,14个数据分析和挖掘主题,8个综合性运营案例。涵盖了会员、商品、流量、内容4大数据化运营主题,360°把脉运营问题并贴合数据场景落地。

书籍购买链接:https://item.jd.com/12254905.html

课程学习链接:网站数据分析场景和方法——效果预测、结论定义、数据探究和业务执行https://edu.hellobi.com/course/221


往期回顾:Python数据分析与数据化运营:会员数据化运营1-概述与关键指标 

                 Python数据分析与数据化运营:会员数据化运营2-应用场景与分析模型

                 Python数据分析与数据化运营:会员数据化运营3-分析小技巧

                 Python数据分析与数据化运营:会员数据化运营4-“大实话”

                 Python数据分析与数据化运营:会员数据化运营5-案例:基于RFM的用户价值度分析

                 Python数据分析与数据化运营:商品数据化运营1-概述与关键指标


6.3 商品数据化运营应用场景

商品数据化运营的主要应用场景包括销售预测、库存分析、市场分析和促销分析。

6.3.1 销售预测

无论企业规模如何,销售预测都是销售管理非常重要的一环,也是做计划、管理、预算和目标的基础。销售预测主要应用的是销售预测场景,通过对历史数据的分析预测未来一段时间企业可能产生的销售额销售量订单金额等。典型场景例如

  • 未来一周会产生多少商品销售量
  • 如果给销售部门50000促销费用,预期能带来多少订单?
  • 下个月估计能产生多少毛收入?

通过销售预测能得到未来关于目标的预测数值,该预测值既可以用于评估相应的资源投入,也可以针对性做商品销售策划。

6.3.2 库存分析

库存分析是商品动销分析的关键点之一,也是商品销售的基础和前提。库存分析主要用解决以下几类问题:

  • 当前的商品结构如何?是否具有合理的广度深度组合?
  • 库存中的滞销商品金额有多少,滞销时间有多久?
  • 当前M商品的可用天数是否能满足销售预期,需要补货多少?
  • 平均商品库龄是多少,如何提升商品周转并降低库龄?
  • 如何设置安全库存警戒线?
  • 如何管理季节性库存商品,来满足季节性促销活动?
  • 如何找到大龄库存商品合理安排销售周期,防止商品过期、过季?
  • 如何找到商品的最佳库存位置,实现更高效率的分拣、包装和出库?

库存分析的关键找到脱销和滞销的平衡,能在不变的库存状态下,最大化满足商品周转并降低库存资金占用。

6.3.3 市场分析

商品数据化运营中的市场分析主要应用于对商品所在市场的规模、特点、容量、性质趋势等方面的宏观分析,主要侧重于解决以下几方面问题:

  • 公司要打造新产品,该产品的市场容量有多少?预期年销售量有多少?
  • 用户对于产品的关注点在哪里?最满意和最不满意点都分别是哪些?
  • 产品要上线,售价应该定在多少会比较合适?
  • 产品C市场竞争对手是谁他们各自具备哪些优势和不足?
  • P手机产品售价4800预计3月后售价是多少?
  • 北京的用户对于商品的预期需求跟上海地区有哪些差异?

商品市场分析既可以侧重于单个商品,也能侧重品牌、品类等更高聚合的维度,并且能从宏观角度评估所有商品本身以及所处市场的优劣得失

6.3.4 促销分析

促销分析是商品数据化运营应用最为广泛的场景之一,现在几乎每个企业形成了以促销销售的运营节奏。数据对于促销分析的主要应用包括以下几类场景

  • 制定打包和组合策略,使得用户单次购买商品金额最大化?
  • 制定商品向上销售策略,购买了家电的用户下次购买什么?
  • 促销资源分析明日商品活动的目标销售额是5000,预计需要多少促销费用?
  • 精准商品销售或推介,企业目前有10000商品需要清仓处理,如何快速销售出去?
  • 促销方式分析,不同的促销方式下,哪种最有利于销售提升并能使总体销售最大化,而不是全部商品都做促销?
  • 恶意促销订单、作弊订单的检测和分析当前订单中有哪些是疑似黄牛的订单?
  • 商品定价,针对M商品应该制定促销价是多少满足销售额最大化的需求?
  • 商品陈列分析,如何摆放不同的商品能促销连带销售的最大化?
  • 组合方式分析,大型活动时应该如何将不同的促销方式和折扣手段结合起来,以产生最大的活动收入?

促销分析涵盖的策略制定、实时监测、后期分析等各个场景都是商品运营非常关注的环节,也是数据产生量化价值的主要场景。

6.4 商品数据化运营分析模型

本节将介绍几个常用的商品分析模型,包括商品价格敏感度模型、新产品市场定位模型、销售预测模型、商品关联销售模型、异常订单检测模型商品规划的最优组合

6.4.1 商品价格敏感度模型

商品价格敏感度模型是指通过研究找到用户对于价格是否敏感以及敏感程度的价格杠杆利用价格敏感度模型可以辅助于销售定价,促销活动的折扣方式、参考价格、价格变动幅度等方面参考例如

  • 促销活动时是否应该包含M2商品
  • 商品M3提价100时,订单量会如何变化
  • 在商品详情页的参考价格应该多少才能让客户感觉到已经降价并触发下单动作
  • 满减、满返、跨品类用券等哪些方式最适合M4商品

商品价格敏感度分析可以通过种方式实现。

调研问卷

通过调研问卷的形式针对关注的品类商品做调研分析是比较通用的一种方法。这种方法可以获得品类详细信息,并且可以通过问卷设置不同的关注信息点,收集到的信息符合实际需求。

但是,当面临新的价格敏感度分析需求时,通常都需要重新开展调研分析工作这种方式实施起来周期较长且反馈结果较慢,另外,当要收集的商品信息较多时,可能很难获完整数据。

数据建模

通过数据建模的方式建立商品价格和销售之间的关系模型是研究价格敏感度的有效方法。这种方法实施起来相对简单:

首先收集不同价格下的销售数据价格敏感度模型需要基于不同价格下销售数据产生,因此需要商品运营部门针对性的做调价。这种调价动作根据需求的不同,可能是长期的,也可能是短期的。长期调价是一种自然状态为在一个较长周期内商品经历生命周期的不同阶段,并结合商品促销、打折等运营工作产生多种价格销售数据短期的调价更多的是为了采集数据产生

其次,数据建模分析。商品价格敏感度模型关注的主要是价格和销量之间的关系,可以用回归方法解决。在回归方法中,自变量中除了价格外,还需要包含其他两类信息

  • 商品信息,商品品类、上市时间、同期竞争对手价格、是否参与促销活动、促销方式、折扣力度、通用属性等。
  • 客户信息,客户性别、年龄、收入、学历、会员级别、历史订单量、品类偏好度、活跃度、价值度等。

之所以要将大量的商品信息和客户信息加入到回归模型中,是因为如果只针对价格和商品销售量做回归,那么价格本身能解释的商品销售量变化可能会非常有限,销量的变化还可能受到其他很多因素的影响,因此要在控制这些干扰因素的前提下做回归模型。

关于回归方法的选择,具体参照“4.2.5 如何选择回归分析算法

6.4.2 新产品市场定位模型

产品市场定位分析用于企业新生产或策划一款产品时,需要根据市场上现有的竞争对手产品情况做定位分析。该分析的目的是评估新产品哪些产品能形成竞品关系,可以针对性的找到与竞品的差异性优势,例如功能特点、使用周期、产品质量等,从而应用产品定价、市场宣传渠道推广等方面

产品市场定位分析可以通过基于相似度方法实现例如使用监督式的KNNK近邻模型的核心是通过对产品的数据与现有数据的比较,发现跟新产品相似的其他产品。通过KNN实现新产品市场定位分析步骤如下:

步骤1 数据准备。准备好要训练的数据集,由于这不是一个分类应用,因此数据集中只包含不竞品的特征变量即可,无需目标变量

步骤2 数据预处理。预处理过程根据数据集情况可能包括二值化标志转换、缺失值处理、异常值处理数据标准化等。需要注意的是,由于是基于距离的计算,分类和顺序变量需要做二值化转换,异常值(包括量纲和值的异常)都会对相似度产生重大影响。

步骤3 建立KNN模型并训练模型。直接使用NearestNeighbors方法建立模型后使用fit方法做训练。

步骤4 找到新产品最近的K相似产品。使用KNN模型kneighbors方法获得指定数量的K近邻。

如下是一段简单包含了核心步骤的示例

from sklearn.neighbors import NearestNeighbors # 导入NearestNeighbors库
X = [[0., 0.1, 0.6], [0., 1.5, 0.3], [1.2, 1.6, 0.5]] # 定义训练集,训练集包含3条记录,每个记录包含3个特征变量
neigh = NearestNeighbors(n_neighbors=1) # 建立非监督式的KNN模型对象
neigh.fit(X) # 训练模型对象
new_X = [[1., 1., 1.]] # 要预测的新产品数据
print(neigh.kneighbors(new_X)) # 打印输出新产品最相似的训练集产品

上述代码执行后返回如下信息:

(array([[ 0.80622577]]), array([[2]]))

其中第一个数字是与新产品数据最相似的产品距离,第二个数字是对应最相似产品记录的索引值(注意索引值从0开始2表达第三个)

6.4.3 销售预测模型

销售预测模型根据历史的销售数据来预测未来可能产生的销售情况该模型常用于促销活动的费用申请、目标制定、活动策略等辅助支持。

销售预测模型通常要得到的结果为未来会产生多少销售量收入、订单量等具体数值,可通过时间序列回归分类三种方法实现。

  • 基于时间序列销售预测。使用时间序列做销售预测的方法常用于没有太多可用的自变量场景下,只能基于历史的销售数据做预测性分析。有关时间序列的更多话题,具体参照“4.6 时间序列分析
  • 基于回归做销售预测基于可控的特征变量建立回归模型来预测未来的销售情况是更常用的方法,有关回归模型更多内容请具体参照4.2 回归分析”。
  • 基于分类销售预测。分类方法是针对每个销售客户产生的是否购买的预测分类,然后基于能产生购买的预测分类做客单价、订单量和收入的分析。这是一种对于具体数值的变通实现思路。有关分类分析的更多内容,具体参照“4.3 分类分析

6.4.4 商品关联销售模型

商品关联销售模型主要用来解决哪些商品可以一起售卖或不能一起打包组合的问题。关联销售是商品销售的常态,也是促进单次销售收入拉升复购效果的有效手段。

商品关联销售模型的实现方式是关联类算法包括AprioriFP-GrowthPrefixSpanSPADEAprioriAllAprioriSome等,主要实现的是基于一次订单内的交叉销售以及基于时间序列的关联销售。

关联销售算法的实现步骤上与普通的监督式和监督式算法略有不同,原因是关联分析对于数据集的要求不同。一般包括种数据格式:

  • 一种是事务型交易数据,典型的数据格式是每个数据订单ID客户ID作为关联分析的参照维度,如果一个订单内有多少个商品,那么将会多个数据行记录。6-1
  • 第二种合并后的交易数据,数据格式每个数据行订单ID客户ID作为分析的参照维度,如果同一个订单内有多个商品,那么多个商品会被合并到一条记录6-2
  • 第三种真值表格数据,每个数据行是每个订单ID客户ID列是每个要关联项目的是否购买,通常以TF表示。6-3

6-1 事务型交易数据

image.png


6-2 合并后的交易数据

image.png


6-3 真值表格数据

image.png


以上三种数据格式中,第一种和第二种常见企业内部的源数据环境或数据仓库,第三种需要经过ETL处理得到,很多第三方工具可以提供这种数据形式。如果企业内不具备能够直接做关联分析的数据,则需要做对应处理。有关关联分析的更过内容具体参照“4.4 关联分析

6.4.5 异常订单检测

异常订单检测用来识别在订单尤其是促销活动的订单)的异常状态,目标找到非普通用户的订单记录,例如黄牛订单、恶意订单商家刷单等。

黄牛订单大量削减促销对普通用户的吸引程度,使得促销权益和利益被一小部分人获取,而非给到目标会员

恶意订单则更加危险,很多竞争对手间会通常这种方式在促销活动中,大量的商品库存通过订单的方式锁定,然后再活动结束后通过取消、退货等方式释放库存。这种方式使促销活动由于无法真正卖出商品而无法实现促销的目的,同时还会消耗公司大的人力物力是各个公司都非常反感的恶意竞争方式。

商家刷单是一种常见的用于提升商家排名的方式,通常由商家来安排内部关联人员大量购买商品,以形成商家流量和销售提升的目的

异常订单检测主要基于两类方法实现:

  • 一类是基于监督式的分类算法。将历史已经识别出来的真实异常订单数据通过分类模型(例如SVM随机森林等做训练,然后应用新数据做分类预测,看预测结果是否属于异常订单。
  • 一类是基于非监督式的算法。通过非监督式算法(例如OneClassSVM)基于历史的数据做训练,然后针对新的数据判别,找到存在异常可能性标签的订单列表。

两类方法是常见的算法应用,具体查看4.3 分类分析”、“4.5 异常检测分析

6.4.6 商品规划的最优组合

在做商品促销或广告宣传时,通常企业面临多种组合策略,它是在一定限制条件下考虑通过何种组合策略实现最大最小目标。此时,可以考虑使用线性规划方法

线性规划Linear programmingLP)是运筹学中研究比较方式相对成熟且实用性非常强的研究领域,主要用来辅助人们进行科学管理,目标是合理地利用有限的人力、物力、财力等资源作出的最优决策。解决简单线性规划问题的最直接的方法是图解法,即借助直线与平面区域的交点求解直线在y轴上的截距的最大值或最小值。

在做线性规划时涉及到几个概念:

  • 未知数影响决策主要变量或因素。
  • 约束条件:解决线性规划问题时已知的并须遵守的前提条件。
  • 目标函数:用来表示未知数与目标变量关系的函数线性规划中一般是线性函数。
  • 可行域满足优化问题约束条件的解叫做可行解,由所有可行解组成的集合叫做可行域。
  • 最优解满足目标函数最大化最小化目标的最优的解

实现线性规划的基本步骤如下:

步骤1 找到影响目标主要因素,他们是规划中的未知数。

步骤2 基于未知数确定线性约束条件。

步骤3 由未知数和目标之间的关系确定目标函数。

步骤4 找到直角坐标系中的可行域。

步骤5 在可行域内求目标函数的最优解及最优值。

为了能清晰的表达上述概念和步骤,在此通过一个简单的示例演示该过程。假设公司有P1P2两种商品,推广P1商品时,每次费用60元;当推广P2商品时,每费用为30现在公司有1800预算可以用来做P1P2商品推广,其中受到两种商品尺寸品类的限制,P1商品只能投放20P2商品最多只能投放40,并且两种商品的总投放次数不超过45。已知每次推广P1P2商品分别能获得单品毛利4030,问:如何安排P1P2商品投放次数才能达到销售毛利最大化目标?

为了解决问题我们假设P1P2两种商品投放次数分别是X1X2,最大化销售毛利为z,此时

目标函数 z = 40X1 + 30X2

image.png

由于这是一个简单二维变量,因此可以先画出直角坐标图和可行域,然后基于目标函数找到最优解位置,如6-1

 image.png

6-1线性规划可行域及最优解

通过可以发现最优解是目标函数与X1 + X2 = 4560X1 + 30X2 = 1800的交,求解两个函数的解用到的是九年义务教育阶段基本数学知识。

 image.png

步骤1  等式1转换:X1 = 45 - X2

然后将转换后的X1代入等式2并依次求解

步骤2  60(45 – X2) + 30X2 = 1800

步骤3  2700 – 60X2 + 30X2 = 1800

步骤4  2700 - 30X2 = 1800

步骤5  30X2 = 900

步骤6  X2 = 30

步骤7  X1 = 45 - 30 = 15

步骤8  然后将X1X2代入目标函数:Z =  40X1 + 30X2 = 40 * 15 + 30 * 30 = 1500

如果线性规划中有多个变量,那么我们无法通过图的方式直接发现最优值位置,此时可以借助Python的线性规划库来完成线性求解工作,包括scipy.optimize.linprogpulp

推荐 0
本文由 Python爱好者社区 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

0 个评论

要回复文章请先登录注册