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

Dav*_*uez 3 python machine-learning organization data-science kaggle

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

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

.
??? cache
??? data
??? my_module
??? logs
??? notebooks
??? scripts
??? snippets
??? tools
Run Code Online (Sandbox Code Playgroud)

我在scripts文件夹中工作,并且当前在my_module下的文件中添加了所有函数,但这会导致加载数据(相对/绝对路径)和其他问题时出错.

除了这个讨价还价的竞争解决方案和一些具有所有功能的笔记本之外,我找不到适合这个主题的最佳实践或好例子.

hum*_*ume 7

我们已经开始为您可能感兴趣的Python数据科学家设计一个cookiecutter-data-science项目,请在此处查看.结构在这里解释.

如果你拥有它会爱反馈!请随时回复,打开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
Run Code Online (Sandbox Code Playgroud)

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