关于数据挖掘:Python条件生存森林模型Conditional-Survival-Forest分类预测客户流失交叉验证可视化

7次阅读

共计 2523 个字符,预计需要花费 7 分钟才能阅读完成。

原文链接:http://tecdat.cn/?p=26982 

简介

客户散失 / 散失,是企业最重要的指标之一,因为获取新客户的老本通常高于保留现有客户的老本。

事实上,依据一个 study by Bain & Company,随着工夫的推移,现有客户偏向于从公司购买更多产品,从而升高企业的经营老本,并可能将他们应用的产品举荐给其他人。例如,在金融服务畛域,客户保留率每减少 5%,利润就会减少 25% 以上。

通过应用生存剖析,公司不仅能够预测客户是否可能进行开展业务,还能够预测该事件何时产生。


数据集

形容和概述

团队想要应用的数据集蕴含以下性能:

从分类到数值

有几个分类特色须要编码为 one-hot 向量:

# 创立向量

dtset = pd.get_dummies(rawdaset, columns=caegres)

# 创立工夫和事件列
timeolun = 'onth_tive
ent_clmn = 'chuned'(事件列)。# 提取特色
特色 = np.setdiff1d(daaet.oums, \[tie_olmn,\] ).tolist()

探索性数据分析

在这里,咱们将只检查数据集是否蕴含 Null 值或是否有反复的行。而后,咱们将看看特色相关性。

空值和反复

首先要做的是查看 raw_dataset 是否蕴含 Null 值和反复的行。

# 查看是否为空值
Null = sum(dtaet\[feaues\].isnull().sum())

# 如果存在反复的数据,则将其删除
daast = datt.drop\_duplicates(keep='first').reset\_index(drop=True)

# 数据集中的样本数
N = det.shape\[0\]。

事实证明,数据集没有任何 Null 值或反复项。

相关性

让咱们计算和可视化特色之间的相关性

图 1 – 相关性


建模

构建模型

为了稍后执行穿插验证并评估模型的性能,让咱们将数据集拆分为训练集和测试集。

# 建设训练和测试集
dex\_train, index\_test = train\_test\_split(range(N), test_size = 0.35)

# 创立 X、T 和 E 输出
X\_tain, Xtst = daa\_ain\[ftures\], datts\[fees\]
T\_tin, T\_tst = daa\_rain\[ie\_olumn\], dta\_est\[tme\_olumn\]
E\_tain, \_tst = daa\_tain\[vent\_cumn\], dattet\[evet_lumn\]

留神:超参数的抉择是应用网格搜寻抉择取得的。

# 拟合模型
cf.fit(\_trai, T\_tra, \_tain, ax\_eatrs='sqrt',

变量重要性

建设生存森林模型后,咱们能够计算特色重要性:

# 计算变量的重要性
sf.vaialeipotanetle.head(5)

这是最重要的性能中的前 5 个。

因为性能的重要性,咱们能够更好地理解是什么推动了保留或散失。在这里,会计和薪资治理产品、满意度考察得分以及与客户反对通话的工夫都施展着重要作用。

留神:重要性是扰动和未扰动错误率之间的预测误差差别


穿插验证

为了评估模型性能,咱们之前将原始数据集拆分为训练集和测试集,以便咱们当初能够在测试集上计算其性能指标:

 C-index

这 C -index 代表模型分别能力的全局评估: 这是模型依据个体危险评分正确提供生存工夫牢靠排名的能力 。一般来说,当 C-index 靠近 1 时,模型具备近乎完满的判断力;但如果靠近 0.5,则没有辨别低危险和高风险对象的能力。

Brier score

这 Brier score 测量给定工夫状态和预计概率之间的均匀差别。 因而,分数越低(_通常低于 0.25_),预测性能就越好。为了评估跨多个工夫点的整体误差测量,通常还计算综合 Brier 分数 (IBS)。

图 2 – 条件生存森林 – Brier 分数和预测误差曲线

IBS 在整个模型时间轴上等于 0.13。这表明该模型将具备良好的预测能力。


预测

总体预测

既然咱们曾经建设了一个仿佛能够提供杰出性能的模型,让咱们比拟每个工夫 t 进行与 SaaS 公司开展业务的理论客户数量和预测客户数量的工夫序列。

comroal(cf, X\_tst, T\_tst, E_tst

图 3 – 条件生存森林 – 散失的客户数量

该模型总体上提供了十分好的后果,因为在整个 12 个月的窗口中,它只会产生约 5 个客户的均匀绝对误差。


集体预测

让咱们计算在  所有工夫 t 中保留客户的概率

首先,咱们能够依据危险评分散布构建危险组。

cree\_rskups(oel=csf, X=X\_test

图 4 – 条件生存森林 – 危险组


在这里,能够辨别 3 个次要群体,_低_危险、_中_危险 和 _高_ 危险群体。因为 C 指数较高,模型将可能对每组随机单元的生存工夫进行适当的排序。

让咱们随机抉择每组中的单个单元,并比拟它们在所有工夫 t 中保留客户的概率。为了证实咱们的观点,咱们将特意抉择经验过事件的单位来可视化事件的理论工夫。

图 5 – 条件生存森林 – 预测集体保留客户的概率

在这里,咱们能够看到该模型设法提供了对事件工夫的杰出预测。


论断

咱们当初能够保留咱们的模型,以便将其投入生产并为将来的客户评分。

总之,咱们能够看到,能够预测客户在不同工夫点进行与公司开展业务的工夫。该模型将帮忙公司在留住客户方面更加积极主动;并更好地理解导致客户散失的起因。


 

最受欢迎的见解

1.PYTHON 用户散失数据挖掘:建设逻辑回归、XGBOOST、随机森林、决策树、反对向量机、奢侈贝叶斯模型和 KMEANS 聚类用户画像

2.R 语言基于树的办法:决策树,随机森林

3.python 中应用 scikit-learn 和 pandas 决策树

4. 机器学习:在 SAS 中运行随机森林数据分析报告

5.R 语言用随机森林和文本开掘进步航空公司客户满意度

6. 机器学习助推快时尚精准销售工夫序列

7. 用机器学习辨认一直变动的股市情况——隐马尔可夫模型的利用

8.python 机器学习:举荐零碎实现(以矩阵合成来协同过滤)

9.python 中用 pytorch 机器学习分类预测银行客户散失

正文完
 0