Lifetimes库快速入门:客户生命周期价值分析实战指南
【免费下载链接】lifetimes Lifetime value in Python 项目地址: https://gitcode.com/gh_mirrors/li/lifetimes
引言
在商业分析领域,理解客户行为模式对于制定有效的营销策略至关重要。Lifetimes库是一个专门用于分析客户购买行为和评估客户价值的Python工具包,它基于概率模型来分析客户的购买行为。本文将带您快速掌握使用Lifetimes库进行客户行为分析的核心方法。
数据准备与理解
数据格式要求
Lifetimes库要求输入数据采用特定的格式,主要包含以下几个关键字段:
- frequency:客户重复购买次数(总购买次数减1)
- recency:客户最近一次购买的时间点(相对于首次购买)
- T:客户观察期总长度(从首次购买到分析截止日)
- monetary_value:客户平均交易价值(可选)
from lifetimes.datasets import load_cdnow_summary
data = load_cdnow_summary(index_col=[0])
print(data.head())
数据转换
实际业务数据通常是交易级别的,Lifetimes提供了便捷的转换函数:
from lifetimes.utils import summary_data_from_transaction_data
summary = summary_data_from_transaction_data(
transaction_data,
customer_id_col='id',
datetime_col='date',
observation_period_end='2014-12-31'
)
BG/NBD模型应用
模型拟合
BG/NBD(Beta-Geometric/Negative Binomial Distribution)模型是分析客户购买行为的经典模型:
from lifetimes import BetaGeoFitter
bgf = BetaGeoFitter(penalizer_coef=0.0)
bgf.fit(data['frequency'], data['recency'], data['T'])
模型参数解释
模型拟合后会输出几个关键参数:
- r和alpha:描述购买行为的参数
- a和b:描述客户流失率的参数
这些参数可以帮助我们理解客户群体的整体行为特征。
可视化分析
- 频率-最近购买矩阵:展示客户未来购买预期
- 存活概率矩阵:展示客户仍然活跃的概率
from lifetimes.plotting import plot_frequency_recency_matrix
plot_frequency_recency_matrix(bgf)
客户排名
根据预测的未来购买次数对客户进行排序:
data['predicted_purchases'] = bgf.conditional_expected_number_of_purchases_up_to_time(
t=1,
frequency=data['frequency'],
recency=data['recency'],
T=data['T']
)
模型验证
校准与验证集
将数据分为校准期和验证期,评估模型在未见数据上的表现:
from lifetimes.utils import calibration_and_holdout_data
summary_cal_holdout = calibration_and_holdout_data(
transaction_data,
'id',
'date',
calibration_period_end='2014-09-01',
observation_period_end='2014-12-31'
)
Gamma-Gamma模型:客户价值分析
数据准备
分析客户价值需要包含交易金额的数据:
from lifetimes.datasets import load_cdnow_summary_data_with_monetary_value
summary_with_money_value = load_cdnow_summary_data_with_monetary_value()
独立性检验
Gamma-Gamma模型假设购买频率和交易金额独立,需要先验证:
correlation = returning_customers_summary[['monetary_value', 'frequency']].corr()
模型拟合与预测
from lifetimes import GammaGammaFitter
ggf = GammaGammaFitter(penalizer_coef=0)
ggf.fit(
returning_customers_summary['frequency'],
returning_customers_summary['monetary_value']
)
客户终身价值计算
结合BG/NBD和Gamma-Gamma模型计算CLV:
clv = ggf.customer_lifetime_value(
bgf,
summary_with_money_value['frequency'],
summary_with_money_value['recency'],
summary_with_money_value['T'],
summary_with_money_value['monetary_value'],
time=12, # 评估未来12个月
discount_factor=0.01 # 月折现率
)
结语
通过Lifetimes库,我们可以系统性地分析客户购买行为并评估其未来价值。本文介绍了从数据准备、模型构建到价值评估的完整流程。实际应用中,建议根据业务特点调整模型参数,并持续监控模型表现,以获得更准确的分析结果。
【免费下载链接】lifetimes Lifetime value in Python 项目地址: https://gitcode.com/gh_mirrors/li/lifetimes
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



