Cours:BUTiot TNS : Différence entre versions

De troyesGEII
Aller à : navigation, rechercher
(Classification temps réel)
Ligne 12 : Ligne 12 :
  
 
* Source des données : https://www.kaggle.com/datasets/rishitdagli/anomaly-detection-sample-dataset
 
* Source des données : https://www.kaggle.com/datasets/rishitdagli/anomaly-detection-sample-dataset
 +
 +
A faire :
 +
# 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.
 +
# Lire ces données au format CSV
 +
<source lang="c++">
 +
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();
 +
</source<
  
 
=== Classification temps réel ===
 
=== Classification temps réel ===
Ligne 18 : Ligne 33 :
 
** <code>data/latence</code> en ms
 
** <code>data/latence</code> en ms
 
** <code>data/debit</code> en mb/s
 
** <code>data/debit</code> en mb/s
** <code>gt</code> = ''ground truth'' (vérité terrain) : est-ce une anomalie ?
+
** <code>data/gt</code> = ''ground truth'' (vérité terrain) : est-ce une anomalie ?
 +
 
 +
A faire (en node.js) :
 +
# lire ces données avec mqtt
 +
#

Version du 5 février 2024 à 14:22

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 :

  1. Créer une nouvelle "application" node.js
  2. 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.
  3. Lire ces données au format CSV

<source lang="c++"> 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(); </source<

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