用更重要的最新观测值计算平均值

2024-04-20 10:13:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在建立一个算法,利用以往比赛的表现来预测体育赛事的结果。例如,我可能有两个如下所示的列表:

# list of game numbers
game_number = [1, 2, 3, 4, 5, 6, 7] 

# list of points scored   
points_scored = [100, 106, 99, 106, 89, 94, 113]

我可以使用以下公式轻松计算平均值:

# calculate mean
mean_points_scored = np.mean(points_scored)

但是,我希望最近的游戏在计算平均值时有更大的权重。有没有人有这方面的经验?你知道吗


Tags: of算法game利用number列表meanpoints
3条回答

权重的定义可以基于以下特定的定义标准。根据需要,{}的系数可能会改变,或者权重列表的部分数量可能会改变。假设有三个部分a,b,c15数据点,(假设x的因子在权重列表的末尾部分更大,因为recent games的权重越大)

a = [(3*x) for x in range(1,6)]
b = [(4*x) for x in range(6,11)]
c = [(7*x) for x in range(11,16)]

weights_define = a+b+c

game_number = [1, 2, 3, 4, 5, 6, 7,8,9,10,11,12,13,14,15]
points_scored = [100, 106, 99, 106, 89, 94, 113, 112,109,111,97,95,102,107,103]

 mean_points_scored = np.average(points_scored, weights=weights_define)  
 print(mean_points_scored)

输出:

102.77878787878788

我认为重量必须在不同的数组中定义:

weights_define = [1, 1, 1, 1, 1, 2, 3]
mean_points_scored = np.average(points_scored, weights=weights_define)  

因为威尔本给它下的定义是不准确的,太夸张了,根本不是数学!你知道吗

你可以查看一个Excel解释,它解释了数学是如何工作的(代码基本上就是数学,别忘了!)>;Excel Debunk

你可以用^{}做加权平均

mean_points_scored = np.average(points_scored, weights=game_number)

相关问题 更多 >