Python系列教程——实战搭建用户价值模型

发布时间:2019-09-11 23:31

  最近在做一个用户评分模型的项目,这个模型的目的就是用来判断用户的价值。希望通过各种指标来给用户综合打分,每个用户最后会得到一个分值,分值越高,说明用户的价值越高。这是一个总的目标,一个用户可以创造的价值由两部分决定:创造价值的能力和创造价值的意愿,前者是能不能的问题、后者是愿不愿意的问题。定了两个主线以后再次进行目标拆解,根据业务经验分别找到那些能够判断用户创造价值的能力和意愿的指标,然后给不同的指标赋予不同的权重/分值,最后将各指标的权重/分值相加就是用户最后的总得分。

  上面的这个过程有两个关键步骤,一个是选择合适的指标,另一个是给不同的指标赋予不同的权重,关于指标的选取,这个根据业务经验直接拍脑袋就可以,但是这个不同指标的权重问题,可能直接拍脑袋就不是太好了,当然了,也不是不可以。不过,做数据是一个严谨的工作(咳咳咳),还是希望能够找到一套理论来代替拍脑袋,所以就在网上找啊找,终于找到了今天的主角,就是AHP。

  AHP(Analytic Hierarchy Process-解析阶层的过程)又叫层次分析法,是一种定性与定量相结合的分析方法,是一种将决策者对复杂系统的决策思维过程模型化、数量化的过程。

  是不是有点看不太明白,我来说几句大白话让你理解理解。让我们与前言里面的内容对应一下,AHP其实就是一种把复杂问题通过定性(人为去判断各指标之间的重要性)与定量(再通过计算判断矩阵求出各指标权重)的方法进行拆解成若干个小问题以及小指标的问题,并能够计算出各个小问题以及小指标对整个大目标的影响程度。

  来看张图,你就更清楚了,这张图正好可以表达我在前言里面说到的东西。我们的最终目标就是要确定每个用户的一个用户价值,那么我们可以把这个目标进行拆解,首次拆解成购买忠诚度和消费能力这两个小问题,进而再对这两个小问题进行拆解,分别得到下面的各个指标,这其实就是一个定性的过程(问题拆解,指标拆解都是需要我们依据业务经验,人为去指定),至于各问题和各指标的权重计算就是一个定量过程,其实AHP主要是做定量这一部分。

  就是首先你要确定你要解决什么问题,我们这里就是要构建用户价值模型,希望通过这个模型看出每个用户的一个价值,然后依据价值不同给与不同的运营策略。

  将搭建用户价值模型这个总目标拆解成用户购买忠诚度以及用户消费能力两部分,然后再对这两部分进行指标拆解,就是上面图表中看到的各指标。

  所谓的判断矩阵就是将任意两指标进行对比得出一个重要性结果,然后将这个结果以矩阵的形式进行呈现,其中重要程度差别等级如下:

  数值越大,表示前者比后者越重要;指标A和指标B判断结果与指标B与指标A和指标B判断结果互为倒数,即当指标A比指标B的重要程度是3的时候,那么指标B比指标A的重要程度就是3的倒数,即1/3。

  不知道你有没有注意到,其实上面的这种方法也有一定的主观判断(拍脑袋),比如两指标之间的稍微重要,明显重要,极其重要也是需要你人为去指定的,你可能会疑问,既然都是拍脑袋,那还要这个干啥,直接拍脑袋不久得了,还搞这么复杂干嘛,哈哈哈,关于好处接下来会讲到。

  判断矩阵A构造出来了,我们就可以开始计算各指标对目标问题的影响程度(即各指标的权重值)。

  注意:这里的归一化只是把每一列的值的和当作1,然后计算每一个值在1中的占比。

  上述步骤中归一化后得到的矩阵w就是各个指标的权重情况,这个权重是根据我们主观上构造的判断矩阵的出来的,但是这个权重是否准确,还是有待确定的,为什么要去确定呢,因为判断矩阵很有可能得出的相互矛盾的结论,比如说A指标重要性大于B指标,B指标重要性大于C指标,但是A指标重要性又小于C指标重要性,这种互相矛盾的结论。AHP就可以避免这种矛盾的发生。这里需要引入AHP中的另一个概念一致性检验,用来判断矩阵是否一致。

  计算一致性比率CR=CI/RI,当CR0.1时,不一致性程度在容许范围内,即各指标的重要性程度不存在上述互相矛盾的情况,可以使用。

  如果一致性比率符合使用条件,则可以直接使用计算出的各指标的权重值,如果不符合,则需要重新构造判断矩阵。

  就是对单一层次计算权重情况,比如用户价值模型总目标的下一层就是用户忠诚程度和用户消费能力的权重情况。用户忠诚程度:用户消费能力=0.67:0.33。而用户忠诚程度和用户消费能力的下一层就是各个更加细致的指标。

  层次总排序就是将各个层次的权重值相乘,最后就得到了各个指标的权重情况,就是层次总排序。

  还是以前面说到用户价值模型为例,走一遍完整的流程。这里我们计算用户忠诚度的AHP,因为只有三个指标及以上才会出现那种互相矛盾的情况,两个指标是不会出现的,两个指标的话直接人为指定权重占比就可以。具体计算过程,大家可以参考上面的截图。

  该矩阵就表示了各指标的权重情况,最近购买间隔占比占比为0.11,购买频率占比0.64,购买商品种类占比0.24。

  计算一致性比率CR=CI/RI=00.1符合,所以用户忠诚度的各指标权重值w矩阵可用。

  因为总目标只拆解成了两个小问题,所以这里直接人为指定权重即可(用户忠诚度:用户消费能力=0.67:0.33),不需要进行一致性检验。

  用户忠诚度拆解的指标有三个,需要进行一致性检验,且经过检验后符合CR0.1的条件,所以用户忠诚度指标中各指标权重为:最近购买间隔占比占比为0.11,购买频率占比0.64,购买商品种类占比0.24。

  最后将每个指标缩小到0-10的范围(不一定缩小到0-10,但是必须把每个指标缩小到相同大小范围内),然后乘各指标所占权重,最后相加,就是每个用户的总价值得分。

  零基础也能入职数据分析?跨专业想转行数据分析?SQLPython技能不通过?

  中国统计网联合爱数据学院出品的【零基础入职数据分析—就业班】帮你解决转行难,技能不过关等问题!今晚20:30准时开讲。