Data Science with R in 4 Weeks -

2016-01-27  本文已影响31人  慢思考快思考

Predictive Scoring

Predictive scoring 在商业中有广泛的应用。例如,信用卡公司希望知道自己的客户中哪些人可能违约;零售公司(walmart,i.e.) 想知道自己的客户中哪些人未来可能继续购买,可能的花费是多少;B2B公司希望知道自己现有的lead中,哪些更有可能在接下来的12月内购买自己的产品和服务。上面这些问题都涉及到对客户的未来行为进行预测并对预测结果进行量化。这就是predictive scoring。

下面通过一个具体的例子还演示predictive scoring

假设我们有这样的用户消费的数据:第一列是用户id,第二列是消费金额,第三列是消费的日期

我们想知道,2015年在我们这里消费的用户,下一年是否会接着消费,如果会的话,他们消费的金额是多少?为了能够预测下一年度数据,我们首先利用过去的数据作为基准(calibration data),然后建立模型进行预测。

总体思路是:我们掌握的数据是2015年之前的数据,我们利用2014年之前的数据作为基准,也就是学习的模型,然后用这个模型预测2015年的数据,再将预测值和2015年的实际值相比较。如果吻合的好,则说明模型有效,我们进而再用这个模型去预测未来(2016)的情况。

数据预处理:

原始数据变成:

利用2014年和2014年之前的数据作为基准,计算用户的购买频次,花费,最近的一次购买 (RFM model),然后,我们计算2015年的用户的总的消费。将这两部分数据合并,我们能得到所有用户的

(1)2014年之前的平均消费,最大消费,购买频次和最近一次购买

(2)该用户在2015年是否进行了消费,如果消费了,他的消费金额是多少

(3)标识出2014年之前消费但在2015年没有消费的用户

结果如下图:

接下来,我们就可以建立模型了。我们采用 multinomial logistic regression, 关于这个模型,可以看这里这里

为了简单起见,我们只预测用户是否消费,即0,1,而不预测用户消费的可能性。

消费数据。这部分数据只能选用在2015年消费的用户。采用线性回归。

z= which(in_sample$active_2015==1)

amount.model= lm(formula=revenue_2015~avg_amount+max_amount,data=in_sample[z, ])

R square 有60%左右,说明模型和数据fit的还可以。

因为消费数据中的大部分是较小的消费额,所以属于看上去有些skew,可以采用log的方式

amount.model= lm(formula= log(revenue_2015) ~ log(avg_amount) + log(max_amount),data=in_sample[z, ])

然后,我们把模型应用到2015年的数据上。例如,我们可以看到,2015年的用户中,有18417个用户他们2016年的消费可能超过$50.

上一篇下一篇

猜你喜欢

热点阅读