2016-01-28 55 views
2

我正在寻找关于如何组织Python机器学习项目的信息。对于Python常用项目,有Cookiecutter和R ProjectTemplatePython机器学习/数据科学项目结构

这是我目前的文件夹结构,但是我将Jupyter笔记本与实际的Python代码混合在一起,看起来不太清楚。

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

我在脚本的工作目录,目前将所有的功能,在文件下my_module,而导致错误的加载数据(相对/绝对路径)和其他问题。

我无法找到关于此主题的正确最佳实践还是很好的例子,除了这kaggle competition solution和一些笔记本电脑有在这样的笔记本电脑开始凝结的所有功能。

回答

1

你可能想看看:

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

厕所的目标是绑在一起很多是 经常发生并作出处理方便数据分析行动。自动将 数据加载到ipython环境中,运行脚本,使功能可用并具有更多功能 。这些都是必须经常做 ,但不是有趣的部分。

这不是主动维护,但基本知识在那里。

5

我们已经开始为您可能感兴趣的Python数据科学家设计的cookiecutter-data-science项目,请查看here。结构解释here

如果你有它反馈会很乐意!随时在这里回复,打开PR或文件问题。


在回答你关于重复使用代码的文件中导入的.py到笔记本电脑的问题,我们的团队已经找到了最有效的方法是附加到系统路径。这可能会让一些人畏缩,但它似乎是将代码导入笔记本的最简洁的方式,而不需要大量模块样板和pip -e安装。

一个提示是使用上述%autoreload%aimportmagics。这里有一个例子:

# 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 

上面的代码来自section 3.5 in this notebook在某些情况下。