1. BG/NBD概率模型
BG/NBD模型又称为贝塔几何/负二项模型。他是基于Pareto/NBD模型假设设计的概率预测模型。BG/NBD模型是用于描述非契约客户关系情境下重复购买行为。即用户可以随时购买产品,无时间约束。该模型可利用用户历史交易数据(RFM)来预测未来每个用户的交易次数和流失率,BG/NBD模型主要有以下五个假设:
假设1:用户在活跃状态下,一个用户在时间段t内完成的交易数量服从均值为λt的泊松分布。泊松分布的PDF函数如下,j为交易次数。比如一个顾客在λ=5时的概率分布图如下所示:
import matplotlib.pyplot as pltfrom scipy.stats import poissonprobability_arr = []distribution = poisson(5)for transactions in range(0,20):probability_arr.append(distribution.pmf(transactions))plt.figure(figsize=(8,5))plt.ylabel('Probability')plt.xlabel('Number of Transactions')plt.xticks(range(0, 20))plt.title('Probability Distribution Curve')plt.plot(probability_arr, color='black', linewidth=0.7, zorder=1)plt.scatter(range(0, 20), probability_arr, color='purple', edgecolor='black', linewidth=0.7, zorder=2)plt.show()
假设2:用户的交易率λ服从形状参数为r,逆尺度参数为α的gamma分布,PDF函数如下所示。比如100个用户的交易率λ服从r=9.0,α=0.5的gamma分布时,这100个用户的泊松分布图如下所示:
import numpy as npplt.figure(figsize=(8,5))for customer in range(0, 100):distribution = poisson(np.random.gamma(shape=9, scale=0.5))probability_arr = []for transactions in range(0,20):probability_arr.append(distribution.pmf(transactions))plt.plot(probability_arr, color='black', linewidth=0.7, zorder=1)plt.ylabel('Probability')plt.xlabel('Number of Transactions')plt.xticks(range(0, 20))plt.title('Probability Distribution Curve 100 Customers')plt.sho