一个属性是向量的分类问题

数据挖掘 机器学习 分类 聚类
2021-09-15 13:49:24

你好,我是一个外行,试图分析英雄联盟的游戏数据,特别是在给定物品构建的情况下预测给定英雄的胜率。

大纲

游戏结束时,玩家最多可以拥有 6 件物品。他们可以在游戏过程中以不同的顺序购买这些物品或调整他们的库存位置。

以这种方式,数据集可能包含以下行:

   champion id   |                 items ids               | win(1)/loss(0)
----------------------------------------------------------------------------
       45        |   [3089, 3135, 3151, 3157, 3165, 3285]  |       1
       45        |   [3151, 3285, 3135, 3089, 3157, 3165]  |       1
       45        |   [3165, 3285, 3089, 3135, 3157, 3151]  |       0

虽然项目的顺序不同,但构建是相同的,但我最初的想法是简单地将项目 ID 相乘,因为这会给我一个整数值,代表 6 个项目的组合。

虽然有数百种物品,但实际上英雄会抽取其中的一小部分(约 20 种)来形成其构建的核心(3 种物品)。游戏也可能在玩家有时间购买 6 件物品之前结束:

                items ids               
------------------------------------------
   [3089, XXXX, 3151, 3285, 3165, 0000]
   [XXXX, 3285, XXXX, 3165, 3151, 0000]
   [3165, 3285, 3089, XXXX, 0000, 0000]

XXXX item from outside core subset
0000 empty inventory slot

由于项目 3089 恭维冠军 45 具有项目 3089 的核心构建比缺少项目 3089 的核心构建具有更高的胜率。

每个冠军可用的数据集大小在 10000 到 100000 之间变化。平均值可能在 35000 左右。

问题

  1. 这是一个适合监督分类的问题吗?
  2. 我应该如何寻找核心项目组及其胜率?
1个回答

1)如果你想建立一个模型:

Input: Items bought
Output: Win/Loss

那么您可能想要学习输入的非线性组合来表示构建。例如,与与item_X配对时可能具有非常不同的目的item_Yitem_Z

对于输入格式,您可以考虑从项目列表中创建一个二进制向量。例如,如果只有十件物品,那么冠军购买的游戏items 1,4,5,9(以任何顺序)看起来像第 1 行;他还购买了一款游戏,item 2看起来7像第 2 行:

item_ID   | 0  1  2  3  4  5  6  7  8  9 
________________________________________    
champion_1| 0  1  0  0  1  1  0  0  0  1
champion_1| 0  1  1  0  1  1  0  1  0  1

有多种模型可能适合此任务。您可以使用决策树来实现可解释性。一个简单的神经网络SVM也可能会做得很好。这些都应该在大多数基本的 ML 包中找到。

2) 各种道具的胜率可直接计算。只需计算冠军使用相关物品的次数并获胜,然后除以冠军使用该物品组合的总次数。您可以对任何给定的组大小(1 到 6)执行此操作