Python sklearn为游戏赢家预测准备数据集

Python sklearn为游戏赢家预测准备数据集,python,machine-learning,scikit-learn,dataset,classification,Python,Machine Learning,Scikit Learn,Dataset,Classification,我想根据之前的比赛结果预测比赛结果。对于每场比赛,我都有这些数据:第一队球员的ID、第二队球员的ID、第一队球员的武器ID和第二队球员的武器ID。例如: { "team1_ids": [ 12321323, 1421242, 54325235 ], "team2_ids": [ 55432453, 242462, 2234444 ], "team1_weapon_ids": [ 1, 3, 5 ],

我想根据之前的比赛结果预测比赛结果。对于每场比赛,我都有这些数据:第一队球员的ID、第二队球员的ID、第一队球员的武器ID和第二队球员的武器ID。例如:

{
  "team1_ids": [
    12321323,
    1421242,
    54325235
  ],
  "team2_ids": [
    55432453,
    242462,
    2234444
  ],
  "team1_weapon_ids": [
    1,
    3,
    5
  ],
  "team2_weapon_ids": [
    2,
    4,
    6
  ]
}
team1_weapon1 |...| team1_weapon6 | team2_weapon1 |...| team2_weapon6 | Result |
    1          ...         1             0         ...       1           -1
    0          ...         0             1         ...       1            1
和其他比赛的记录一样。总的来说,我有大约30个不同的球员ID,只有6种武器,在比赛中每个球员都是独一无二的

是否有任何简单的方法来准备数据集,以便进行进一步的
sklearn
分类?我正在研究不同的
sklearn
标签预处理,但还没有找到anwser


看起来,某种类型的
sklearn
OneHotEncoder是合适的,但它没有考虑到球员ID在球队中的位置切换对比赛结果并不重要。对于y值,我使用二进制标签:如果团队1获胜,则为1;如果团队2获胜,则为-1。

据我所知,您只需要编码每个团队使用的每种武器类型的数量

因此,我会将比赛记录描述为每队6个特征(每种武器的使用量)和1个标签栏

例如:

{
  "team1_ids": [
    12321323,
    1421242,
    54325235
  ],
  "team2_ids": [
    55432453,
    242462,
    2234444
  ],
  "team1_weapon_ids": [
    1,
    3,
    5
  ],
  "team2_weapon_ids": [
    2,
    4,
    6
  ]
}
team1_weapon1 |...| team1_weapon6 | team2_weapon1 |...| team2_weapon6 | Result |
    1          ...         1             0         ...       1           -1
    0          ...         0             1         ...       1            1

每个
团队[i]\u武器[j]
持有
j
-类型
i
-团队的武器数量(或二进制标志,如果其在每场比赛中是唯一的),
Result
是游戏结果。

我不确定,但玩家ID也会影响游戏结果。据我所知,像神经网络这样的分类器需要对输入进行二值化。我不建议按原样使用播放器id,因为它会导致过度拟合。您应该提取玩家的总结特征(如先前获胜次数、玩过的游戏次数、一起玩过的游戏次数、同一武器的使用率等),或者尝试使用所有玩家数据运行一些降维技术,如
PCA
LDA
AutoEncoder