Python 机器学习/数据科学项目结构



我正在寻找有关如何组织Python机器学习项目的信息。对于Python的常用项目,有Cookiecutter,对于R ProjectTemplate。

这是我当前的文件夹结构,但我正在将Jupyter Notebooks与实际的Python代码混合在一起,这似乎不是很清楚。

.
├── cache
├── data
├── my_module
├── logs
├── notebooks
├── scripts
├── snippets
└── tools

我在scripts文件夹中工作,目前正在my_module下的文件中添加所有功能,但这会导致加载数据(相对/绝对路径)时出错和其他问题。

除了这个 kaggle 竞赛解决方案和一些笔记本之外,我找不到关于这个主题的适当最佳实践或好的例子,这些笔记本在这样的笔记本开始时压缩了所有功能。

我们已经启动了一个千篇一律的数据科学项目,专为您可能感兴趣的 Python 数据科学家设计,请在此处查看。此处解释结构。

如果您有反馈,将不胜感激!请随时在此处回复、打开 PR 或提交问题。


为了响应有关通过将.py文件导入笔记本来重用代码的问题,我们的团队发现的最有效方法是追加到系统路径。这可能会让一些人感到畏缩,但这似乎是将代码导入笔记本的最干净方法,而无需大量模块样板和 pip -e 安装。

一个提示是使用上述%autoreload%aimport魔法。下面是一个示例:

# Load the "autoreload" extension
%load_ext autoreload
# always reload modules marked with "%aimport"
%autoreload 1
import os
import sys
# add the 'src' directory as one where we can import modules
src_dir = os.path.join(os.getcwd(), os.pardir, 'src')
sys.path.append(src_dir)
# import my method from the source code
%aimport preprocess.build_features

上面的代码来自本笔记本中的第 3.5 节,用于某些上下文。

您可能需要查看:

http://tshauck.github.io/Gloo/

Loo的目标是将许多数据分析操作联系在一起 定期发生并使该过程变得容易。自动加载 数据进入iPython环境,运行脚本,使用数据 可用的功能等等。这些是必须做的事情 经常,但不是有趣的部分。

它没有积极维护,但基础知识就在那里。

最新更新