使用数据分析工具预测口袋妖怪会出现在哪里
介绍
基于我上一篇关于 Red Sqirl 和 Pokemon 的博文的成功,我决定再写一篇更高级的博文:Red Sqirl - Pokemon 的第一步教程
我又开始玩口袋妖怪了
Red Sqirl 是什么?
Red Sqirl 是一款用于分析大数据集的新工具。我之前的教程概述了如何设置将数据源添加到 Red Sqirl 以及如何对这些数据进行基本分析,作为示例,我使用了来自 Pokemon Go 的数据集。
在本教程中,我将展示如何使用 Spark 决策树和 Red Sqirl 创建预测模型,并使用 Pokemon Go 数据集,我们将能够预测 Pokemon 将在游戏中出现的位置。决策树 - spark.mllib
有关决策树的更多信息:树木和森林的简要介绍
决策树是一种用于分类和回归的非参数监督学习方法。目标是通过学习从数据特征推断出的简单决策规则来创建一个预测目标变量值的模型。
本书《用 R 进行机器学习》中的定义 - 从名称就可以看出,决策树学习者以树结构的形式构建模型。该模型本身包含一系列类似于流程图的逻辑决策,其中决策节点指示要对某个属性做出的决策。这些决策节点分为表明决策选择的分支。树以叶节点(也称为终端节点)终止,叶节点表示遵循一系列决策的结果。要分类的数据从根节点开始,在那里根据其特征的值通过树中的各个决策。数据所采用的路径将每条记录汇集到叶节点,然后为其分配一个预测类。
Red Sqirl 是一个可以直接安装在 Hadoop 集群上的平台,其中包含适用于不同 Hadoop 技术的软件包。Red Sqirl 中包含的其中一个软件包适用于 Spark。
要在 Red Sqirl 中使用 Spark,您需要在所有数据节点上安装以下 Python 库:
- python-dateutil
- numpy(Spark 用于机器学习)
从红色天空开始
要开始使用 Red Sqirl,您可以查看此入门教程:Red Sqirl 数据分析平台简介
概念验证
对于本教程,我将使用 Pokemon go 上的一个小数据集,由于它是一个小数据集,因此本教程结束时的结果不会很有用。
但这只是一个概念证明,如果您将这些步骤应用到更大的数据集,您将能够获得一个非常准确的预测模型。
本教程使用的数据集来自这里:https://www.pokemonradargo.com/
我只是将地图信息与特定时间的预测数据结合起来。
标头 ID INT、Pokemon CATEGORY、时间戳 STRING、经度 FLOAT、纬度 FLOAT、温度 INT、气压计 INT、湿度 INT、风 INT、近水 CATEGORY、近草 CATEGORY、近建筑 CATEGORY
1,Drowzee,14/07/2016 13:48,53.334968,-6.251446,16,1026,63,19,否,是,是 2,Drowzee,14/07/2016 10:11,53.337254,-6.251597,14,1026,82,15,否,否,是 3,Drowzee,14/07/2016 10:23,53.339945,-6.248335,14,1026,77,13,否,是,否 4,Drowzee,14/07/2016 12:24,53.345677,-6.248267,17,1026,59,15,否,否,是 5,Drowzee,14/07/2016 15:31,53.34038,-6.261259,18,1026,52,11,否,否,是 6,Drowzee,14/07/2016 14:08,53.342125,-6.262587,17,1026,68,17,否,否,是 7,Drowzee,12/07/2016 13:27,53.344171,-6.259333,16,1014,55,20,否,否,是8,Drowzee,14/07/2016 11:31,53.348675,-6.255442,16,1026,63,11,否,否,是 9,Drowzee,14/07/2016 13:02,53.356889,-6.258702,17,1026,59,17,否,是,是 10,Drowzee,12/07/2016 22:53,53.347341,-6.287458,12,1016,82,15,是,是,否 11,Squirtle,14/07/2016 10:07,53.332052,-6.253498,14,1026,82,15,是,否,是 12,Squirtle,14/07/2016 13:51,53.333941,-6.250503,17,1026,68,17,否,否,是 13,Squirtle,18/07/2016 16:41,53.334569,-6.255064,25,1018,57,11,否,否,是 14,Squirtle,14/07/2016 10:00,53.335854,-6.225442,14,1026,82,15,是,否,是15,Squirtle,24/07/2016 19:24,53.338531,-6.259332,17,1014,73,35,是,是,否 16,Squirtle,14/07/2016 13:50,53.339978,-6.272175,17,1026,68,17,否,是,是 17,Squirtle,20/07/2016 10:18,53.358605,-6.225089,20,1008,73,24,是,否,是 18,Squirtle,19/07/2016 07:56,53.358854,-6.229893,19,1016,78,11,是,否,否 19,Squirtle,12/07/2016 13:12,53.366995,-6.280585,16,1014,55,17,是,否,否 20,Squirtle,14/07/2016 11:36,53.375874,-6.319334,16,1026,63,11,是,否,
步骤
这里的想法是预测口袋妖怪会出现在哪里。
那么让我们开始吧
- 在 Pig 页脚中,将新的 Pig 源图标拖放到画布上。
- 双击打开源操作。
- 现在将动作命名为“Pokemon”。
- 评论操作“这是一个使用 Pokemon 数据的教程”。
- 单击“确定”。
- 在数据集屏幕上,单击路径字段或按钮。
- 单击“pokemon.mrtxt”旁边的单选按钮 - 如果找不到,请单击搜索按钮刷新视图,或者您可能需要导航到文件系统。
- 此时,您将看到数据正确显示在屏幕上,字段的名称为“Field1字符串,Field2字符串...”
- 在特征标题行上,单击编辑按钮。
- 一旦出现,您可以选择“更改标题”
- 将“Id INT、Pokemon CATEGORY、Timestamp STRING、Longitude FLOAT、Latitude FLOAT、Temperature INT、Barometer INT、Humidity INT、Wind INT、Near_Water CATEGORY、Near_Grass CATEGORY、Near_Buildings CATEGORY”复制并粘贴到值字段中。
- 单击“确定”。
- 您现在可以确认标题是正确的。
- 单击“确定”退出配置窗口。
如果将鼠标光标放在源操作上,您将能够看到一些配置详细信息。
接下来,将新的 Pig Select 操作图标拖放到画布上。
- 创建从“Pokemon”到新的 Pig Select 操作的链接。
- 双击新的 Pig Select 操作将其打开。
- 将该动作命名为“随机”。
- 您现在将看到此操作的配置页面。
- 在第一页点击复制
- 添加一个新行,其中包含函数 RANDOM(),并将其命名为 rnd,类型为 Double
- 单击下一步
- 单击下一步
- 单击“确定”
现在将另一个 Pig Select 操作图标拖放到画布上。
- 创建从“随机”到新的 Pig Select 操作的链接。
- 双击打开此新动作。
- 并将这个新动作命名为“预测”。
- 在第一页点击复制
- 单击下一步
- 点击下一步
- 添加 where 语句 rnd >= 0.3
- 将输出类型更改为文本 Map-reduce 目录
- 单击“确定”
现在将另一个 Pig Select 操作图标拖放到画布上。
- 创建从“随机”到新的 Pig Select 操作的链接。
- 双击打开此新动作。
- 并将这个新动作命名为“训练”。
- 在第一页点击复制
- 单击下一步
- 点击下一步
- 添加 where 语句 rnd < 0.3
- 将输出类型更改为文本 Map-reduce 目录
- 单击“确定”
现在将 Spark 决策树图标放到画布上。
- 从“训练”创建一个链接,并从“预测”创建一个链接到新的 Spark 决策树操作图标。
- 双击它即可打开它。
- 将动作命名为“sparkdtree”。
- 在第一个配置页面,选择id为ID,选择Pokemon为目标,点击下一步。
- 从预测器中取消选择“国家”和“城市”,然后单击“下一步”。
- 如果您使用 Spark,请将分区更改为 1。
- 点击确定
接下来,将 Pig Join 操作从页脚拖放到画布上。
- 创建从“预测”到新猪加入动作的链接。
- 创建从“sparkdtree”到新的 pig join 操作的链接。
- 双击 Pig Join 并将其命名为“pokemonData”。
- Pig Join 操作的第一个配置页面将列出表别名,只需单击下一步。
- 在下一页上,只需添加 3 行;
- pokemonData.label; pokemonData.score; prediction.pokemon 并单击 OK 并单击下一步。
- 此页面有两个交互,用于指定连接类型和要连接的字段,我们将使用默认连接类型“连接”,因此无需更改。在“连接字段”列中,输入“sparkdtree.label”和“prediction.ID”。此条件将把两个表连接在一起。
结束
现在您已经完成了决策树,您可以开始预测口袋妖怪将在游戏中出现的位置。
我只需在预测源中添加一行新代码,然后再次运行即可获得我的预测。我的新代码行中 pokemon 名称为空。示例行:21,,20/07/2016 14:23,53.237642,-6.239801,19,1006,53,12,Yes,No,No
在这张图片上你可以看到结果。
结论
再次强调,这只是使用小数据集作为示例的概念证明。抱歉,我们这里的结果不会帮助您掌握 Pokemon Go。但如果我们使用更大的数据集,这些步骤将有助于汇总准确的预测。
预测数据分析具有无限的可能性和应用,我们这里的例子只是以一种轻松的方式展示如何使用 Red Sqirl 作为工具来实现它。使用正确的工具,数据分析可以快速而高效。
免责声明:本内容来源于第三方作者授权、网友推荐或互联网整理,旨在为广大用户提供学习与参考之用。所有文本和图片版权归原创网站或作者本人所有,其观点并不代表本站立场。如有任何版权侵犯或转载不当之情况,请与我们取得联系,我们将尽快进行相关处理与修改。感谢您的理解与支持!
请先 登录后发表评论 ~