我正在寻找有关如何组织Python机器学习项目的信息。对于Python常用项目,有Cookiecutter和R ProjectTemplate。
这是我当前的文件夹结构,但是我将Jupyter笔记本与实际的Python代码混合在一起并且看起来不太清楚。
.
├── cache
├── data
├── my_module
├── logs
├── notebooks
├── scripts
├── snippets
└── tools
我在scripts文件夹中工作并且当前在my_module下的文件中添加了所有函数,但这会导致加载数据(相对/绝对路径)和其他问题时出错。
除了kaggle competition solution和一些笔记本之外,我找不到适当的最佳做法或关于此主题的好例子。这些笔记本具有在此类笔记本开头时压缩的所有功能。
答案 0 :(得分:7)
我们已经开始为您可能感兴趣的Python数据科学家设计一个cookiecutter-data-science项目,请查看here。结构解释为here。
如果你拥有它会喜欢反馈!请随时回复,打开PR或提出问题。
针对您通过将.py文件导入笔记本重新使用代码的问题,我们团队找到的最有效的方法是附加到系统路径。这可能会让一些人感到畏缩,但这似乎是在没有大量模块样板和pip -e安装的情况下将代码导入笔记本的最简洁方法。
一个提示是使用上面的%autoreload
和%aimport
magics。这是一个例子:
# 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,用于某些上下文。
答案 1 :(得分:1)
您可能需要查看:
http://tshauck.github.io/Gloo/
loo的目标是将许多数据分析操作联系在一起 定期发生并使这些过程变得容易。自动加载 数据进入ipython环境,运行脚本,制作完美 功能可用等等。这些都是必须要做的事情 经常,但不是有趣的部分。
它没有得到积极维护,但基础知识已经存在。