我已经熟悉了许多机器学习的各种方法,但是我无法确定哪种方法最适合我给定的有趣问题。 (IE:这是一个有监督的学习问题,如果是这样,我的输入x和输出y是什么?)
一个神奇的聚会选秀包括坐在桌子周围的许多演员拿着一包15张牌。球员选择一张牌并将剩余的球传给他们旁边的球员。他们打开了一个新的包,并再次进行了3轮(45个决定)。人们最终得到了一个他们用来竞争的套牌。
我无法理解如何将我所拥有的数据结构化为学习所需的试验。我想要一个解决方案1)建立关于哪些卡相对于之前挑选的卡片的知识2)然后可以用来决定从给定的新包装中挑选哪张卡片。
我有一个我想学习的人类选择数据集。它还包括他们最终选择但最终丢弃的卡片的信息。什么可能是一种优雅的方式来构建这些数据用于学习,又称,我的功能是什么?
答案 0 :(得分:2)
These kind of problems are usually tackled by reinforcment learning, planning and markov decision processes. Thus this is not oa typical scheme of supervised/unsupervised learning. This is rather about learning to play something - to interact with the environment (rules of the game, chances etc.). Take a look at methods like:
In particular, great book by Sutton and Barto "Reinforcement Learning: An Introduction" can be a good starting point.
答案 1 :(得分:1)
是的,你可以训练一个模型来处理这个 - 最终 - 有监督或无监督学习。问题是因素的数量和当地的稳定点。不幸的是,此时的输入是游戏的状态:所有玩家挑选的牌(尤其是AI牌组的当前状态)以及手中牌组的牌。
正如您所说,您的输出结果应该是所选择的卡片。我觉得你有一个组合爆炸,需要大量的数据,或简化卡片功能,以允许算法提取比#34更深的含义;从这组8中选择卡片X。&#34 ;
在实践中,您可能希望模型为可用选项打分,而不是简单地选择特定卡。返回排名,健身指标或挑选每张特定卡的概率。
您可以在输入组织的选择上提供一些监督。例如,您可以将每张卡片作为一组特征提供,而不仅仅是卡片ID - 让算法有机会理解"建立一致的甲板类型。
您可能还希望进行一些工作来抽象(即简化)当前游戏状态,例如编写评估例程以总结正在构建的其他套牌。例如,如果该组中有6名玩家,并且您的RHO和他的对手都在建造烧伤甲板,那么您也不想这样做 - RHO将在6个甲板中的5个中通过最好的烧录卡周围,让你选择第二(或第三)。
至于算法...... 神经网络会随着这么多输入变量而爆炸。您想要一些与您的输入数据相匹配的更简单的东西。如果使用抽象属性,可以考虑一些决策树算法(朴素贝叶斯,随机森林等)。考虑到情况的相似性,您可能还会选择协作过滤模型。
我希望这有助于推动您设计功能。请注意,您正在攻击一个复杂的问题:可以使游戏受到人类欢迎的功能之一就是让很难自动化决策。
答案 2 :(得分:1)
每一个“选择”都是一个决定,输入信息为A :(您已经拥有)和B :(可用选项是)。
因此,在输入A + B +(有问题的卡)的情况下,决定“是否应该选择这张卡”的机器可以成为简单的二进制分类器。
例如,某人的第1包2包基本上提供1个“是”(选择的牌)和13个“否”(没有选择的牌),总共14列训练数据。
我们可能希望根据选择的内容对这些训练数据进行加权。 (当剩下的牌较少时,选择的重要性可能不如选择更多时重要。)
我们还可能要根据卡片的稀有性对这些训练数据进行加权。
最后,主要挑战是,除非我们进行智能转换,否则输入数据(功能)A + B +卡是不合适的。 (简单地将卡视为分类变量,并对其进行1热编码会导致结果太大而信息密度非常低。这肯定会失败。)
可以通过将其分为两个阶段来解决此难题。首先,我们对卡片进行矢量化处理,然后根据这些矢量构建特征。 http://www.cs.toronto.edu/~mvolkovs/recsys2018_challenge.pdf