Cours:BUTiot TNS : Différence entre versions

De troyesGEII
Aller à : navigation, rechercher
(Lecture des données d'entrainement et apprentissage)
Ligne 14 : Ligne 14 :
  
 
A faire :
 
A faire :
# Créer une nouvelle "application" node.js
+
* Créer une nouvelle "application" node.js
# Télécharger le zip des données, décompresser, placer les deux fichiers <code>tr_server_data.csv</code> et <code>gt_server_data.csv</code> dans le dossier de l'application.
+
* Télécharger le zip des données, décompresser, placer les deux fichiers <code>tr_server_data.csv</code> et <code>gt_server_data.csv</code> dans le dossier de l'application.
# Lire ces données au format CSV, par exemple avec :
+
* Lire ces données au format CSV, par exemple avec :
 
<source lang="c++">
 
<source lang="c++">
 
const fs = require("node:fs");
 
const fs = require("node:fs");
Ligne 27 : Ligne 27 :
 
tr.pop();
 
tr.pop();
 
</source>
 
</source>
# Mise en place du classifieur KNN :
+
* Mise en place du classifieur KNN :
 
<source lang="c++">
 
<source lang="c++">
 
const knnClassifier = require('@tensorflow-models/knn-classifier');
 
const knnClassifier = require('@tensorflow-models/knn-classifier');

Version du 5 février 2024 à 15:25

Retour à la page du cours

Classification multivariée temps réel

Le travail de cette étape va consister à

  • lire des données temps réel caractérisant l'état d'un réseau (latence et débit)
  • A partir d'un ensemble de données d'entrainement, mettre en place un classifieur permettant de détecter des anomalies sur ce réseau

Lecture des données d'entrainement et apprentissage

A faire :

  • Créer une nouvelle "application" node.js
  • Télécharger le zip des données, décompresser, placer les deux fichiers tr_server_data.csv et gt_server_data.csv dans le dossier de l'application.
  • Lire ces données au format CSV, par exemple avec :
const fs = require("node:fs");

// training
let tr = fs.readFileSync("tr_server_data.csv", "utf-8")
    .split('\n') // découpe des lignes
    .map(l => l.split(',').map (v => parseFloat(v))); // découpe autour de la virgule et conv. en flottant
tr.pop(); // Les deux dernières lignes sont à rejeter.
tr.pop();
  • Mise en place du classifieur KNN :
const knnClassifier = require('@tensorflow-models/knn-classifier');
const tf = require('@tensorflow/tfjs');

// Create the classifier.
const classifier = knnClassifier.create();

Classification temps réel

  • Données publiées sur le broker habituel :
    • data/latence en ms
    • data/debit en mb/s
    • data/gt = ground truth (vérité terrain) : est-ce une anomalie ?

A faire (en node.js) :

  1. lire ces données avec mqtt