【问题标题】:Python Machine Learning/Data Science Project StructurePython机器学习/数据科学项目结构
【发布时间】:2016-05-06 04:16:49
【问题描述】:

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

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

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

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

除了这个 kaggle competition solution 和一些在该笔记本的开头浓缩了所有功能的笔记本之外,我找不到合适的最佳实践或关于这个主题的好例子。

【问题讨论】:

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


    【解决方案1】:

    我们已经启动了一个 cookiecutter-data-science 项目,专为您可能感兴趣的 Python 数据科学家设计,请查看 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,用于某些上下文。

    【讨论】:

    • 我会注意到,我们最近在Cookie Cutter Data Science 项目中默认情况下,本地代码会自动安装为一个包,可以直接在 Jupyter 中导入,而不会与sys.path 混淆。
    【解决方案2】:

    你可能想看看:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-06-03
      • 2017-04-06
      • 1970-01-01
      • 2021-05-09
      • 1970-01-01
      • 2020-07-23
      • 2017-03-03
      • 2019-05-14
      相关资源
      最近更新 更多