用cookiecutter快速构建机器学习项目结构
文章目录
- 为什么要采用标准化的项目结构?
- 用cookiecutter生成更好的项目结构
- 快速入门
- 1、安装cookiecutter
- 2、使用项目工程模板开始一个新项目
- 3、常用文件说明
- 数据科学/机器学习可用的Cookiecutter模板
- 参考链接
为什么要采用标准化的项目结构?
我们常常会遇到这样一类问题:在尝试复现几个月前或者几年以前的数据分析实验时,却发现对自己以前编写的代码感到迷茫,不知道从何开始下手?数据应该如何加载和处理?哪些是中间处理的结果?等等。
良好的项目结构应该能帮助我们更轻松地回到过去的工作的实践,具有如下优点:
- 将代码、数据等分离,采用标准化的处理流程
- 采用最佳工程设计实践,如版本控制和docker等工具
- 提高机器学习、数据分析项目中结果的可重复性
- 提供用于机器学习项目的最佳目录和文件模板
用cookiecutter生成更好的项目结构
Cookiecutter可以从现有的项目模板创建项目,比如python包项目,可以实现标准化的文件结构,帮助工程的构建和共享分析变得更加容易。
官方文档:https://cookiecutter.readthedocs.io/en/latest/index.html
快速入门
1、安装cookiecutter
pip install cookiecutter
2、使用项目工程模板开始一个新项目
在命令行输入下面代码,可以在python中使用数据科学工作的模板,创建符合逻辑的、合理标准化的、灵活的项目结构。
> cookiecutter https://github.com/drivendata/cookiecutter-data-science
然后输入项目的相关信息,就会在当前路径下自动创建项目。
上述命令会在当前目录生成文件夹,其目录结构如下:
├── LICENSE
├── Makefile <- Makefile with commands like `make data` or `make train`
├── README.md <- The top-level README for developers using this project.
├── data
│ ├── external <- Data from third party sources.
│ ├── interim <- Intermediate data that has been transformed.
│ ├── processed <- The final, canonical data sets for modeling.
│ └── raw <- The original, immutable data dump.
│
├── docs <- A default Sphinx project; see sphinx-doc.org for details
│
├── models <- Trained and serialized models, model predictions, or model summaries
│
├── notebooks <- Jupyter notebooks. Naming convention is a number (for ordering),
│ the creator's initials, and a short `-` delimited description, e.g.
│ `1.0-jqp-initial-data-exploration`.
│
├── references <- Data dictionaries, manuals, and all other explanatory materials.
│
├── reports <- Generated analysis as HTML, PDF, LaTeX, etc.
│ └── figures <- Generated graphics and figures to be used in reporting
│
├── requirements.txt <- The requirements file for reproducing the analysis environment, e.g.
│ generated with `pip freeze > requirements.txt`
│
├── setup.py <- Make this project pip installable with `pip install -e`
├── src <- Source code for use in this project.
│ ├── __init__.py <- Makes src a Python module
│ │
│ ├── data <- Scripts to download or generate data
│ │ └── make_dataset.py
│ │
│ ├── features <- Scripts to turn raw data into features for modeling
│ │ └── build_features.py
│ │
│ ├── models <- Scripts to train models and then use trained models to make
│ │ │ predictions
│ │ ├── predict_model.py
│ │ └── train_model.py
│ │
│ └── visualization <- Scripts to create exploratory and results oriented visualizations
│ └── visualize.py
│
└── tox.ini <- tox file with settings for running tox; see tox.readthedocs.io
在命令行采用 tree /f >list.txt
命令,就可以把打印出的树状目录结构写入到list.txt文件中了。
3、常用文件说明
- 通常来说,任何人应该可以仅用
src
中的代码和data/raw
中的数据复现结果。 data
目录:通常在分析中,需要执行长时间的步骤来预处理数据或训练模型。如果已经执行了这些步骤,可以将输出存储在data/interim
目录等位置,而不必每次都等待重新运行它们。notebooks
目录:存放例如jupyter notebooks等工具生成的笔记,对于探索和交流数据分析非常有效。笔记的文件名可以采用类似<step>-<ghuser>-<description>.ipynb
的形式 (e.g.,0.3-bull-visualize-distributions.ipynb
)。注意:不要编写代码在多个笔记本中执行相同的任务,利用好重构的组件——比如数据预处理任务,则将其放入管道中src/data/make_dataset.py并从中加载数据data/interim。如果有其他的实用代码,将其重构为src。MakeFile
用make管理相互依赖的步骤,从程序的源文件生成程序的可执行文件和其他非源文件。MakeFile基础文档.env
用于保存一些机密数据和配置变量,该文件一般不提交到版本控制存储库中。.gitignore
通过该文件告诉git哪些文件不需要提交到版本控制存储库中。比如包含本地隐私数据的文件、占用存储较大的文件等。requirements.txt
用于保存当前所有的依赖库,采用pip freeze > requirements.txt
命令生成。
数据科学/机器学习可用的Cookiecutter模板
Cookiecutter Docker Science:用docker容器生成适合简单机器学习任务的初始目录。
cookiecutter-reproducible-science:用于开始一个可重复和透明的科学项目,包括数据,模型,分析和报告的cookiecutter模板 (比如你的科学论文)。
CookieCutter Pip-Project:用于生成可以pip install安装的项目。
参考链接
http://drivendata.github.io/cookiecutter-data-science/
https://www.cnblogs.com/taceywong/p/10506032.html
用cookiecutter快速构建机器学习项目结构相关推荐
- 3-2 Coursera吴恩达《构建机器学习项目》 第二周课程笔记-机器学习策略(2)
上节课3-1 Coursera吴恩达<构建机器学习项目> 第一周课程笔记-机器学习策略(1)我们主要介绍了一些优化机器学习的策略和方法,包括正交化.评估指标.数据集的划分.贝叶斯错误率和可 ...
- SpringBoot2.1.5 (5)---快速构建SpringBoot 项目的两种方式
快速构建SpringBoot项目的两种方发 一. 通过 http://start.spring.io/ 在线构建 二. 通过IntelliJ IDEA 快速构建 通过 http://start.spr ...
- 使用 TensorFlow 构建机器学习项目中文版
使用 TensorFlow 构建机器学习项目中文版 第 1 章 探索和转换数据 TensorFlow 的主要数据结构 – 张量 处理计算工作流程 – TensorFlow 的数据流程图 运行我们的程序 ...
- vue-cli快速构建vue项目和本地模拟请求数据
Vue-cli快速构建 Vue 项目和本地模拟请求数据 1 前提: 安装了 node.js 首先: 全局安装 vue-cli npm intsall vue-cli -g (-g代表全局安装) 2 使 ...
- vue-cli构建SPA项目结构介绍spa完成路由开发及嵌套路由
目录 一.vue-cli构建SPA项目结构介绍 二.spa完成路由开发 三. 嵌套路由 一.vue-cli构建SPA项目结构介绍 前提:搭建好NodeJS环境 node -v npm -v ...
- 使用dva脚手架(dva-cli)快速构建React项目
安装 dva-cli 你应该会更希望关注逻辑本身,而不是手动敲入一行行代码来构建初始的项目结构,以及配置开发环境. 那么,首先需要安装的是 dva-cli .dva-cli 是 dva 的命令行工具, ...
- 使用maven快速构建SSM项目
这里我就假设大家都已经配置好Maven,就不在重复说明了.若没有配置可以参考<首次使用maven的配置过程>. 1.新建Maven项目 工作区–右键-new-other–搜索maven 现 ...
- 使用 TensorFlow 构建机器学习项目:6~10
原文:Building Machine Learning Projects with TensorFlow 协议:CC BY-NC-SA 4.0 译者:飞龙 本文来自[ApacheCN 深度学习 译文 ...
- 吴恩达老师深度学习视频课笔记:构建机器学习项目(机器学习策略)(2)
进行误差分析:可进行人工统计或可同时并行评估几个想法.进行误差分析时,你应该找一组错误例子,可能在你的开发集里或者在你的测试集里,观察错误标记的例子,看看假阳性(false posit ...
最新文章
- 字节跳动总结的设计模式 PDF 火了,完整版开放下载!
- 建行优盾制单重要还是复核重要_注会成绩复核可行吗?纠结要不要申请!
- 笔试——查找重复数(杭州某准独角兽)
- CentOS6 下Vim安装和配置
- 怎么把html表复制到word里,怎么把网页表格复制到word
- rabbitmq接口异常函数方法_分布式系统消息中间件——RabbitMQ的使用进阶篇
- Nginx跨域解决配置示例
- yarn logs -applicationId 无法导出logs日志 Log aggregation has not completed or is not enabled.
- [Luogu P2893][USACO08FEB]修路Making the Grade
- 计算机控制lc72131,锁相环频率合成器—LC72131.PDF
- ios版的chrome如何保存网页为PDF
- Python坐标系转换
- 计算机无法进去系统,电脑开机后进不了系统的解决方法步骤图
- 纯干货:手把手地教你搭建Oracle Sharding数据库分片技术
- 入门图形学:雪地特效(一)
- R语言 霍尔特指数平滑法(Holt)
- [ Azure - Cloud Shell ] 微软 Azure Cloud Shell 介绍
- 重磅 | 消灭所有马赛克,谷歌宣布机器学习图像锐化工具RAISR
- 三星Galaxy S22、三星Galaxy22+和三星Galaxy22 Ultra区别
- 亿图脑图MindMaster思维导图及亿图图示会员-骨折啦