在我看来,合理规划磁盘上的文件夹层次是高效工作的关键保障,而数据分析师更应该具有这个素质,所以,目录结构规划不局限于一个个Jupyter Notebook项目(project)内部,而是整个磁盘存储空间。本文只展示一个规划项目内部结构的参考案例,主要应用于机器学习领域的模型设计和开发。 文章 Manage your Data Science project structure in early stage 比较倾向于在Poc(Proof of Concept)阶段使用Jupyter Notebook做探索,探索成功后会对代码做重构,看起来像是不太重视项目目录结构的规划,但是依然给了一个很详细的目录结构模板(可从Github上下载 ) 1,src 作者建议把一些代码与notebook分开,因为这些代码有特定的目的,而且在数据探索完成后还会用在最终部署的系统上。这类代码又分成三类: a,preparation:属于数据集成(data integration)代码,负责从csv,关系数据库,NoSQL数据库,Hadoop中抽取数据。输出的数据将放在data目录中的raw子目录下 b,processing:属于数据转换(data transformation)代码,将raw data转换成模型需要的数据,存入data目录中的processed子目录中 c,modeling:属于构建模型(model building)代码,比如,模型训练,模型评估,多个模型的组合等等 2,test 针对src中的python代码开发测试用例,测试用例代码放在这里 3,model 存储训练过程中的中间结果和模型,也包括模型的元数据 4,data 分成raw和processed分别存储preparation和processing程序产生的数据 5,notebook notebook中的内容可以细分为 a,eda:记录数据探索(Exploratory Data Analysis,Data Exploration)过程和结果,比如,数据分布分析 b,poc的过程和结果记录 c,modeling:记录构建和训练模型的过程和结果 d,evaluation:记录模型评估的过程和结果 总结 接下来,集搜客发布的notebook都会使用上述的目录结构。可以在各个介绍文章中下载notebook源代码。 |