我的数据应该以何种形式用于1v1比赛预测?

我目前正在开发一个AI来预测视频游戏中1v1比赛的赢家。问题是我不知道数据(输入和标签)应该以何种形式存在。目前我有以下数据:

  • 比赛的日期(有第0天)
  • 玩家1的名字
  • 玩家1的国家
  • 玩家2的名字
  • 玩家2的国家
  • 赢家

我也可以获得比赛的得分,但有时是三局两胜,有时是五局三胜,所以我不知道这些数据是否可靠。

基于我现有的数据,我的两个主要问题是:

  • 如果我只是颠倒玩家列,AI是否可能预测出两种不同的结果?
  • 如果是,我怎样才能避免这种情况?
  • 我如何告诉AI,我想要的预测只是我展示给它的两个玩家之一,而不是其他玩家?

提前感谢,我非常感激


回答:

你的数据似乎是分类数据,尽管我不完全明白你所说的玩家1和玩家2是什么意思。你有玩家的名字还是某种技能集?

神经网络或任何AI算法都是处理数字的。它们对现实世界一无所知,比如日子名称(星期一、星期二等)或国家名称。你需要做的就是在这些现实世界的问题和数字之间建立映射。

它们是分类数据(不能取连续值),你可以将日子从0映射到N。对于国家,你可以做同样的事情,每个国家可以有一个独特的ID。但你必须小心,如果在推理过程中模型接收到训练中不存在的日子或国家,模型会将其视为未知。因此,你要么添加所有相关国家,要么如果你无法预先知道这一点,你可以为未知国家和日子添加标签-1。每个特征你都会有一个列,每行代表一场比赛。在列中,你需要为那个特定特征和比赛对应相应的ID,然后你可以将这些数据传递给AI。顺便说一下,不同特征使用相同的ID/数字是可以的。(所以你可以用1代表星期二,而在另一列中1可以代表瑞士)对你问题的回答:

  1. 是的,理论上这是可能发生的。如果你有足够的样本和一个好的模型,模型本身可能会学会这一点。

  2. 如果你能做到,你可以向模型输入相对值而不是绝对值。例如,如果你有关于玩家的某些技能集属性/分数,你可以基于这些分数的差异来创建你的数据。例如,玩家1的射击得分为80,玩家2为78。你可以设置一个射击列,在那里你放入值80-78,那么模型就知道玩家1比玩家2高2分,或者如果相反,你可以放入-2,那么模型就知道玩家2在那个类别中比玩家1高2分。另一种方法是在训练数据中让每场比赛出现两次,第二次时玩家的顺序颠倒。模型也可能从数据中学会这一点。

  3. 这很容易做到,你的模型输出的不是玩家的ID或与玩家相关的东西。你的问题是一个二元分类问题。你的模型在任何情况下都应该输出0或1。0表示玩家1获胜,1表示玩家2获胜,然后你可以自己将这个输出转换为玩家。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注