哪种机器学习算法能够评估最佳的组合组合?

时间:2017-04-10 21:11:18

标签: machine-learning amazon-machine-learning

这是问题的简化版本:

  

你有一群五个战士。每个战士拥有1到10个物品,每个物品可以带来1件物品参加战斗。给出关于战斗的信息(地形类型,时间等),每个战士应该选择哪种武器产生最强的群体?

物品可以是弓,盾,剑,弹弓,医疗包,马等。地形可以是山地,平原,沼泽,雪等。

请注意,规则不能轻易编纂,因为它们基于项目和地形条件之间的协同作用:例如,剑"是一个很好的武器,并且是一个很好的武器。是一个好武器,但是五个带剑的战士或五个带弓箭的战士比两个带弓箭的战士和三个带剑的战士更糟糕,因为五个带剑的战士很容易受到无掩护的远程攻击,五个带弓箭的战士被盾牌变得无用。也有复杂的地形条件,例如,如果地形非常难以穿越,或者如果你在山顶,弓是更好的。一匹马在平坦的地形上会很棒,但是如果一个人有一匹马而其他人没有武器那么这匹马就没用了。

我天真的解决方案是(a)训练机器学习回归算法以获取地形信息和一组5项组合作为输入并产生一个值,其中更高更好,然后(b)产生所有组合输入项目,将每个项目提供给算法,并选择最高值。然而,随着组合系统爆炸,这种情况变得非常昂贵。

是否有更好的算法来说明"考虑到所有这些可能性,选择最佳组合"?如果它可以在亚马逊的机器学习堆栈上使用,则可以获得奖励。

1 个答案:

答案 0 :(得分:0)

这不是机器学习问题。这是一个搜索/优化问题,因此没有最好的机器学习"它的算法。 请参阅:https://en.wikipedia.org/wiki/Mathematical_optimization

鉴于你已经有一种廉价的方式来模拟一个地形和组合的战斗,你在天真的方法中提到的问题是测试所有组合太昂贵,只是不要!有许多搜索算法会尝试修剪您的搜索空间(请参阅https://en.wikipedia.org/wiki/Beam_search)。一种易于实现的技术非常适合您的情况(它恰恰是典型的例子之一)是使用遗传算法,其中您的基因型是战士的组成。 GA有很多库,我打赌你可以导入AWS。