Python Machine Learning / Data Science Projektstruktur


10

Ich suche nach Informationen darüber, wie ein Python Machine Learning-Projekt organisiert werden soll. Für Python übliche Projekte gibt es Cookiecutter und für R ProjectTemplate .

Dies ist meine aktuelle Ordnerstruktur, aber ich mische Jupyter Notebooks mit tatsächlichem Python-Code und es scheint nicht sehr klar zu sein.

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

Ich arbeite im Skriptordner und füge derzeit alle Funktionen in Dateien unter my_module hinzu, aber das führt zu Fehlern beim Laden von Daten (relative / absolute Pfade) und anderen Problemen.

Ich konnte keine geeigneten Best Practices oder guten Beispiele zu diesem Thema finden, abgesehen von einigen Kaggle-Wettbewerbslösungen und einigen Notebooks, bei denen alle Funktionen zu Beginn eines solchen Notebooks zusammengefasst waren.


Sehen Sie, ob dies hilft (keine persönliche Erfahrung).
Emre

Antworten:


4

Ich glaube, es gibt noch keine Best Practices in diesem Entwicklungsbereich, aber neben dem Ausstecher wurden in einem Tutorial auf der SciPy 2016-Konferenz einige interessante Ideen gezeigt: http://isaacslavitt.com/2016/07/20/ Datenwissenschaft-ist-Software-Talk /

Persönlich versuche ich, die Anzahl der Unterordner in einem Projekt zu minimieren, es sei denn, ich habe eine wirklich gute Möglichkeit, sie zu unterscheiden, und habe gute Gründe, sie getrennt zu halten. Schlechte Organisation ist fast so schlecht wie keine Organisation. Ich denke, die beste Vorgehensweise hängt möglicherweise vom Anwendungsfall ab - nicht jedes Projekt benötigt die gleiche Menge an Boilerplate.


3

Die University of Washington hat eine Projektvorlage für kleine wissenschaftliche Python-Projekte (einschließlich datenwissenschaftlicher Projekte) mit dem Namen veröffentlicht shablona. Ist das mehr oder weniger das, wonach Sie suchen?

https://github.com/uwescience/shablona

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.