[PYTHON] Structure des dossiers pour l'analyse

introduction

Je pense qu'il y a des gens qui analysent pour la thèse de fin d'études et la thèse de maîtrise, et des gens qui analysent au quotidien. Ceci est un article pour ces personnes. Je vais vous montrer la structure des dossiers qui a été optimisée depuis plus de 3 ans, donc j'apprécierais que vous puissiez vous y référer ou me faire part de vos commentaires sur le fait qu'il vaut mieux le faire.

Cliquez ici pour il y a 2 ans: La structure de dossiers la plus solide que je pense en analyse - Qiita

environnement

Pour le moment, j'utilise Windows10, 64bit, git bash, matlab 2015b, mais le contenu de l'article n'a rien à voir avec cela.

Structure des dossiers

Ce qui suit est une compilation de tree.rb dans une certaine mesure. Nous faisons la chose évidente de séparer les dossiers par rôle pour éviter d'encombrer les fichiers.

Je pense que python et matlab peuvent être faits comme ça (j'utilise habituellement matlab), mais qu'en est-il du langage R? J'écrirai un article quand je le comprendrai.

S'il y a une extension, cela indique un fichier, et s'il a /, cela indique un dossier.

tree.rb


$ tree.rb
project-root
|-- README.md
|-- .gitignore
|-- data/
|   |-- data1/ #dossier de sauvegarde des données 1
|   `-- data2/ #dossier de sauvegarde des données 2
|-- experiments/
|   |-- category1/
|   `-- category2/
|       |-- experiment1.m
|       `-- experiment2.m
|-- libs/
|   |-- +common/
|   |   |-- FigureGenerator.m
|   |   `-- Utility.m
|   |-- +la/
|   |   |-- hessian.m
|   |   `-- jacobian.m
|   |-- tests/
|   |   `-- runtests.m # tests/unittest/*Test.Mettez une fonction qui exécute m et renvoie le résultat du test. tester-driven-Le développement devient possible.
|   `-- yaml/
|       `-- YAMLMatlab_0.4.3/ #Bibliothèque externe très utile. res/Lisez le fichier yaml ci-dessous
|-- output/
|   |-- docs/
|   |   |-- others/
|   |   |-- paper/
|   |   |   |-- yyyy-mm-dd-first-paper/
|   |   |   `-- yyyy-mm-dd-second-paper/
|   |   `-- thesis/
|   |       |-- bachelor/
|   |       `-- master/
|   |-- refs/
|   `-- slides/
|       |-- conference/
|       |   |-- yyyy-mm-dd-conference1/
|       |   |-- yyyy-mm-dd-conference2/
|       |   `-- yyyy-mm-dd-conference3/
|       |-- defense/
|       |   |-- bachelar-midterm/
|       |   |-- bachelar-final/
|       |   |-- master-midterm/
|       |   `-- master-final/
|       |-- discussion/
|       |   |-- yyyy-mm-dd-discussion.pptx
|       |   `-- yyyy-mm-dd-discussion.pptx
|       `-- others/
|-- res/ #yaml est libs/yaml/*Il est converti en une variable matlab par le Yaml Matlab suivant. Placez d'autres fichiers liés à la programmation
|   |-- const.yaml
|   `-- litrconst.yaml
|-- results/ #les résultats doivent correspondre aux noms de dossier / fichier sous expériences/Créez des dossiers, etc. ci-dessous
|   |-- category1/
|   `-- category2/
|       |-- experiment1/
|       `-- experiment2/
|           |-- data1/
|           `-- data2/
|-- scripts/ #Un dossier qui stocke les processus courants appelés à partir de tous les fichiers de script.
`-- tests/
    |-- implementation/ #Dossier Playground pour la mise en œuvre
    `-- unittest/ #Le dossier dans lequel la suite de tests d'unittest est placée.
        |-- HelperTest.m # helper class' test class
        `-- LATest.m # linear algebra functions' test class

Description du dossier

expériences, scripts, résultats, bibliothèques, données, res, tests sont des dossiers liés à la programmation. Les rôles sont indiqués dans le tableau ci-dessous.

folder description
experiments Mettez beaucoup de scripts de vérification
scripts Script commun
libs Mettez beaucoup de fichiers de fonction
data Conservez les données originales utilisées pour l'analyse
results Un dossier pour enregistrer les résultats de l'analyse.
Il est bon d'avoir une structure de dossiers qui correspond aux expériences
res Placez les éléments qui sont utilisés pour la programmation mais pas le code source, tels que les fichiers yaml et autres fichiers de configuration.
tests J'ai beaucoup de cours de test

Je ne mets pas de programme, mais je sépare les dossiers importants pour la recherche en sortie.

folder description
output Résultats de la recherche. Je me demande s'il peut être grossièrement divisé en diapositives, documents et références.
Placez des diapositives de présentation sur des diapositives et des mémoires, une thèse de fin d'études et une thèse de maîtrise sur des documents.

Veuillez ne pas utiliser le japonais pour le nom du dossier ** absolument **. Je pense que c'est une personne qui ne peut pas programmer.

Conclusion

Puisque la structure de fichier ci-dessus est tout, je n'écrirai pas d'explication détaillée. Lisez s'il vous plaît. Si vous avez des questions, laissez un commentaire.

PostScript 2017/11/19

Il semble qu'il ait été relu un peu récemment, je vais donc l'ajouter. Je pense que le générateur de modèles Python suivant est également efficace. Veuillez l'utiliser. CookieCutter for DataScience in Python

Je ne peux pas du tout commenter car je ne l'ai pas encore essayé, mais cela pourrait ressembler à des rails, django en science des données.

Recommended Posts

Structure des dossiers pour l'analyse
Analyse de la source pour Django - INSTALLED_APPS
Python pour l'analyse des données Chapitre 4
Python pour l'analyse des données Chapitre 2
Conseils et précautions lors de l'analyse des données
Python pour l'analyse des données Chapitre 3
Analyse de la structure du squelette en trois dimensions avec Python
Notes pour une analyse vidéo de basketball difficile
Modèle de prétraitement pour l'analyse des données (Python)
Analyse de données pour améliorer POG 3 ~ Analyse de régression ~
Outil de visualisation Python pour le travail d'analyse de données
L'analyse de réseau est une structure de lien Web ①
Programme d'analyse des tendances Twitter (mémo personnel)
La structure des dossiers de Flask est résumée
L'analyse de réseau est une structure de lien Web ②
JupyterLab Basic Setting 2 pour l'analyse des données (pip)
Configuration de base de JupyterLab pour l'analyse des données (pip)