title: Python Machine Learning/Data Science Project Structure
body: <p>I'm looking for information on how should a Python Machine Learning project be organized. For Python usual projects there is <a href="http://cookiecutter.readthedocs.org/en/latest/" rel="nofollow">Cookiecutter</a> and for R <a href="http://projecttemplate.net/getting_started.html" rel="nofollow">ProjectTemplate</a>. </p>
  
  <p>This is my current folder structure, but I'm mixing Jupyter Notebooks with actual Python code and it does not seems very clear.</p>
  
  <pre><code>.
  ├── cache
  ├── data
  ├── my_module
  ├── logs
  ├── notebooks
  ├── scripts
  ├── snippets
  └── tools
  </code></pre>
  
  <p>I work in the scripts folder and currently adding all the functions in files under my_module, but that leads to errors loading data(relative/absolute paths) and other problems.</p>
  
  <p>I could not find proper <em>best practices</em> or good examples on this topic besides this <a href="https://github.com/rafacarrascosa/samr" rel="nofollow">kaggle competition solution</a> and some Notebooks that have all the functions condensed at the start of such Notebook.</p>