2016-01-28 144 views
2

我正在尋找關於如何組織Python機器學習項目的信息。對於Python常用項目,有Cookiecutter和R ProjectTemplatePython機器學習/數據科學項目結構

這是我目前的文件夾結構,但是我將Jupyter筆記本與實際的Python代碼混合在一起,看起來不太清楚。

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

我在腳本的工作目錄,目前將所有的功能,在文件下my_module,而導致錯誤的加載數據(相對/絕對路徑)和其他問題。

我無法找到關於此主題的正確最佳實踐還是很好的例子,除了這kaggle competition solution和一些筆記本電腦有在這樣的筆記本電腦開始凝結的所有功能。

回答

1

你可能想看看:

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

廁所的目標是綁在一起很多是 經常發生並作出處理方便數據分析行動。自動將 數據加載到ipython環境中,運行腳本,使功能可用並具有更多功能 。這些都是必須經常做 ,但不是有趣的部分。

這不是主動維護,但基本知識在那裏。

5

我們已經開始爲您可能感興趣的Python數據科學家設計的cookiecutter-data-science項目,請查看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在某些情況下。