客户终身价值(CLV)
客户终身价值(CLV)是从一个关键人物业务。它通常描述了客户在整个“客户生活”期间实现的贡献边际,折扣到分析时。因此,CLV可以理解为客户多年来对公司或未来的平均价值。因此,除历史收入外,未来预期收入也会被考虑(客户潜力)。在确定CLV时,必须将可能的客户价值与实际客户价值区分开来。可能的客户价值考虑了某个区域内客户的总支出,包括竞争对手的支出,而实际的CLV仅考虑了客户对其公司的支出。公司使用CLV更有效地为客户量身定制营销。例如,高CLV证明更高的预算用于照顾特定客户。
数据
下载链接在此。
数据集信息:
这是一个跨国数据集,其中包含2010年12月1日至2011年12月9日期间发生的所有在英国和注册的非商店在线零售业务的交易。该公司主要销售独特的全场礼品。该公司的许多客户都是批发商。
属性信息:
InvoiceNo:发票编号;标称值,为每个事务唯一分配的6位整数;如果此代码以字母’c’开头,则表示取消。 StockCode:产品(项目)代码。标称值,为每个不同的产品唯一分配的5位整数。 Description:产品(项目)名称。标称。 Quantity:每笔交易的每件产品(项目)的数量。数字。 InvoiceDate:Invice日期和时间。数字,生成每个事务的日期和时间。 UnitPrice:单价。数字,英镑单位产品价格。 CustomerID:客户编号。标称值,为每个客户唯一分配的5位整数。 Country:国家名称。Nominal,每个客户所在国家/地区的名称。数据预处理
import pandas as pd import numpy as np import warnings import matplotlib.pyplot as plt %matplotlib inline plt.style.use('ggplot') from lifetimes.plotting import * from lifetimes.utils import * from lifetimes.estimation import * warnings.filterwarnings('ignore') # 读取数据 df = pd.read_excel('Online Retail.xlsx') df = df.copy() df.head(2).T
12345678910111213141516df.describe() 1
可见有数量、价格小于0的情况,数量小于0应该是有退货现象,而且此代码以字母’C’开头,则表示取消
(df[df.InvoiceNo.map(lambda x:str(x)[0] == 'C')].Quantity > 0).any() 1
False
说明的确以‘C’开头的是否都是数量为负
取消订单情况 取消单发票以‘C’开头,长度为7df.InvoiceNo.map(lambda x:str(x)[0] == 'C').value_counts() 1