这是一个很有用的 公式比如:用户消费分值权重 , 产品关联分值权重 等等
公式
在 http://www.wolframalpha.com 中表示 :
e = (1+1/n) ^n
a*e^(-(x-b)^2/c^2)
a 峰值最大值
b 峰值x轴偏移量
c 弧度跨度
= 1*e^(-(x-1)^2/1^2)
修改 峰值 a = 2
这里 就 不一一展现 b 峰值x轴偏移量 , c 弧度跨度 了 大家可以 去 wolframalpha 自己去尝试
实例1 与时间有关的递减 :
import math
def gaussian(x,peak = 1.0 ,axis = 1.0 ,span = 1.0 ):
return peak * math.e ** ( - (x - axis) ** 2 / (span) ** 2 )
跨度 c 参考:
c = 1 : 在2. 5 附件急剧衰减
c = 2 : 4
c = 18 : 30 # 这个数 衰减统计 一个月 不错
c = 55 : 90 # 衰减统计 一个季度 不错
# 简单应用
消费1次得峰值4分 浏览1次峰值2分
统计某用户季度得分
数据:在前10天浏览10次,消费1次 ,前11天浏览5次
d10 = gaussian( 10 ,span = 55.0 )
d11 = gaussian( 11 ,span = 55.0 )
print d10 * 10 * 2 + d10 * 4 * 1 + d11 * 5 * 2
# 结果 33.0407089687
倒的高斯 - 实例2 :
公式 =
目的 与次数有关的产品分值化
本文转自博客园刘凯毅的博客,原文链接:理解高斯函数,以及在推荐算法中的应用,如需转载请自行联系原博主。
公式

在 http://www.wolframalpha.com 中表示 :
e = (1+1/n) ^n
a*e^(-(x-b)^2/c^2)
a 峰值最大值
b 峰值x轴偏移量
c 弧度跨度


修改 峰值 a = 2


这里 就 不一一展现 b 峰值x轴偏移量 , c 弧度跨度 了 大家可以 去 wolframalpha 自己去尝试
实例1 与时间有关的递减 :
import math
def gaussian(x,peak = 1.0 ,axis = 1.0 ,span = 1.0 ):
return peak * math.e ** ( - (x - axis) ** 2 / (span) ** 2 )
跨度 c 参考:
c = 1 : 在2. 5 附件急剧衰减
c = 2 : 4
c = 18 : 30 # 这个数 衰减统计 一个月 不错
c = 55 : 90 # 衰减统计 一个季度 不错
# 简单应用
消费1次得峰值4分 浏览1次峰值2分
统计某用户季度得分
数据:在前10天浏览10次,消费1次 ,前11天浏览5次
d10 = gaussian( 10 ,span = 55.0 )
d11 = gaussian( 11 ,span = 55.0 )
print d10 * 10 * 2 + d10 * 4 * 1 + d11 * 5 * 2
# 结果 33.0407089687
公式 =


目的 与次数有关的产品分值化
#
用户 对 某产品 分值化
# 比如 某用户 用过某产品 n次,我希望 n 无限大是一个 渐进某个值 而不是和 n 无限递增的
# 下面的 fun 结果是 1.6 ~ 10 分值直接的区域, 也就是 传说中的 产品感兴趣 “10分制” 简易版
def gs(x,peak = 9.0 ,axis =- 2.0 ,span = 11.0 ):
return " %.4f " % ( - 1 * peak * math.e ** ( - (x - axis) ** 2 / (span) ** 2 ) + peak + 1 )
>>> gs( 1 )
' 1.6451 '
>>> gs( 2 )
' 2.1148 '
>>> gs( 3 )
' 2.6800 '
>>> gs( 4 )
' 3.3161 '
>>> gs( 5 )
' 3.9970 '
>>> gs( 6 )
' 4.6969 '
>>> gs( 60 )
' 10.0000 '
# 比如 某用户 用过某产品 n次,我希望 n 无限大是一个 渐进某个值 而不是和 n 无限递增的
# 下面的 fun 结果是 1.6 ~ 10 分值直接的区域, 也就是 传说中的 产品感兴趣 “10分制” 简易版
def gs(x,peak = 9.0 ,axis =- 2.0 ,span = 11.0 ):
return " %.4f " % ( - 1 * peak * math.e ** ( - (x - axis) ** 2 / (span) ** 2 ) + peak + 1 )
>>> gs( 1 )
' 1.6451 '
>>> gs( 2 )
' 2.1148 '
>>> gs( 3 )
' 2.6800 '
>>> gs( 4 )
' 3.3161 '
>>> gs( 5 )
' 3.9970 '
>>> gs( 6 )
' 4.6969 '
>>> gs( 60 )
' 10.0000 '
本文转自博客园刘凯毅的博客,原文链接:理解高斯函数,以及在推荐算法中的应用,如需转载请自行联系原博主。