产品展示

趣码乐园 Jupyter使用

因此,一个成熟的数据科学家的工作流,应该是清晰分阶段的:

探索阶段,使用Jupyter。 在一个Notebook里,自由地进行数据的导入、清洗、可视化、模型尝试。这个阶段的目标是快速试错,找到可行的分析路径和模型方案。这里允许代码冗余、执行顺序不一,一切以激发灵感和快速验证为首要目的。

重构与工程化阶段,转向.py脚本。 当你在Jupyter里把整个分析流程跑通,得到了满意的结果后,就需要“提纯”你的代码。把那些成功的、必要的代码逻辑,整理、封装成函数或类,剥离掉所有探索性的、一次性的代码,最终形成一个或多个逻辑清晰、结构规范的.py文件。这个过程,也叫做代码重构(Refactoring)。

部署与自动化阶段,使用调度系统和.py脚本。 将整理好的.py脚本,部署到服务器上,使用Airflow、Azkaban或者简单的crontab等任务调度工具,设置成定时执行。这个脚本,就是你稳定输出分析结果或模型服务的“生产线”。

这个从Jupyter到.py的流程,是一个从“科学研究”到“工程开发”的转化过程。 Jupyter负责“发明”和“发现”,.py脚本负责“规模化生产”。

对于版本控制的问题,现在也有一些工具可以缓解,比如nbdime可以提供更清晰的Notebook文件的diff和merge视图。养成良好的习惯也很重要,比如在提交代码到Git之前,执行一次“Kernel -> Restart & Clear Output”,清除所有的输出结果,只保留代码,这样可以大大减少diff的噪音。对于更复杂的项目,可以考虑使用像Jupytext这样的工具,它可以将Notebook和.py脚本进行双向同步,让你既能享受Jupyter的交互性,又能利用纯文本的.py脚本进行版本控制和代码审查。

众所周知,Git是管理代码版本和团队协作的基础工具,Git能帮你避免代码改乱的麻烦,还能随时回退到之前的版本,团队协作必备。



Powered by 意昂体育 @2013-2022 RSS地图 HTML地图

Copyright Powered by站群系统 © 2013-2024