Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 2005 预测某个时间点的游戏结果_Sql Server 2005_Probability - Fatal编程技术网

Sql server 2005 预测某个时间点的游戏结果

Sql server 2005 预测某个时间点的游戏结果,sql-server-2005,probability,Sql Server 2005,Probability,您好,我正试图根据MSSQL数据库中的过去信息,根据比赛分钟数和分数线,在任何时间点评估足球比赛的预测结果(主队的胜利、平局或失败) 我所设想的输出就像方格拉夫在棒球比赛中所做的那样 虽然有两条线,因为有三种而不是两种可能的结果 从数据和现有的表格中,我可以创建这样的游戏记录 Time TeamID Venue MatchID Result 6 TOT H 5 W 27 ASV A 5 W 58

您好,我正试图根据MSSQL数据库中的过去信息,根据比赛分钟数和分数线,在任何时间点评估足球比赛的预测结果(主队的胜利、平局或失败)

我所设想的输出就像方格拉夫在棒球比赛中所做的那样

虽然有两条线,因为有三种而不是两种可能的结果

从数据和现有的表格中,我可以创建这样的游戏记录

Time   TeamID Venue   MatchID  Result
 6    TOT     H       5        W
27    ASV     A       5        W
58    ASV     A       5        W
66    TOT     H       5        W
77    TOT     H       5        W
因此,在本场比赛的图表中,主队TOT将以45%左右的赢线开始(基于主队获胜的历史概率),当他们进球时,赢线将上升,在ASV得分两次后显著下降,但当他们得分上升到3-2时,赢线可能会超过90%,然后在90分钟结束时,赢线将缓慢上升到100%

因此,我想回顾一下我掌握的7500场比赛的数据,并根据这些数据确定90分钟比赛中每一分钟主队获胜、平局或失利的几率

例如,在最简单的情况下,在1分钟的比赛后,实际上44支主队得分,其中33支继续获胜,6平5负。客队得分的相应情况是主队9胜8平23负。然而,我很难弄清楚如何获得所有90分钟的分数线,并将其与最终结果进行比较(在任何特定分钟内只能进一个球)


TIA对于任何帮助

你总是可以在模型中添加一些东西,但我要做的第一件事是,对于每一场比赛,每分钟拿出分数,并假设获胜的概率不取决于进球的时间,而取决于现在的分数

所以现在你每场比赛有90个数据点

game1: 
    Minute:   0    10    20    30    40    50    60    70    80    90
    Score :[0 0] [0 0] [0 1] [0 1] [1 1] [1 1] [1 1] [2 1] [2 1] [3 1]
下一步我要做的是,对于每一分片,为每一个分数配置,将所有游戏的赢、输和平局数相加

因此,该表中的每个条目可能对应如下内容:

@minute 27, for score {home:5, away:2} : {homeWins: 9, draws:1, homeLosses:0}
您可能希望尝试使用分数差,而不是实际分数值

不管是哪种方式,一旦数据以这种方式格式化,就很容易得到合理的解决方案

如果一场比赛正在进行,并且是
第77分钟
,并且比分是
{home:5,offer:2}
,则(MLE)估计为90%赢,10%平,0%输(根据上面的示例表条目)

因此,您已经看到了包含“拉普拉斯平滑”将如何发挥作用:向每个赢/输/平局计数器的最终值添加+1。这样,如果你从未在这种情况下看到过损失,你就不会说它是不可能的,不可能是一个非常强烈的词(寻找或分发背景)

这种方法的一个明显问题是,如果你以前从未见过一个特定的分数组合,它会预测(33%,33%,33%),这在某些情况下显然是错误的

最简单的解决办法是强制执行“领先6分至少等于领先5分”的规则。这很难看,但这只是一个开始

为了避免这种特殊情况的逻辑,你可以尝试用蒙特卡罗近似法来平均这种方法

这些方法中最简单的一种是:在我所有的数据中,我预计每一队在比赛的每分钟都有大约1/30的机会进球->从当前点开始模拟比赛10000次,计算赢/输/平的次数,你就完成了


如果这太随机,或者处理器太密集,请切换到马尔可夫链。

对于以0-0结束的游戏,您没有问题吗?在这种情况下,您将没有分数记录。因此,假设你想计算出在第89分钟0-0结束主场胜利的机会。。。你真的很想把这几场比赛和最后一个进球的比赛与大多数以零分平局结束的比赛进行对比。但是在没有任何记录的情况下,我不知道你怎么能做到。