我有6个变量,其值在0到2之间,并且有一个函数,将这些变量赋给它们。通过查看两队的过去比赛来预测足球比赛的结果。
显然,取决于变量,函数的输出会更改。每个变量决定权衡算法的某个部分的权重(例如,与一周前的游戏相比,六个月前的游戏应权衡多少)。
我现在的目标是找出算法中不同变量之间以及算法不同部分之间的最佳比率,以便我的算法正确预测大多数匹配项。有什么方法可以实现?
我想到了通过机器学习来做类似的事情,类似于线性/多项式回归。 要确定我想给小费的接近程度,
哪个损失函数为
游戏最高分(为5)-预测结果得分
如果我能够将其最小化,希望在查看一些训练集(过去的赛季)后,理论上,当您给它一个新赛季以及预先计算出的变量作为输入时,它将获得最高分。
现在,我试图找出必须改变每个变量的大小和方向,以便每次查看新的训练集时损失减小。 您可能必须看看损失有多大,但我不知道如何找出要更改的变量以及向哪个方向更改。有可能吗,如果可以,我该怎么做?
目前,我正在使用javascript。
答案 0 :(得分:0)
我假设您正在尝试使用梯度下降来训练您的回归模型。
可以与梯度下降一起使用的损失函数必须是可微的,因此不可能简单地给/减除预测的某些属性。 可能适合该任务的损失函数是均方误差,可以通过平均预测值和期望值之间的平方差来简单地计算出均方误差。这样,您的期望值就是游戏中两支球队的得分。
然后,您将必须计算预测损失相对于预测函数用于计算其输出的权重的梯度。这可以使用反向传播来完成(对于此答案,其详细信息过于广泛,网络上有许多教程可用)。
函数梯度背后的直觉是,它指向函数最陡峭的上升方向。如果朝那个方向更新参数,则函数的输出将增加。如果此值是您的预测函数的损失,那么您希望它变小,因此您可以在与梯度相反的方向上走一小步。