0

我正在尝试根据历史数据集预测比赛获胜者,如下所示,

数据集

该数据集包括 IPL 赛季,Team_Name_id vs Opponent Team 是 IPL 中的球队名称。我已将匹配 id 设置为 Row id 并创建了模型。运行实时测试时,结果不如预期(如下所示)

实时测试

目标设置为 Match_winner_id。我是否缺少任何配置?请帮忙

4

1 回答 1

1

该模型工作正常。只有两个问题:

  • 你的输入数据不是很好
  • 模型无法知道这两支球队中只有一支应该获胜

数据质量

预测模型需要高质量的输入数据,以对模型进行逆向工程来解释给定结果。此输入数据应包含可用于预测给定不同输入数据集的结果的信息。

例如,在预测房价时,它需要知道郊区(类别)、卧室/浴室/停车位的数量、建​​筑物的年龄和售价。然后,它可以预测其他具有稍微不同的变量组合的房屋的售价。

但是,根据您的屏幕截图,您将提供以下信息(可能还有更多信息)来进行预测:

  • 团队:不太好,因为您将 C 列和 D 列分开。模型将假定它们是不相关的信息。它没有意识到这两个值可以交换。
  • 比赛日期:无用的信息,除非结果与时间成比例变化(例如,球队不断变得更好)
  • 赛季:与比赛日期一样,这可能没用,因为你总是在预测未来——你不会预测过去的赛季
  • 场地:仅当特定团队总是在给定场地获胜时才相关
  • 折腾决定:这真的会影响结果吗?此外,它仅在游戏开始后才知道,因此对于预测未来的游戏并不好。
  • 获胜类型:直到比赛结束你才知道获胜类型,因此它不适合预测未来的比赛。
  • 得分:同样,直到实际比赛才知道,所以对未来的预测没有好处。
  • 最佳人选:不知道未来的比赛。
  • 裁判员:裁判员如何影响比赛结果?
  • 城市:是的,考虑到主队通常具有优势。

您提供的可用于预测未来比赛的信息非常少。真的只有球队和场地。其他一切要么是游戏本身的一部分,要么无关紧要。

只选择两支球队中的一支

当 ML 模型查看您的数据并尝试进行预测时,它会查看您提供的所有数据。例如,它可能会注意到,对于给定的场地和赛季,Team 8 的获胜倾向更高。因此,鉴于场地和赛季,它将有利于第 8 队获胜。该模型没有概念认为唯一可能的结果是 C 和 D 列中给出的两支球队之一。

您正在预测两个给定的团队,并且将团队列在 C 列或 D 列中,这没有任何意义 -如果您在列之间交换团队,结果是相同的,但模型没有这个概念。此外,关于 Team 1 vs Team 2 的信息与 Team 3 vs Team 4 完全无关。

你应该做的是为每个团队创建一个数据集,列出他们所有的比赛,加上一个显示结果的列——一个布尔值(赢/输)或一个代表他们赢的跑数的值(其中负数是亏损)。然后,您将要求他们的模型预测该团队的结果,给定输入数据,这将是赢/输或高于/低于另一支球队的分数。

但核心是,我认为您的输入数据没有足够丰富的内容来做出明智的预测。问问自己:“如果我要猜测哪支球队会获胜,我想知道什么数据?” 可能是过去的结果、天气状况、每支球队的球员、他们上周打了多少场比赛等。这些信息都没有作为输入数据的每一行提供。

于 2017-06-16T04:27:57.873 回答