归一化在机器学习中经常避不过的一环。
1、归一化方法:单纯数学层面的归一化(一般是0~1.0, 或者0~100, ):
1)除于最大:score = x/ max
2) 除间隔: score = x-min/ (max-min)
3)利用指数性质: score(x) = sigmoid(x), 或者其他类似的函数。
归一化到同一尺度便于分数表示, 以及在机器学习输入时一致,便于迭代优化。
2、应用场景:为了展示区分度:
这个本质上和1是一样的,但操作上略有不同,它不要求有最大值。
用户\关注点 | 关注点1 | 关注点2 |
用户A | 3次 | 4次 |
用户B | 1次 | 8次 |
这里有按用户的归一化,以及按关注点的归一化(行归一,按用户归一; 列归一, 按关注点归一)
行归一的话: 可以描述用户在关注点1 和关注点2之间差别。 直接比较关注点1、2之间的频次差距,频次多的则高。
列归一的话: 按照列归一的方法,如果本身关注就不多,比如关住点1,如果按行归一是比较吃亏的,其实用户A是对关注点1很感兴趣的相比其他用户,但是呢按用户内部的话比关注点2要低很多,实际上关注点2可能是影视音乐一样大家都有的,而且高频的,实际上分数不应该这么高。
当然按列归一一个问题是: 当一个用户在某个关注点有一定增长的趋势(比如最近刚访问了2次),这中热情度不能玲离尽致的体现。