我们正在创建一个基本的网站,用户每周都会收到待办事项。我需要创建一个算法,它基于这些待办事项的完成(或缺少),我为它们分配一个0- 100的健康分数。
每周有0-4个待办事项送到。可以完成、删除(标记为不相关)或保留待定待办事项。
如果用户没有完成他们的待办事项(待办事项状态下的待办事项),那么他们的健康指标就会很低。
我还想对待定状态进行加权。例如,第一周的待办事项并不像第四周的待办事项那样对分数有害。我只考虑使用过去4-6周的数据来确定分数。
对我应该采取的方法的任何帮助都将不胜感激。
我目前正在使用以下表示法
t0 # total to-dos given in week 0
t0_c # completed to-dos from week 0
t0_d # deleted to-dos from week 0
t0_p # pending to-dos from week 0发布于 2011-11-23 08:50:50
这听起来像是放Moving average的绝佳地方。
示例:
一周的健康=100*((该周未完成)^1.5)/8
然后在历史和当前健康得分上使用exponential moving average来获得当前健康。
发布于 2011-11-23 09:03:25
也许你可以每周分配完成分数,并为每周的完成分数分配权重-年龄。因为你只考虑过去5周的分数,所以你可能会有这样的结果(1表示完成,0表示等待)
week 1 [1,0,0,1] completion score = 50%
week 2 [1,0,1] completion score = 66.6%
week 3 [0] completion score = 0%
week 4 [1] completion score = 100%
week 5 [1,0,0,0] completion score = 25%所有的都不是总共4个待办事项,因为有些可能是无关紧要的
现在你分配每周的权重,你知道week1是5周前的,所以应该有更多的权重,最终在第5周下降,所以类似于
week1 weight = 30%
week2 weight = 25%
week3 weight = 20%
week4 weight = 15%
week5 weight = 10%现在只需将一周的完成分数与其权重相乘,并将术语相加
(50*30 + 66.6*25 + 25*0 + 15*100 + 25*10)/100 = 49.15%这种方法的一个缺点是,
假设Guy1 week1有1个待办事项待定,即
week 1 [0] => score = 0%假设Guy2 week1有两个待办事项,但有一个已完成,即
week 1 [0,0,1] => score = 33%Guy2得到了更高的分数,尽管他还有更多的工作要做
如果客户之间的待办事项数量平均大致相同,那么这将不是一个大问题。
https://stackoverflow.com/questions/8235950
复制相似问题