为什么说JupyterNotebook是⽤Python做机器学习最好⽤的IDE
前两天我们为⼤家总结了⼀下AI在2018年的发展以及对2019年AI应⽤的展望,今天我们便将回归到技术博客的本质,为⼤家讲讲为什么我对Jupyter Notebook如此推崇,以及为什么Jupyter Notebook与机器学习/数据分析是完美的搭配组合。
在讲为什么之前,先来介绍⼀下什么是Jupyter Notebook(以下简称Jupyter)。简单来说,它是⼀种模块化的Python编辑器(现在也⽀持R 等多种语⾔),即在Jupyter中,你可以把⼤段的Python代码碎⽚化处理,分开每⼀段来运⾏。在软件开发中,Jupyter可能显得并没有那么好⽤,这个模块化的功能反⽽会破坏掉程序的整体性;但是当你在做数据处理、分析、建模、观察结果等的时候,Jupyter模块化的功能不仅会为你提供更好地视觉体验,更能⼤⼤缩⼩运⾏代码及调试代码的时间,同时还会让你整个处理和建模的过程变得异常清晰,接下来我将为⼤家⼀⼀详细讲述Jupyter的这些优点。
学python看谁的视频比较好Jupyter Notebook将Python的交互式特点发挥到了极致
熟悉Python的同学⼀定对Python的交互式功能感触颇深。当⼯作后有⼀次和⼀个做嵌⼊式好友聊起Python时,同学表⽰他被Python的易读性和交互性所震惊了。做嵌⼊式⽤的C和C++每次都要经过编译,⽽且每⼀⾏的代码没有办法单独运⾏。与之不同的是,Python的每⼀⾏都像是⼈类交流所⽤的⽂字⼀样,简单易懂且有交互性,所谓交互性,就是有问有答,你输⼊⼀句,它便返回⼀句的结果。但在⼀
般的IDE中(如PyCharm),Python的这⼀交互功能被极⼤地限制,通常我们会将程序整段编写之后⼀起运⾏。⽽在Jupyter当中,我们可以每写⼏⾏或者每完成⼀个⼩的模块便运⾏⼀次。也许对于软件⼯程师们来说,这个功能并没有多⼤的吸引⼒;但是对⾝为机器学习⼯程师的我们来说,这个功能可以说是我们的⼤救星。
熟悉机器学习和数据分析的朋友⼀定知道,分析和建模是⾮常碎⽚化的⼯作,⽽每⼀块的碎⽚⼜有着⾮常强的独⽴性,甚⾄可以说除了数据本⾝之外,每⼀块的代码之间并没有很强的关联性。数据分析和处理的过程往往是⼀个不断试验的过程,我们需要⼀次⼜⼀次的改变预处理的⽅式、尝试不同的特征⼯程处理、⼀遍⼜⼀遍的调整着模型参数等等等等。每⼀部分的⼯作都需要反复试验反复修改,⽽下⼀模块需要⽤到的只不过是上⼀模块输出的数据。通过Jupyter,我们可以最快的得知⾃⼰做出的调整是好还是坏,并尽快进⼊到下⼀次的试验当中。
以下是Jupyter Notebook与其他IDE输出结果的对⽐:
PyCharm
Jupyter Notebook
说到Jupyter Notebook,就不得不提到Anaconda。Anaconda是⼀款便捷的环境管理⼯具,利⽤Anaconda可以轻松创建虚拟环境,快速下载安装Python中的各种函数库。Anaconda中集成了1400数据科学/机器学习的函数库,⽬前这些库适配于Python 3.6,Python 3.7,以及Python 2.7三个版本。Anaconda让机器学习在Jupyter中更容易实现,也更容易去观测。
以下是部分Anaconda中的函数库:
Jupyter Notebook更利于汇报和教学
Jupyter在⼯作汇报和教学⽅⾯也是⾮常的优秀。由于Jupyter本⾝的模块化和内容的清晰化,使得其天⽣具有如PPT⼀般的展⽰⼯作成果的功能。
如上图所⽰,由于Jupyter中可以将输出结果嵌套在Notebook中,并且⽀持Markdown语句的操作,这样使得你可以在Jupyter中输⼊任何你需要展⽰的内容,并且这些内容都会以⼀种有组织有层次的样⼦排列出来。
⽽当Jupyter被应⽤于教学时,⽼师可以利⽤这个特点设置相应的题⽬以及部分的讲解内容,⽽学⽣则负责填满⽼师所留的空⽩,以达到⽼师作业的要求。⽬前Jupyter已经被各⼤慕课(MOOC)平台⼴泛应⽤。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论