2016-01-28 3 views
2

Я ищу информацию о том, как должен быть организован проект Python Machine Learning. Для обычных проектов Python есть Cookiecutter и для R ProjectTemplate.Python Machine Learning/Data Science Структура проекта

Это моя текущая структура папок, но я смешиваю ноутбуки Jupyter с реальным кодом Python, и это не кажется очень ясным.

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

Я работаю в папке сценариев и в настоящее время добавляют все функции в файлах под my_module, но это приводит к данным ошибки загрузки (относительные/абсолютные пути) и другим проблемам.

я не мог найти правильные лучшие практики или хорошие примеры на эту тему, кроме этого kaggle competition solution и некоторые ноутбуки, которые имеют все функции конденсируются в начале такого ноутбука.

ответ

1

Вы можете посмотреть по адресу: Цель

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

Loo является связать воедино множество действий, анализа данных, которые происходят регулярно и делают, что процессы легко. Автоматическая загрузка данных в среду ipython, запуск скриптов, создание utitlity доступных функций и многое другое. Это вещи, которые нужно делать часто, но это не забавная часть.

Это не активно поддерживается, но основы существуют.

5

Мы запустили проект для разработчиков данных cookiecutter-data-science, предназначенный для ученых Python, которые могут вас заинтересовать, проверьте его here. Структура объясняется here.

Будете ли вы получать отзывы, если они у вас есть! Не стесняйтесь отвечать здесь, открывать PR или проблемы с файлами.


В ответ на ваш вопрос о повторном использовании кода путем импорта .py файлов в ноутбуки, наиболее эффективный способ, что наша команда нашла, чтобы добавить к системному пути. Это может заставить некоторых людей съежиться, но это похоже на самый чистый способ импортировать код в ноутбук без большого количества модульного шаблона и установки pip -e.

Один совет заключается в использовании %autoreload и %aimportmagics с вышесказанным. Вот пример:

# 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 для некоторого контекста.

Смежные вопросы