点击查看【bilibili】
image.png

指数法

“指数法”就是对不同的数据进行“标准化”“归一化”,进而对综合数值进行对比评估。

很多时候,我们有数据,但不知道怎么应用。就是因为缺乏了一个有效性的方向。这个方向可以成为目标指数。通过将数据加工成指数,达到聚焦的目的。

常用的三种处理方法

  • 加权法
  • 反比例
  • 取对数

加权法

举例:已知用户ID、忠诚度、贡献金额、社交指数

用户ID 用户忠诚度 用户贡献金额 用户社交指数
1 0.5543 0.5085 0.3814
2 0.9681 0.8274 0.2130
3 0.9547 0.6399 0.7672
4 0.3152 0.2261 0.1278
5 0.6593 0.0100 0.1224
6 0.2961 0.9011 0.9988
7 0.8938 0.9413 0.3851
8 0.1663 0.3063 0.4278
9 0.8011 0.6773 0.2321
10 0.5771 0.0294 0.0236

求:评估用户价值

用户ID 用户忠诚度 用户贡献金额 用户社交指数 用户价值=
忠诚度2+贡献5+社交
1 0.5543 0.5085 0.3814 4.0326
2 0.9681 0.8274 0.2130 6.2862
3 0.9547 0.6399 0.7672 5.8760
4 0.3152 0.2261 0.1278 1.8884
5 0.6593 0.0100 0.1224 1.4912
6 0.2961 0.9011 0.9988 6.0966
7 0.8938 0.9413 0.3851 6.8791
8 0.1663 0.3063 0.4278 2.2922
9 0.8011 0.6773 0.2321 5.2206
10 0.5771 0.0294 0.0236 1.3247

反比例法

目的是为了让数字收敛到0-1的范围。

已知:用户7到9月的消费次数

用户ID 7月消费次数 8月消费次数 9月消费次数
1 14 13 10
2 15 11 1
3 4 11 9
4 1 14 8
5 1 9 5
6 7 11 12
7 3 10 6
8 3 4 12
9 3 9 7
10 7 1 11

求:用户忠诚度

用户ID 7月消费次数 8月消费次数 9月消费次数 Y=1-1/7月 Y=1-1/8月 Y=1-1/9月 用户忠诚度
1 14 13 10 0.929 0.923 0.900 1.370110
2 15 11 1 0.933 0.909 0.000 0.734545
3 4 11 9 0.750 0.909 0.889 1.301768
4 1 14 8 0.000 0.929 0.875 1.076786
5 1 9 5 0.000 0.889 0.800 1.004444
6 7 11 12 0.857 0.909 0.917 1.353355
7 3 10 6 0.667 0.900 0.833 1.233333
8 3 4 12 0.667 0.750 0.917 1.216667
9 3 9 7 0.667 0.889 0.857 1.244444
10 7 1 11 0.857 0.000 0.909 0.893506

只要是反比例就能收敛,所以Y=1-1/X的换算也可以用其他的,比如Y=2-2/2或Y=X/(X+1)等等。只需满足条件:转换后的值介于0-1,即达到目的。


对数法

目的是为了让数字收敛

已知:文章的发布日期、阅读量和评论量

文章ID 发布日期 UV 评论
1 2017/7/1 1745 62
2 2017/8/1 2799 24
3 2017/9/1 2520 26
4 2017/10/1 800 38
5 2017/11/1 2939 60
6 2017/12/1 1443 29
7 2018/1/1 1000 38
8 2018/2/1 1460 1000
9 2018/3/1 2931 74
10 2018/4/1 2576 20

求:文章的热度价值

解析:

  • 难点1:发布日期是日期类型,UV和评论是数字类型,如何将日期与数字整合到一起?
  • 难点2:尽管UV和评论都是数字类型,但大多数UV比评论大2个数量级,如何调权重,并将二者结合后的数值收敛?

解答:

  • 第一步:处理日期(使用反比例法)

日期的错误转化:

| 文章ID | 发布日期 | UV | 评论 | 日期热度
=(今天-日期)/100 | | :—-: | :—-: | :—-: | :—-: | :—-: | | 1 | 2017/7/1 | 1745 | 62 | 10.55 | | 2 | 2017/8/1 | 2799 | 24 | 10.24 | | 3 | 2017/9/1 | 2520 | 26 | 9.93 | | 4 | 2017/10/1 | 800 | 38 | 9.63 | | 5 | 2017/11/1 | 2939 | 60 | 9.32 | | 6 | 2017/12/1 | 1443 | 29 | 9.02 | | 7 | 2018/1/1 | 1000 | 38 | 8.71 | | 8 | 2018/2/1 | 1460 | 1000 | 8.40 | | 9 | 2018/3/1 | 2931 | 74 | 8.12 | | 10 | 2018/4/1 | 2576 | 20 | 7.81 |

错误分析:日期处理=(今天-日期)/100,被减数是“今天(2020/5/21)”不变,发布日期越靠后,减数越大,得到的差值越小。与期望的“日期越靠后,文章的热度值越高”相悖。比如2018/4/1的日期热度值是7.81,2017/7/1的日期热度值是10.55,显然不对。

解决办法:改成发布日期 - 初始日期,且要满足(最小的发布日期-初始日期) > 0,则初始日期需小于2017/7/1,具体转化如下。

文章ID 发布日期 UV 评论 日期热度=(日期-2017/1/1)/100
1 2017/7/1 1745 62 1.81
2 2017/8/1 2799 24 2.12
3 2017/9/1 2520 26 2.43
4 2017/10/1 800 38 2.73
5 2017/11/1 2939 60 3.04
6 2017/12/1 1443 29 3.34
7 2018/1/1 1000 38 3.65
8 2018/2/1 1460 1000 3.96
9 2018/3/1 2931 74 4.24
10 2018/4/1 2576 20 4.55
  • 第二步:处理UV和评论(使用对数法) | 文章ID | 发布日期 | UV | 评论 | LOG10(UV+评论*10) | | :—-: | :—-: | :—-: | :—-: | :—-: | | 1 | 2017/7/1 | 1745 | 62 | 3.37 | | 2 | 2017/8/1 | 2799 | 24 | 3.48 | | 3 | 2017/9/1 | 2520 | 26 | 3.44 | | 4 | 2017/10/1 | 800 | 38 | 3.07 | | 5 | 2017/11/1 | 2939 | 60 | 3.55 | | 6 | 2017/12/1 | 1443 | 29 | 3.24 | | 7 | 2018/1/1 | 1000 | 38 | 3.14 | | 8 | 2018/2/1 | 1460 | 1000 | 4.06 | | 9 | 2018/3/1 | 2931 | 74 | 3.56 | | 10 | 2018/4/1 | 2576 | 20 | 3.44 |

解释:认为评论的权重比阅读量高,所以阅读量权重是1,评论的权重是10,但UV+评论*10得数过大,因此用对数法将结果缩小到与日期转化值差不多。此处我使用的是log10,用其他的底数或权重也行,只要找到合适的即可。

  • 第三步:合并三个数值 | 文章ID | 发布日期 | UV | 评论 | 日期热度
    =(日期-2017/1/1)/100 | LOG10(UV+评论*10) | 综合热度 | | :—-: | :—-: | :—-: | :—-: | :—-: | :—-: | :—-: | | 1 | 2017/7/1 | 1745 | 62 | 1.81 | 3.37 | 5.18 | | 2 | 2017/8/1 | 2799 | 24 | 2.12 | 3.48 | 5.60 | | 3 | 2017/9/1 | 2520 | 26 | 2.43 | 3.44 | 5.87 | | 4 | 2017/10/1 | 800 | 38 | 2.73 | 3.07 | 5.80 | | 5 | 2017/11/1 | 2939 | 60 | 3.04 | 3.55 | 6.59 | | 6 | 2017/12/1 | 1443 | 29 | 3.34 | 3.24 | 6.58 | | 7 | 2018/1/1 | 1000 | 38 | 3.65 | 3.14 | 6.79 | | 8 | 2018/2/1 | 1460 | 1000 | 3.96 | 4.06 | 8.02 | | 9 | 2018/3/1 | 2931 | 74 | 4.24 | 3.56 | 7.80 | | 10 | 2018/4/1 | 2576 | 20 | 4.55 | 3.44 | 7.99 |

如果前两步的转化值偏差较大,也可在第三步时再次使用“加权法”平衡综合热度得分。