用Python来解读神奇宝贝

【入门】精灵宝可梦数据集分析 数据集下载 !wget -O pokemon_data.csv https://pai-public-data.oss-cn-beijing.aliyuncs.com/pokemon/pokemon.csv 准备工作 import numpy as np import pandas as pd 目的:以最效率的方式打赢道馆赛通关 因为宝可梦的攻击力会直接乘以它们所对抗的宝可梦属性相克值,所以在对道馆训练家的宝可梦未知的前提下,所拥有6只宝可梦的总对抗属性权重越高,基础值越高就说明总体战.. 阅读详情

640?wx_fmt=png


最近电影《大侦探皮卡丘》上映,相信很多人对皮卡丘都不陌生,特别是90后的,那可是儿时的回忆。皮卡丘的角色最初来自于一款游戏,但是大部分人是从动画片熟知的,也就是《神奇宝贝》(又叫《宠物小精灵》,《精灵宝可梦》)。而这次呢,我们就通过宝可梦们的数据,结合Pandas和Seaborn来了解这个神奇的宝可梦世界吧!


01.导入数据集


第一步,自然是先导入我们所需要的库并读取数据集:

640

运行结果:

640

数据的字段不算多,对于了解神奇宝贝的同学来说,应该很容易知道每个字段的意思。不过还是贴上每个字段的含义(按顺序):

数据集字段解释:

  • #ID:每个宠物小精灵的ID

  • 名称:每个口袋妖怪的名字

  • 属性1:每个口袋妖怪都有一个属性,这决定了他们的克制与被克制关系

  • 属性2:还有一些口袋妖怪是双重属性的

  • 总计:所有的统计数据的总和,某种程度上决定了精灵的强弱

  • HP:生命值,在被击倒之前宠物小精灵可以承受多少的伤害

  • 攻击:物理攻击的基础数值(例如Scratch,Punch)

  • 防御:抵抗物理攻击的基础数值

  • SP攻击:特殊攻击,特殊攻击的基础数值(例如火焰爆炸,泡沫射线)

  • SP Def:抵抗特殊攻击的基础数值

  • 速度:决定宠物小精灵的进攻顺序

  • 世代: 该精灵在第几世代中出现

  • 神兽: 该精灵是否为神兽



02.数据清洗


第二步,读取完数据后,一般先对数据做一个总体的了解。通过isnull()和describe()可以看到数据基本没有缺失值。type2这个字段有缺失值属于正常情况(因为一些神奇宝贝没有第二个属性),所以缺失值这块不用做任何处理。


通过和describe,可以发现,这份数据集包含了800个神奇宝贝的属性数据,跨越了6个世代,以及各个属性的最大最小值等。

640

640


03.各种花式数据分析


了解了数据的基本信息含义后,接下来就可以进行近一步的分析了,首先来看看不同属性的神奇宝贝数量,因为考虑到一些神奇宝贝拥有两个属性,所以这里先把属性1和属性2合并起来,再进行统计:

640


看下结果:

640?wx_fmt=png


在神奇宝贝的属性分布中,水系,普通系和飞行系数量排在前三,最少的后三名是冰系,妖精系和幽灵系。《神奇宝贝》分为好几个世代,来比较每个世代第一次出现的神奇宝贝数量都有多少:

640

640

在六个世代中,登场神奇宝贝最多的是第一代和第五代(超过160种),最少的是第六代。


除此之外呢,我们还可以看看大体的一些能力值的分布,比如血量,发现大部分是处于50-100区间。类似地,也可以对其它特征做同样的可视化探索。

640

640

04.写个函数,PK宝贝的平均值


最后,我们来写一个函数,用来比较不同属性的神奇宝贝的平均能力值,并且可视化。比如,我想知道哪一类的神奇宝贝的防守能力是比较厉害的呢?来看看分析结果(函数会返回排序结果和图片,这里只贴上可视化结果):

640

640?wx_fmt=png

从结果来看,岩石系的防守能力最好,电系的防守能力最差(这里心疼下电气老鼠比卡)


同样的,我们可以运行下函数power_rank(‘HP’),看看哪一类神奇宝贝的平均血量最高,或者是其它的,只需要保持传入的参数和数据列名一样即可。


除了这些,我还想了解下这些特征间是否有相关性,比如,攻击能力高的是不是血量也会高,它们间的相关性有多高呢:

640

640?wx_fmt=png


从结果来看,两者间的相关系数为0.42,属于中度相关。那如果我要看其它的呢,也要一个个只要写吗?其实不用,我们使用相关矩阵,并且用一个heatmap图就可以了:

640

640?wx_fmt=png

这样是不是很清晰了呢,整体上来看,颜色越深,表示相关性越高。可以看到最高的相关系数是0.51(自身和自身比较的不算),也是属于中度相关。所以,神奇宝贝各能力特征间就不算有很强的相关性了。


其实,还可以进一步探索,比如,就拿一种类型的来看(例如水系)它们间的相关性是如何的。有兴趣的小伙伴可以尝试一下。


05.终极探索,神奇宝贝之王


目前为止,貌似只是了解了大概,我还想知道究竟是哪一些神奇宝贝最厉害,是不是比卡丘呢?接下来就让我们来一探究竟!


先来看综合能力,就是看Total数值最高的,我们对其做一个排序,并查看前五名:

640


呃。。。好吧,这里注意到最后一列Legendary都是Ture,说明了都是神兽级别的,这对非神兽的神奇宝贝就不是很友好了,所以,我们就不讨论神兽的,当然也可以专门分析神兽的数据,看看神兽里面是哪个最厉害,哪个最菜(不过这里已经给出来了,就是裂空座的综合能力最高了)。于是看看非神兽里综合能力值最高的有哪些:

640


这些基本都不认识,也不一一去搜索了。但是接下来,我们将来写一个函数,接受两只神奇宝贝的输入,并且用雷达图可视化它们的能力分布:

640


这个函数整体上还是比较简单,参考源码应该可以理解,作图用的是Pyecharts,即动态又炫酷,体验感真的不错,来看下结果:

640

640

这里是比较了比卡丘和杰尼龟,两者的综合值相差不大,但是可以很清楚的看到,皮卡丘的优势在于速度,弱势在于防御能力;而杰尼龟则是各方面比较平衡。如果你是神奇宝贝的主人,将会采用什么样的战略呢?

640


神奇宝贝对于我而言,是小学时候的一部经典,那时候就老幻想有一只比卡丘多好呀,大部分的神奇宝贝都很可爱。我最喜欢的是可爱的比卡丘,呆萌的可达鸭,和“索纳斯”的果然翁,你们喜欢哪一些神奇宝贝呢,欢迎大家讨论!

python编程-第一节-起步-003 1. 初识Python - 就像相亲一样,你们进行了第一次"亲密接触"。Python用它的简洁优雅打动了你,而你也为它的强大功能所折服。 2. 安装大作战 - 这可能是最刺激的部分!你像个专业黑客一样在电脑上安装了Python。虽然过程中可能遇到了几个"小妖精"(错误提示),但都被你机智地解决了。 3. 编辑器选美大赛 - 你精心挑选了一个文本编辑器,就像给Python找了个漂亮的"房子"。现在你的代码可以住得舒舒服服了! 阅读详情

相关推荐

Python+OpenCV实战:AI图像处理从入门到精通

我们的目的就是让大家学会用Python和OpenCV进行AI图像处理。从最基础的图像处理知识开始,一直到能够独立完成一些复杂的图像处理项目,涵盖了图像的读取、处理、特征提取、识别等多个方面。首先我们会介绍一些核心概念,让大家对图像处理有个初步的认识;接着讲解核心算法原理和具体操作步骤;然后通过数学模型和公式进一步加深理解;再进行项目实战,展示代码案例并详细解读;之后介绍实际应用场景;推荐相关工具和资源;探讨未来发展趋势与挑战;最后进行总结,提出思考题,还有常见问题解答和扩展阅读资料。OpenCV。

AGI×大数据,开启智能时代的认知跃迁;解码AGI,赋能数据驱动的智能革命。 910

文字版宝可梦游戏

System.out.println(r1.getId() + "对" + r2.getId() + "使用了普通攻击!System.out.println(r1.getId() + "对" + r2.getId() + "使用了十万伏特!System.out.println(r1.getId() + "对" + r2.getId() + "使用了电闪雷鸣!System.out.println(r.getId() + ",剩余hp为" + r.getHp());

aaaaadongcn的博客 556

数据挖掘中AI人工智能算法的实战应用

我们的目的就像是在一片大森林里寻找宝藏一样,在海量的数据中找到有价值的信息。数据挖掘和AI人工智能算法就是我们手中的寻宝工具。范围呢,涵盖了很多领域,比如商业、医疗、金融等等,只要有数据的地方,就可能用到这些工具去挖掘宝藏。这篇文档就像一个有很多房间的大房子,每个房间都有不同的宝贝。首先我们会介绍一些基本的概念,就像了解房子的布局。然后会深入讲解算法原理,就像学习打开宝藏箱子的方法。接着通过实际项目让大家看看这些方法怎么用,就像亲自去寻宝。之后会介绍应用场景、推荐工具资源,再探讨未来的发展和挑战。

大模型应用工坊 819

Python:在精灵宝可梦游戏中创建小火龙角色,对给出的个属性进行迭代化和私有化

1.训练要点 (1)掌握游戏角色的数据属性的设置,以及相应类方法的创建。 (2)掌握类和对象的创建,以及对象属性的私有化方法。 (3)掌握迭代函数的使用,让角色在升级时提升各个属性。2.需求说明 游戏角色的数据属性:名字(name)、性别( gender)、等级( level).能力( status、HP、攻击,防御,特攻,特防、速度、属性(type)。 在能力中,除了HP为level*2+10之外,其他能力均为level+5。 类方法有getName雨数(获取角色的名字,返回类型:str )、getGe

weixin_57237676的博客 3093

AI人工智能领域知识图谱的应用案例分享

我们的目的是带大家走进AI人工智能领域里知识图谱的奇妙世界,通过分享各种实际应用案例,让大家明白知识图谱到底有什么用,是怎么发挥作用的。范围涵盖了知识图谱在多个行业和场景下的应用,比如医疗、金融、教育等。我们会先给大家讲讲知识图谱的核心概念,就像认识新朋友一样,先了解它长什么样,有什么特点。然后说说它的算法原理和操作步骤,就像知道新朋友是怎么做事的。接着通过具体的代码案例,看看它在实际项目中是怎么工作的。再分享一些它在不同场景下的应用,最后聊聊它的未来发展和可能遇到的挑战。知识图谱。

AI架构师小马 932

数据复制技术在大数据物联网中的应用

我们生活在一个数据爆炸的时代,大数据和物联网就像两个超级大的“数据制造工厂”,每天都产生着海量的数据。数据复制技术就像是一个勤劳的搬运工,能把这些数据准确无误地送到需要它们的地方。本文的目的就是要带大家了解数据复制技术在大数据物联网这个大环境里是怎么工作的,它有哪些神奇的作用。我们会从概念、原理、实际应用等多个方面进行探讨,让大家对这个技术有一个全面的认识。文章首先会介绍核心概念,用简单的故事和比喻让大家明白数据复制技术、大数据和物联网到底是什么。

AI大模型应用之禅 920

DAY10 宝可梦数据分析

数据集下载 import pandas as pd import seaborn as sns import matplotlib.pyplot as plt df = pd.read_csv("./pokemon_data.csv") 首先我们观察一下数据的尺寸,可以通过 df.shape 这个来实现。当然 df.info() 能够给我们更加详细的每个列的信息。这里我们通过这个方式,可以发现这个数据集一共收录了801行,41列的数据。说明一共有801只宝可梦,每只宝可梦我们有41个特征来描述它们。

TJwuyeyoumin的博客 785

Python Pygame 实现宝可梦对战场面

宝可梦游戏是小时候最喜欢的掌机游戏之一,印象最深刻的是宝可梦(黄)、宝可梦(金、银)还有红蓝宝石。游戏的设计很出色,画面精致,可以说是是掌机时代的代表了。         本篇文章使用Pygame实现宝可梦的战斗场景,重温经典。

这又是什么神奇宝贝?洞见 《天道》:人一旦开窍,钱就来得很容易——早读(逆天打工人爬取热门微信文章解读)

《了凡四训》中的核心思想之一就是“命由我作,福自己求”。这句话告诉我们,尽管每个人的命运都有其一定的轨迹,但最终的结果还是掌握在自己手中。袁了凡通过自己的亲身经历,从一开始被算命先生算定一生,到后来在云谷禅师的指导下,改变了自己的命运。这表明,即使命运有其预定的部分,但人的努力和行为同样能够对命运产生重大影响。 在《了凡四训》中,袁了凡强调了改过的重要性,认为要想积善,就必须改过。他提出了“三心”——羞耻心、敬畏心和勇猛心,来指导人们如何去改过。这表明,个人的努力和自我提升是改变命运不可或缺的一部分。

轻草的博客 1165

Python-一个python口袋妖怪GoAPI库示例

一个python 口袋妖怪Go API库/示例

宝可梦图鉴(游戏)小程序源码加截图.7z

宝可梦图鉴(游戏)小程序源码加截图.7z

淘宝/天猫探店大冒险:用taobao.item_search_shop API把宝贝一网打尽

淘宝/天猫的API就像是一张神奇的藏宝图,帮你在店铺的海洋中找到那些隐藏的宝贝。通过本文的介绍和代码示例,希望你能学会如何与这个API“对话”,并从中找到你的“宝贝”。记得,每次探店都是一场新的冒险,祝你好运,勇敢的探险家!复制再试一次分享。

2401_87849308的博客 688

OpenFOAM高效学习路线:如何用B站+东岳流体3个月掌握CFD仿真

本文分享了一套高效的OpenFOAM学习路线,结合B站视频、东岳流体教程和官方文档,帮助在职工程师在3个月内掌握CFD仿真技术。通过渐进式学习计划和案例训练,从基础到实战,快速提升独立建模能力。

weixin_29202213的博客 318

python花数_python函数

与数学中的函数不同,在Python中,函数不是看上去冰冷无聊的规则和公式,而是有实打实的、有自己作用的代码。比如说当我们需要实现“打印”这个功能,我们会用到print();当我们需要实现“获取数据长度”这个功能,我们会要到len()。这些都是设定好了,可以直接拿过来就用的功能,这就叫做“组织好的代码”。函数(Function)能实现的功能从简单到复杂,各式各样,但其本质是相通的:“喂”给函数一些数...

weixin_39953618的博客 141

别再手动调参数了!用3ds Max的tyDiffusion插件,5分钟搞定AI动态纹理生成

本文介绍了3ds Max的tyDiffusion插件如何通过AI技术快速生成动态纹理,大幅提升3D美术师的工作效率。从火焰、水流到布料飘动,tyDiffusion能在5分钟内完成传统手工需要数小时的任务,且效果更自然。文章详细解析了插件的核心功能、实战配置及进阶应用,帮助用户轻松实现AI动态纹理生成。

weixin_30919429的博客 668

拒绝无意义刷屏,打造高效率热点追踪,极空间部署『TrendRadar』

今天的这个项目确实不错,通过部署在极空间NAS之后,我们就能一直不间断的获取到自己想要看到的新闻或者信息。项目的设置项其实有很多,有兴趣的小伙伴可以在部署之后自己慢慢挖掘~目前年终大促正在火热进行中,极空间NAS不管是新品还是之前在售的畅销型号都有专属的优惠,并且还能叠加国补、平台优惠等福利,享受180天换新以及2年质保服务 ,更有抽奖、晒单等活动,喜欢的小伙伴赶快冲吧!

qq_63499861的博客 2291

python函数

一、函数引入 与数学中的函数不同,在Python中,函数不是看上去冰冷无聊的规则和公式,而是有实打实的、有自己作用的代码。比如说当我们需要实现“打印”这个功能,我们会用到print();当我们需要实现“获取数据长度”这个功能,我们会要到len()。这些都是设定好了,可以直接拿过来就用的功能,这就叫做“组织好的代码”。函数(Function)能实现的功能从简单到复杂,各式各样,但...

weixin_30580341的博客 117

30秒精准解析论文PDF:PyMuPDF4LLM+Qwen2本地Agent实战指南

PDF文献解析是科研信息处理的基础能力,其本质是将非结构化文档转化为可计算的语义结构。传统OCR方案在原生PDF(如LaTeX导出)上精度低、容错差;而基于PDF对象树的解析技术,能精准定位文本、公式、图表锚点与参考文献区块,为后续结构化提取提供高质量输入。结合轻量级领域微调模型(如Qwen2-1.5B-Instruct)与强约束提示词工程,可实现研究目标、方法框架、核心结果等五大要素的高保真蒸馏。该技术路径兼顾隐私安全、零成本复现与离线鲁棒性,特别适用于高校实验室、研究生课题组及AI初学者构建个人文献处理

weixin_33509203的博客 286

一个300多万人玩的闯关趣味Python网站

如今Python在编程语言的世界里,已经具有举足轻重的地位,而今年,算是Python语言的30岁的生日。没错,从1989年,Python之父Guido开始写Python语...

cainiao_python的博客 1033

气象数据收集

国家气象信息中心-中国气象数据网 (cma.cn)国家气象信息中心-中国气象数据网 (cma.cn)预报数据:需要定制,收费10万+路面数据同化系统,实时。

weixin_42209537的博客 3487

ArcGIS Pro 制作这种地图海报

ArcMap 版本与 ArcGIS Pro 版本的制图功能相差太多,无论从美观上还是制图效率都远远优于 ArcMap,用了一段时间的 ArcGIS Pro ,真心推荐有条件的大家赶紧试一试!一个软件也能搞定一张不错的海报哦!----吐槽:好的设计真的是门花时间的活,这个教程大概花了我7小时左右,我都忘了我自己教程中截图多少张了!(可能是我速度太慢了)测试数据:阿里云盘分享-----北极海冰数据.https://www.aliyundrive.com/s/SUhsnqfkmXh。

J_Giser的博客 1429

Python数据分析之jieba库的运用

三十年河东,三十年河西,莫欺少年穷!年仅15岁的萧家废物,于此地,立下了誓言,从今以后便一步步走向斗气大陆巅峰!这里是属于斗气的世界,没有花俏艳丽的魔法,有的,仅仅是繁衍...

cainiao_python的博客 363

外骨骼机器人(五):步态分析之正常步态

研究病理步态之前,需要了解正常步态,作为判断标准。但是需要记住两个问题:1.“正常”因人而异,性别、年龄、身体情况都需要考虑在内,因此,需要对不同的个体选择合适的正常标准;2.即使病人的步态与正常步态有某种不同,这也不能说明这是不可取的,也不能说明应该把它变成“正常”步态。许多步态异常是对病人的一些问题的一种补偿,尽管异常,但它们仍然是有用的。步态周期的定义是连续为两次发生重复行走事件之间的时间间隔。尽管可以选择任何事件来定义步态周期,但通常使用一只脚接触地面的瞬间(“初始接触”)是方便的。

行者无疆的博客 1995

独立开发者开源创富:如何通过YouTube推广你的代码项目?

本文旨在帮助独立开发者了解如何利用YouTube这个全球知名的视频平台来推广自己的代码项目。我们会涵盖从基础概念到实际操作的各个方面,让开发者们能够系统地学习并应用这些推广技巧,从而实现开源项目的价值转化和创富。本文将先介绍相关的核心概念,包括YouTube平台和代码项目推广的基本概念及它们之间的关系。接着阐述推广的算法原理和具体操作步骤,给出数学模型和公式辅助理解。通过项目实战案例展示代码的实现和解读。分析实际应用场景,推荐相关工具和资源。探讨未来发展趋势与挑战。

AI天才研究院 939

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

上一篇: 轻松用 Seaborn 进行数据可视化
下一篇: 用Python全自动下载抖音视频!
菜鸟学Python
博客等级 码龄9年 8062粉丝 571原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值