喜欢玩口袋妖怪吗?你知道怎么用机器学习来预测谁是下一个赢家?

喜欢玩口袋妖怪吗?你知道怎么用机器学习来预测谁是下一个赢家?

在本文中,我们将使用机器学习来预测口袋妖怪大战的胜利者。这将是令人兴奋的,因为我们将预测我们从未见过的战斗的结果。如果您想继续,那么包含代码的Jupyter notebook的链接就在这里https://github.com/saurabhcharde/Pokemon_Battle_Winner_Prediction_using_ML。最后,你可以自由地展示给你的朋友,并通过预测口袋妖怪战斗结果成为一个神奇的口袋妖怪“巫师”!

介绍

我们都很熟悉流行的口袋妖怪系列,它成了我们的童年中愉快的一部分。最近,Pokemon Go游戏又掀起了一波Pokemon的狂热。现在我们面临的问题是,考虑到每一个口袋妖怪的一些特征,比如它的攻击、防御或速度值等,我们需要预测一场从未发生过的随机口袋妖怪大战的胜利者。听起来很有趣!!

但在开始之前让我们先熟悉一下背景。

机器学习

预测胜利者的困难在于,我们只知道少数的口袋妖怪,但事实上,目前世界上大约有800种口袋妖怪。现在为了预测一场战斗的胜利者,我们需要研究所有的800个口袋妖怪,观察他们的动作,他们的特殊攻击,他们的比赛等。简而言之,有很多事情(数据)要考虑,因此将需要我们几天来获得足够的知识,以正确预测一场战斗的胜利者。

这就是机器学习变得有用的地方。当你有很多数据,你需要做一些预测(预测今天的天气,根据症状预测疾病等),我们使用机器学习(非常简单!)。

让我们来看一看数据集


喜欢玩口袋妖怪吗?你知道怎么用机器学习来预测谁是下一个赢家?

数据集的前5行

数据集是关于特定主题(这里是Pokemon)的大量数据的集合。这个数据集为我们提供了诸如生命点、攻击、特殊防御和神奇宝贝传奇(1)与否(0)等信息。该图显示了前5个Pokemon的数据,但数据集中总共有800个Pokemon(意味着800行)。

现在已经看到了数据集,准备对其应用一些机器学习。

如何应用机器学习

构建完整的ML模型包括三个步骤:

  1. 建立分类器
  2. 训练分类器
  3. 测试分类器

建立分类器

注意:分类器用于将数据分类或分离为类。给一张图片,把它归类为狗或猫。

为了从数据中学习,我们需要使用一些ML模型(分类器),这些模型通常是在给定的数据中发现模式的算法,以帮助它们进行预测(不明白?继续读下去)。

对于这个任务,我们将使用一个随机森林(Random Forest)分类器,这是一个更好的决策树分类器的实现。

了解他们

决策树


喜欢玩口袋妖怪吗?你知道怎么用机器学习来预测谁是下一个赢家?

一种简单的动物分类决策树

假设我们的任务是根据动物的类型、身高、体重或速度等特征来预测动物。使用决策树可以很容易地对这个任务进行建模,如图所示。因此,在决策树的每个点上,我们提出一个问题,并根据答案将树进一步划分为子树。这个过程一直重复,直到我们预测一只动物。因此,给定一个数据集,决策树分类器将在每个点上提出正确的问题(增加信息增益),以便以增加每个预测的可信度(提高结果的纯度)的方式划分树。

时间复杂度=O(深度)

随机森林

喜欢玩口袋妖怪吗?你知道怎么用机器学习来预测谁是下一个赢家?

一个简单的随机森林可视化

由于森林是树的集合,因此随机森林分类器使用多个决策树,最后将每个决策树的结果组合起来预测其最终结果。我们可以把从多棵树学到的东西组合成一棵树。与使用单一决策树相比,该方法具有更好的效果。


喜欢玩口袋妖怪吗?你知道怎么用机器学习来预测谁是下一个赢家?

有100决策树的森林

最后,我们建立一个随机森林分类器如下。n_estimators给出了用于生成森林的决策树的数目(这里使用了100)。

训练分类器

重申这项任务,两个口袋妖怪的一套功能(速度,攻击等)谁将获胜。

喜欢玩口袋妖怪吗?你知道怎么用机器学习来预测谁是下一个赢家?

分类器的训练与预测精度

我们在Pokemon的数据集上训练(或拟合)分类器(即x_train),并最小化训练集上预测值和实际值(y_train)之间的损失。这里的训练意味着找到数据集中不同特征之间的关系来进行预测。

然后我们计算我们的分类器的准确度,结果是95%(意味着我们的分类器将预测100个匹配中95个匹配的正确结果),这是一个非常好的准确度开始。

到目前为止,我们已经完成了从构建分类器到训练分类器所需的所有步骤,现在我们已经准备好在一些实际的东西上测试它。

测试分类器

时间终于到了,让我们随机给分类器一些口袋妖怪匹配,让它为我们预测谁会赢。我们已将所有这些随机匹配项存储在另一个名为test_data的数据集中。

看起来是这样的:


喜欢玩口袋妖怪吗?你知道怎么用机器学习来预测谁是下一个赢家?

具有样本匹配的测试数据集

这两个栏目对应的是即将参赛的口袋妖怪。我们正在将这两个口袋妖怪输入分类器,它将返回最有可能的胜利者为那场战斗。记住,分类器不仅仅是随机预测赢家。事实上,它正在仔细分析几个参数,以便做出正确的决定

准备好看赢家了!

现在你认为谁应该在大岩蛇波波中获胜?。

喜欢玩口袋妖怪吗?你知道怎么用机器学习来预测谁是下一个赢家?

让我们用机器学习模型来预测它。

喜欢玩口袋妖怪吗?你知道怎么用机器学习来预测谁是下一个赢家?

赢家看起来很明显。现在让我们给它一些棘手的问题。

那么魔墙人偶可达鸭呢?

喜欢玩口袋妖怪吗?你知道怎么用机器学习来预测谁是下一个赢家?

事实上,这些匹配从未出现在口袋妖怪系列之前,我们预测会有结果(感觉很好!)。 那么谁会赢呢?


分享到:


相關文章: