商品运营化关键指标
销售指标
1. 订单量/商品销售量
订单量是用来衡量唯一订单的数量,商品销售量用来衡量商品的总销量。
2.订单金额/商品销售额
订单金额 = 商品销售额+运费-优惠凭证金额-其他折扣
商品销售额 = 商品销售单价*销售数量
3.每订单金额/客单价/件单价
每订单金额 = 订单金额/订单量
客单价= 订单金额/订单用户量
件单价 = 订单金额/商品销售量
4.订单转化率
订单转化率 = 订单量/总访问量
5.支付转化率
支付转化率 = 完成支付的客户数/需要支付的客户数
6.有效订单量/有效订单金额/有效商品销售量/有效商品销售额
有效状态下的订单量为有效订单量。
有效状态下的订单金额为有效订单金额。
有效状态下的商品销售量为有效商品销售量。
有效状态下的商品销售额为有效商品销售额。
7.订单有效率/废单率
订单有效率 = 有效订单率/订单量
废单率 = 1-订单有效率
8.毛利/毛利率
毛利 = 商品妥投销售额-商品其次进货成本
毛利率=毛利/商品妥投销售额
促销活动指标
1.每订单成本/每有效订单成本
每订单成本 = 费用/订单量
每有效订单成本 = 费用/有效订单量
2.每优惠券收益/每积分兑换收益
每优惠券收益 = 优惠券带来的订单成交金额/优惠券数量
每积分兑换收益 = 使用积分兑换的订单成交金额/积分兑换量
3.活动直接收入/活动间接收入
活动直接收入指单纯通过促销活动带来的收入
活动间接收入指通过促销活动带来的用户购买了非活动商品的收入情况
4.活动收入贡献
活动收入贡献占比 = (活动直接收入+活动间接收入)/全站订单成交金额
5.活动拉升比例
活动拉升比例 = (活动期间收入/非活动期间收入)-1
供应链指标
1.库存可用天数
库存可用天数 = 库存商品数量/期内每日商品销售数量
2.库存量
库存量:一定周期内全部库存商品的数量
3.库龄
库龄 = 出库时间-入库时间
4.滞销金额
滞销金额占比 = 滞销金额/库存金额
5.缺货率
缺货率 = 缺货商品数量/用户订单数量
6.残次数量/残次金额/残次占比
残次金额 = 残次商品批次进货单价*残次商品数量
残次金额占比 = 残次商品金额/库存商品金额
残次数量占比 = 残次商品数量/库存商品数量
7.库存周转天数
库存周转天数 = 360/库存周转率
其中,库存周转率 = 年销售商品金额 / 年平均库存商品金额
应用场景
销售预测
◆未来一周会产生多少商品销售量?
◆下个月估计能产生多少毛收入?
库存分析
◆当前M商品的可用天数是否满足销售预期?需要补多少货?
◆如何管理季节性库存商品,以满足季节性促销活动?
◆如何找到商品的最佳库存位置,以实现更高效率的商品分拣、包装和出库?
市场分析
◆新产品要上线,售价定多少合适?
◆公司要打造新产品,该产品的市场容量有多少?预期年销量有多少?
促销分析
◆如何定制打包和组合策略,使得用户单次购买商品金额最大化?
◆制定商品向上销售策略,购买了家电的用户下次还有可能购买什么?
◆精准商品销售或推介,企业目前有10000件商品需要清仓梳理,如何快速销售出去?
分析模型
1. 商品价格敏感度模型
使用回归分析解决(讲大量商品信息和客户信息加入模型)
2.新产品市场定位模型
使用基于相似度的方法实现,如非监督式的KNN模型。
3.销售预测模型
可通过时间序列、回归、分类模型预测
4.商品关联销售模型
使用关联类算法实现
5.异常订单检测
可以使用分类模型或异常检测模型实现
6.商品规划最优组合
使用线性规划完成
应用案例分析
案例:基于Gradient Boosting的自动超阐述优化的销售预测
案例背景
针对某单品做的订单量预测。
案例分析
使用集成回归算法,找到最优值算法下的集成回归算法模型进行预测。通过GridSearchCV方法对每个参数值做网格搜索,配置交叉检验方法寻找最优值。
part 1 导入库
import numpy as np
import pandas as pd
from sklearn.ensemble import GradientBoostingRegressor #集成方法回归库
from sklearn.model_selection import GridSearchCV #交叉检验库
import matplotlib.pyplot as plt
from sklearn.metrics import mean_squared_error as mse
part 2 数据预处理
#读取数据
raw_data = pd.read_table('products_sales.txt',delimiter=',')
#数据审查和校验
#数据预览
print('{:*^60}'.format('Data overview:'),'\n',raw_data.tail(2))
print('{:*^60}'.format('Date dtypes:'),'\n',raw_data.dtypes)
#缺失值审查
na_cols = raw_data.isnull().any(axis=0)
print('{:*^60}'.format('NA Cols:'))
print(na_cols[na_cols]==True)
print('Total NA lines is : {0}'.format(raw_data.isnull().any(axis=1).sum()))
#数据预处理
#缺失值处理
sales_data = raw_data.fillna(raw_data['price'].mean())#使用均值填充NA值
#分割数据集x和y
num = int(0.7*sales_data.shape[0])
x,y = sales_data.iloc[:, :-1],sales_data.iloc[:, -1]
x_train,x_test = x.iloc[:num,:],x.iloc[num:,:]
y_train,y_test = y.iloc[:num],y.iloc[num:]
part 3 模型训练
model_gbr = GradientBoostingRegressor()
parameters = {'loss':['ls','lad','huber','quantile'],
'n_estimators':[10,50,100],
'learning_rate':[0.05,0.1,0.15],
'max_depth':[2,3,4,5],
'min_samples_split':[2,3,5],
'min_samples_leaf':[1,2,4]
} #定义要优化的参数信息
model_gs = GridSearchCV(estimator=model_gbr,param_grid=parameters,cv=3,n_jobs=1)
model_gs.fit(x_train,y_train)
print('Best score is:',model_gs.best_score_)
print('Best parameter is:',model_gs.best_params_)
#结果如下:
Best score is: 0.9560118591530649
Best parameter is: {'learning_rate': 0.15, 'loss': 'huber', 'max_depth': 2, 'min_samples_leaf': 1, 'min_samples_split': 3, 'n_estimators': 100}
在知道了最佳模型的参数后,我们可以选择手动赋值到模型,也可以直接使用best_estimator_方法获得最佳模型对象。
#获取最佳训练模型:
model_best = model_gs.best_estimator_
part 4 模型评估
#模型交叉检验结果:
model_gs.cv_results_.get('mean_test_score')
——————————————————————————————————————————————————————————————————————
array([-0.30468486, 0.80654825, 0.91489309, ..., -2.46467655,
0.55217051, 0.67756525])
#回归指标评估:
pre_test = model_best.predict(x_test)
mse_score = mse(pre_test,y_test)
基于训练最优模型,预测测试集结果,然后使用mse方法得到MSE得分。
#模型拟合程度展示:
plt.style.use("ggplot")
plt.figure(figsize=(10,7))
plt.plot(np.arange(x_test.shape[0]),y_test,linestyle = '-',color = 'k',label = 'true y')
plt.plot(np.arange(x_test.shape[0]),pre_test,linestyle = ':',color = 'm',label='predicted y')
plt.title('best model with mse of {}'.format(int(mse_score)))
plt.legend(loc=0)
从图形输出结果看,测试集的预测值(黑色实线)与真实值(红色虚线)的拟合程度比较高。
part 5 新数据集预测
业务方给出了一个新的数据标准,即limit_infor=1,campaign_type = 1,campaign_level = 0,product_level = 1,resource_amount = 15,email_rate = 0.5,price = 177,discount_rate = 0.66,hour_resources = 101,campaign_fee = 798。
预测:
new_x = np.array([[1,1,0,1,15,0.5,177,0.66,101,798]])
print('{:*^60}'.format('Predicted orders:'))
print(model_best.predict(new_x).round(0))
预测结果如下:
*********************Predicted orders:**********************
[846.]
案例总结
◆从交叉检验得到的最佳模型的得分是0.956,该得分越高意味着自变量对因变量的解释能力越强,最高得分为1.交叉检验得分为0.956已经充分说明了回归模型的预测能力比较强,且基于CART算法本身的模型相对稳定。
自变量:
◆当不同自变量间存在量纲差异时,需要先对每一列做标准化。
(基于CART的集成模型,自变量的量纲对模型没有影响,可以不做标准化。)
◆对于非常高相关性的变量,需要进行处理。
(案例使用的是集成方法,具体参数通过交叉检验得到的是使用huber损失函数做回归评估,它已经能进度共线性的问题。)