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

时间:2016-01-28 16:56:43

标签: python machine-learning organization data-science kaggle

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

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

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

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

除了kaggle competition solution和一些笔记本之外,我找不到适当的最佳做法或关于此主题的好例子。这些笔记本具有在此类笔记本开头时压缩的所有功能。

2 个答案:

答案 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环境,运行脚本,制作完美   功能可用等等。这些都是必须要做的事情   经常,但不是有趣的部分。

它没有得到积极维护,但基础知识已经存在。