Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.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
Java Foosball结果预测_Java_Mysql_Prediction - Fatal编程技术网

Java Foosball结果预测

Java Foosball结果预测,java,mysql,prediction,Java,Mysql,Prediction,在我们的办公室,我们经常在下班后玩几轮足球/桌上足球。我编写了一个小java程序,从可用的球员中生成随机的2vs2阵容,然后将比赛结果存储在数据库中 目前对结果的预测使用了4名参赛选手之前所有比赛结果的简单平均值。这给出了一个非常粗略的估计,但我想用更复杂的东西来代替它,考虑到以下因素: 球员作为进攻球员可能打得好,但作为防守球员可能打得不好(反之亦然) 球员在对抗特定对手时表现出色/对抗其他对手时表现不佳 有些团队合作得很好,其他团队则不然 技能随时间而变化 尽可能准确地预测比赛结果的最佳

在我们的办公室,我们经常在下班后玩几轮足球/桌上足球。我编写了一个小java程序,从可用的球员中生成随机的2vs2阵容,然后将比赛结果存储在数据库中

目前对结果的预测使用了4名参赛选手之前所有比赛结果的简单平均值。这给出了一个非常粗略的估计,但我想用更复杂的东西来代替它,考虑到以下因素:

  • 球员作为进攻球员可能打得好,但作为防守球员可能打得不好(反之亦然)
  • 球员在对抗特定对手时表现出色/对抗其他对手时表现不佳
  • 有些团队合作得很好,其他团队则不然
  • 技能随时间而变化
尽可能准确地预测比赛结果的最佳算法是什么

有人建议用神经网络来做这个,听起来很有趣。。。但我没有足够的知识来说明这是否可行,我也怀疑这可能需要太多的游戏才能得到合理的训练

编辑:
由于一些项目的最后期限,不得不从这件事上休息更长的时间。为了使问题更加具体:

给定以下mysql表,其中包含迄今为止进行的所有比赛:

table match_result

match_id      int pk
match_start   datetime
duration      int (match length in seconds)
blue_defense  int fk to table player
blue_attack   int fk to table player
red_defense   int fk to table player
red_attack    int fk to table player
score_blue    int
score_red     int
如何编写函数predictResult(blueDef、blueAtk、redDef、redAtk){…}

为了尽可能精确地估计结果,执行任何sql、进行计算或使用外部库?

为什么要使用neuralnet?使用统计数据,可能每个玩家之间的相关性是一个很好的衡量标准。

首先,让我们收集一些信息: 对于给定的玩家,我们需要:

  • 他们打的位置
  • 总分
  • 一个好的攻击者会得分。 一个好的后卫会阻止得分


    真正的信息将来自一个好的攻击者与一个好的防守者的较量。

    尝试应用朴素贝叶斯分类器

    贝叶斯学习是一种概率学习 基于 假设 利息由概率决定 分布及其优化 决策可以通过推理做出 把这些概率加在一起 利用观测数据。[Mitchell,T。 (1997),机器学习]

    相同的球员分布可能会导致不同的比赛结果。如果数据中有一个模式,一个基于变量的模式,朴素贝叶斯分类器可能会产生很好的结果

    算法不是很复杂。我认为,一个具备一定概率知识的人,能够理解并应用它

    在入侵检测系统中,它通过查看各种网络参数来确定网络异常。贝叶斯方法可能在特定类型的数据中非常成功,并产生高TP和低FP率。但这也可能导致高FP率,这取决于你的数据。您的数据将决定最佳方法

    您可以使用数据挖掘软件库Weka(),并尝试不同的算法。它包含朴素贝叶斯分类器。
    试试看。

    一个选择是试着猜测点扩散为。如果你的游戏比玩家多,你可以通过构建所有游戏的游戏矩阵(一队中的玩家+1,另一队中的玩家+1,观众0)和排列的结果向量,对每个玩家的分数进行最小二乘拟合。

    使用TrueSkill算法,这一点非常好。我已经为foosball和chess实现了它,它运行得非常好。同事们告诉我,它在这方面做得太好了


    有关其工作原理的完整详细信息以及到我的实现的链接,请参阅我的“”博客文章。

    。有些人认为神经网络适用于一切事物;请参阅每日WTF::-)