我正在尝试预测 python 中合同和离散保单(保险)的生存分数和 LTV。我浏览了许多网站,但我只能找到许多非合同(零售)的例子。
我使用了以下代码:
from lifelines import CoxPHFitter
#After all feature selection and EDA
cph_train, cph_test = train_test_split(features, test_size=0.2)
cph = CoxPHFitter()
cph.fit(cph_train, 'TIME', event_col='EVENT')
cph.print_summary()
其中 TIME - 是 ACTIVE 客户的保单生效日期和当前日期之间的天数,以及非 ACTIVE 客户的保单生效日期和退保日期之间的天数。
EVENT - 是客户是否活跃的指标。
拟合模型后,我得到了 0.7 的一致性(我觉得还可以)。
从这里开始,我如何继续获得活跃客户的生存分数和终身价值(CLTV)?基本上,我需要预测谁是有价值的客户,他们将长期留在公司。
我通过浏览 Cam 的一些帖子和建议添加了一些代码。
censored_subjects = features.loc[features['EVENT'] == 1] #Selecting only the ACTIVE ones
unconditioned_sf = cph.predict_survival_function(censored_subjects)
conditioned_sf = unconditioned_sf.apply(lambda c: (c / c.loc[features.loc[c.name, 'TIME']]).clip_upper(1))
predictions_75 = qth_survival_times(.75, conditioned_sf)
predictions_50 = qth_survival_times(.50, conditioned_sf)
values = predictions_75.T.join(data[['PREAMT','TIME']])
values50 = predictions_50.T.join(data[['PREAMT','TIME']])
values['RemainingValue'] = values['PREAMT'] * (values[0.75] - values['TIME'])
那么输出表示什么:
0.5 PREAMT TIME
--- 第 0.5 列中的数字是否表示有 50% 机会关闭的持续时间?
0.75 PREAMT TIME
--- 同样 0.75 表示有 75% 机会关闭的持续时间?
RemainingValue
--- 是要支付的剩余金额吗?
下一步是什么?