Erstellen Sie jedes Mal ein maschinelles Lernprojekt mit einer anderen Struktur? Verbringen Sie Zeit damit, sich Gedanken darüber zu machen, was und wo platziert werden soll?
Gute Nachrichten für solche Leute. Sie können ein maschinelles Lernprojekt mit ** einem Befehl ** erstellen. Sie können in Sekunden ein Projekt wie das folgende erstellen.
** Verzeichnisaufbau **
├── LICENSE
├── Makefile <- Makefile with commands like `make data` or `make train`
├── README.md <- The top-level README for developers using this project.
├── data
│ ├── external <- Data from third party sources.
│ ├── interim <- Intermediate data that has been transformed.
│ ├── processed <- The final, canonical data sets for modeling.
│ └── raw <- The original, immutable data dump.
│
├── docs <- A default Sphinx project; see sphinx-doc.org for details
│
├── models <- Trained and serialized models, model predictions, or model summaries
│
├── notebooks <- Jupyter notebooks. Naming convention is a number (for ordering),
│ the creator's initials, and a short `-` delimited description, e.g.
│ `1.0-jqp-initial-data-exploration`.
│
├── references <- Data dictionaries, manuals, and all other explanatory materials.
│
├── reports <- Generated analysis as HTML, PDF, LaTeX, etc.
│ └── figures <- Generated graphics and figures to be used in reporting
│
├── requirements.txt <- The requirements file for reproducing the analysis environment, e.g.
│ generated with `pip freeze > requirements.txt`
│
├── src <- Source code for use in this project.
│ ├── __init__.py <- Makes src a Python module
│ │
│ ├── data <- Scripts to download or generate data
│ │ └── make_dataset.py
│ │
│ ├── features <- Scripts to turn raw data into features for modeling
│ │ └── build_features.py
│ │
│ ├── models <- Scripts to train models and then use trained models to make
│ │ │ predictions
│ │ ├── predict_model.py
│ │ └── train_model.py
│ │
│ └── visualization <- Scripts to create exploratory and results oriented visualizations
│ └── visualize.py
│
└── tox.ini <- tox file with settings for running tox; see tox.testrun.org
Die Verwendung einer solchen Standardprojektstruktur bietet mehrere Vorteile. Neue Leute können schnell beitreten, weil sie wissen, was wo ist. Wenn ich das Projekt einige Monate später überprüfe, muss ich mir keine Gedanken darüber machen, wo und was ist, damit ich schnell arbeiten kann.
Diese Art von Projektstruktur ist so einfach zu erstellen wie beim Erstellen eines Django- oder Rails-Projekts. Dieser Artikel zeigt Ihnen, wie das geht.
Getting started Installieren Sie zunächst ** Cookiecutter **, eine Bibliothek zum Erstellen einer Verzeichnisstruktur. Danach werde ich tatsächlich ein Projekt machen.
Lassen Sie uns zuerst über Cookiecutter sprechen.
Cookiecutter ist eine ** Python-Bibliothek zum Erstellen von Projekten aus Projektvorlagen **. Mit Cookiecutter können Sie ganz einfach ein Projekt aus einer vorhandenen Projektvorlage erstellen. Dieses Mal verwenden wir eine Vorlage für maschinelles Lernen. Sie können die Vorlage jedoch entsprechend dem Projekt auswählen, das Sie erstellen möchten.
Sie können Cookiecutter mit pip wie folgt installieren:
$ pip install cookiecutter
Nachdem die Installation abgeschlossen ist, erstellen wir tatsächlich ein Projekt.
Drücken Sie den Befehl mit dem von Ihnen installierten Cookiecutter, um ein neues Projekt zu erstellen. Zu diesem Zeitpunkt muss eine vorhandene Projektvorlage als Argument des Befehls angegeben werden. Geben Sie diesmal Cookiecutter Data Science an, eine Vorlage für maschinelles Lernen. Lassen Sie uns den folgenden Befehl ausführen.
$ cookiecutter https://github.com/drivendata/cookiecutter-data-science
Nachdem Sie den obigen Befehl ausgeführt haben, werden Sie nach dem Projektnamen und dem Namen des Erstellers gefragt, sodass ich antworten werde. Beantworten Sie alle Fragen und Sie haben ein neues Projekt.
project_name [project_name]: machine-learning
repo_name [machine-learning]:
author_name [Your name (or your organization/company/team)]: Hironsan
description [A short description of the project.]: Machine learning project
Select open_source_license:
1 - MIT
2 - BSD
3 - Not open source
Choose from 1, 2, 3 [1]: 1
s3_bucket [[OPTIONAL] your-bucket-for-syncing-data (do not include 's3://')]:
Select python_interpreter:
1 - python
2 - python3
Choose from 1, 2 [1]: 2
Die Festlegung der Projektstruktur ist eine überraschend zeitaufwändige Aufgabe. Wir hoffen, dass Sie diesen Artikel beim Erstellen Ihres Projekts hilfreich finden.
Ich twittere auch Informationen über maschinelles Lernen und die Verarbeitung natürlicher Sprachen in meinem Konto und warte auf Ihr Follow-up. @Hironsan
References
Recommended Posts