Newer
Older
rnsr-geo-ml-dvc / README.md
# rnsr-geo-ml-dvc

Apprentissage du RNSR avec répartition géographique - essai avec DVC.

Voir les travaux précédents: <https://gitbucket.inist.fr/parmentf/rnsr-ml>.

## DVC

### Initialisation

La documentation de l'extension DVC de VSCode dit que pour initialiser le dépôt
il faut taper `dvc exp init -i`, mais ça ne marche pas avec ma version de DVC
(qui est apparemment plus récente que ce à quoi s'attend l'extension).

```bash
$ dvc init  
Initialized DVC repository.

You can now commit the changes to git.

+---------------------------------------------------------------------+
|                                                                     |
|        DVC has enabled anonymous aggregate usage analytics.         |
|     Read the analytics documentation (and how to opt-out) here:     |
|             <https://dvc.org/doc/user-guide/analytics>              |
|                                                                     |
+---------------------------------------------------------------------+

What's next?
------------
- Check out the documentation: <https://dvc.org/doc>
- Get help and share ideas: <https://dvc.org/chat>
- Star us on GitHub: <https://github.com/iterative/dvc>
```

Cette commande a créé:

- `.dvcignore`
- `.dvc`
  - `.gitignore`
  - `config`

Alors que l'installation de l'extension VSCode a ajouté:

- `.vscode`
  - `settings.json`

Pour créer un remote, je tape `dvc remote add -d local /home/parmentf/data/dvc`.  
Il faut juste que le répertoire existe (et soit vide ou déjà consacré à ça).

### Ajout de fichier

```bash
$ dvc add data/netscity-ville-aire-uniq.tsv 
100% Adding...|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████|1/1 [00:00, 20.28file/s]
                                                                                                                                                                                                                               
To track the changes with git, run:

    git add data/netscity-ville-aire-uniq.tsv.dvc data/.gitignore

To enable auto staging, run:

        dvc config core.autostage true
```

Donc, si on veut se simplifier la vie sur les ajouts suivants:

```bash
dvc config core.autostage true
```

### Experiments

Pour initialiser le fichier `dvc.yaml`, générant les
[expériences](https://dvc.org/doc/start/experiments), on peut utiliser `dvc exp
init --interactive`.

Pour lancer le _pipeline_ d'une expérience, il suffit de faire `dvc repro`.

Les fichiers résultats `outs` d'un _stage_ (une étape) sont automatiquement
ajoutés à DVC.

### Diagram

`dvc dag --mermaid` (ou `dvc dag --md`) permet de visualiser ça (dans VSCode, il
y a l'extension [Markdown Preview Mermaid
Support](https://marketplace.visualstudio.com/items?itemName=bierner.markdown-mermaid)):

```mermaid
flowchart TD
  node1["data/addresses-40-cnrs-rnsr-big-classes-test.txt.dvc"]
  node3["data/netscity-ville-aire-uniq.tsv.dvc"]
  node2["data/addresses-40-cnrs-rnsr-big-classes-train.txt.dvc"]
  node4["extract-areas@test"]
  node5["extract-areas@train"]
  node6["prepare@test"]
  node7["prepare@train"]
  node8["split"]
  node1-->node6
  node2-->node7
  node3-->node6
  node3-->node7
  node5-->node8
  node6-->node4
  node7-->node5
  node7-->node8
```

## Aires géographiques

Le `split` donne 100 aires géographiques, dont plus de 50 avec moins de 40
adresses.

On les rassemble donc dans `areas/GatheredLittleAreas`, ce qui laisse 48 aires
(dont celle-ci) avec au moins 40 (inclus) aires.