Apprentissage automatique en JavaScript : bibliothèques pour Node.js — aperçu et exemples

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Apprentissage automatique en JavaScript (Node.js) : bibliothèques et outils



Bien que Python reste le langage dominant dans le domaine de la Data Science, l'écosystème JavaScript (en particulier Node.js) se développe activement et propose des outils puissants pour l'apprentissage automatique. Cela permet aux développeurs frontend et backend d'intégrer des modèles ML directement dans des applications web, des solutions serveur, des chatbots et même des appareils IoT. Dans cet article, nous examinerons les bibliothèques clés pour Node.js qui permettent d'entraîner des réseaux de neurones, d'exécuter des modèles pré-entraînés et d'effectuer des tâches ML classiques.



1. TensorFlow.js — un framework puissant de Google

TensorFlow.js est un port complet du célèbre TensorFlow en JavaScript. Il fonctionne à la fois dans le navigateur et dans Node.js, en utilisant WebGL ou CUDA (via @tensorflow/tfjs-node-gpu) pour accélérer les calculs. La bibliothèque permet de charger des modèles pré-entraînés (par exemple, MobileNet, PoseNet) et d'en entraîner de nouveaux.



Installation :

npm install @tensorflow/tfjs @tensorflow/tfjs-node


Exemple : réseau de neurones simple pour la régression

const tf = require('@tensorflow/tfjs');require('@tensorflow/tfjs-node');

// Création d'un modèle simple : y = 2x - 1const model = tf.sequential();model.add(tf.layers.dense({units: 1, inputShape: [1]}));

model.compile({loss: 'meanSquaredError', optimizer: 'sgd'});

// Données d'entraînementconst xs = tf.tensor2d([-1, 0, 1, 2, 3, 4], [6, 1]);const ys = tf.tensor2d([-3, -1, 1, 3, 5, 7], [6, 1]);

async function train() { await model.fit(xs, ys, {epochs: 250}); model.predict(tf.tensor2d([10], [1, 1])).print(); // Devrait être ~19}train();

TensorFlow.js est idéal pour les tâches de vision par ordinateur, de NLP et de traitement de séries temporelles directement sur le serveur.



2. Brain.js — réseaux de neurones pour tâches simples

Brain.js est une bibliothèque légère pour créer et entraîner des réseaux de neurones. Elle est facile à apprendre, ne nécessite pas de connaissances approfondies en mathématiques et est parfaite pour le prototypage. Elle prend en charge les perceptrons multicouches, les LSTM et les réseaux récurrents.



Installation :

npm install brain.js


Exemple : XOR (OU exclusif)

const brain = require('brain.js');const net = new brain.NeuralNetwork();

net.train([ { input: [0, 0], output: [0] }, { input: [0, 1], output: [1] }, { input: [1, 0], output: [1] }, { input: [1, 1], output: [0] }], { iterations: 2000 });

const output = net.run([1, 0]); // ~0.97 (proche de 1)console.log(output);

Brain.js est pratique pour la classification, la prédiction et l'analyse de texte (par exemple, l'analyse de sentiment).



3. ML.js — collection d'algorithmes classiques

ML.js est un ensemble de modules pour l'apprentissage automatique traditionnel (sans réseaux de neurones profonds). Il inclut l'implémentation de KNN, Naive Bayes, SVM, clustering K-means, PCA, arbres de décision et bien plus encore. Chaque algorithme est un package npm distinct.



Installation (exemple avec KNN) :

npm install ml-knn


Exemple : classification des iris de Fisher

const KNN = require('ml-knn');

// Jeu d'entraînement : [longueur du sépale, largeur, longueur du pétale, largeur]const trainingSet = [[5.1, 3.5, 1.4, 0.2], [7.0, 3.2, 4.7, 1.4], [6.3, 3.3, 6.0, 2.5]];const labels = ['setosa', 'versicolor', 'virginica'];

const knn = new KNN(trainingSet, labels, {k: 3});const prediction = knn.predict([5.9, 3.0, 4.2, 1.5]); // 'versicolor'console.log(prediction);

ML.js est indispensable pour une implémentation rapide de méthodes statistiques lorsque les réseaux de neurones ne sont pas nécessaires.



4. Natural — traitement du langage naturel (NLP)

Natural est une bibliothèque pour le NLP sur Node.js. Elle inclut la tokenisation, le stemming (Porter, Lancaster), la classification (Naive Bayes, régression logistique), TF-IDF, l'analyse de sentiment et la comparaison phonétique.



Installation :

npm install natural<                    

Recommendations