Maschinelles Lernen mit JavaScript (Node.js): Bibliotheken und Werkzeuge
Obwohl Python die dominierende Sprache im Bereich Data Science bleibt, entwickelt sich das JavaScript-Ökosystem (insbesondere Node.js) aktiv weiter und bietet leistungsstarke Werkzeuge für maschinelles Lernen. Dies ermöglicht es Frontend- und Backend-Entwicklern, ML-Modelle direkt in Webanwendungen, Serverlösungen, Chatbots und sogar IoT-Geräte zu integrieren. In diesem Artikel betrachten wir die wichtigsten Bibliotheken für Node.js, mit denen Sie neuronale Netze trainieren, vortrainierte Modelle ausführen und klassische ML-Aufgaben erledigen können.
1. TensorFlow.js — leistungsstarkes Framework von Google
TensorFlow.js ist ein vollständiger Port des berühmten TensorFlow nach JavaScript. Es funktioniert sowohl im Browser als auch in Node.js und nutzt WebGL oder CUDA (über @tensorflow/tfjs-node-gpu) zur Beschleunigung von Berechnungen. Die Bibliothek ermöglicht das Laden vortrainierter Modelle (z. B. MobileNet, PoseNet) und das Trainieren eigener Modelle.
Installation:
npm install @tensorflow/tfjs @tensorflow/tfjs-nodeBeispiel: Einfaches neuronales Netz für Regression
const tf = require('@tensorflow/tfjs');require('@tensorflow/tfjs-node');
// Erstellen eines einfachen Modells: y = 2x - 1const model = tf.sequential();model.add(tf.layers.dense({units: 1, inputShape: [1]}));
model.compile({loss: 'meanSquaredError', optimizer: 'sgd'});
// Trainingsdatenconst 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(); // Sollte ~19 sein}train();TensorFlow.js ist ideal für Aufgaben des maschinellen Sehens, NLP und die Arbeit mit Zeitreihen direkt auf dem Server.
2. Brain.js — neuronale Netze für einfache Aufgaben
Brain.js ist eine leichtgewichtige Bibliothek zum Erstellen und Trainieren neuronaler Netze. Sie ist einfach zu erlernen, erfordert keine tiefgehenden Mathematikkenntnisse und eignet sich hervorragend für das Prototyping. Unterstützt werden mehrschichtige Perzeptronen, LSTM und rekurrente Netze.
Installation:
npm install brain.jsBeispiel: XOR (exklusives ODER)
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 (nahe 1)console.log(output);Brain.js eignet sich für Klassifikation, Prognosen und Textanalyse (z. B. Stimmungsanalyse).
3. ML.js — Sammlung klassischer Algorithmen
ML.js ist eine Sammlung von Modulen für traditionelles maschinelles Lernen (ohne tiefe neuronale Netze). Es enthält Implementierungen von KNN, Naivem Bayes, SVM, K-Means-Clustering, PCA, Entscheidungsbäumen und vielem mehr. Jeder Algorithmus ist ein separates npm-Paket.
Installation (Beispiel mit KNN):
npm install ml-knnBeispiel: Klassifikation der Iris-Blüten
const KNN = require('ml-knn');
// Trainingsdaten: [Kelchblattlänge, -breite, Blütenblattlänge, -breite]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 ist unverzichtbar für die schnelle Implementierung statistischer Methoden, wenn keine neuronalen Netze benötigt werden.
4. Natural — Verarbeitung natürlicher Sprache (NLP)
Natural ist eine Bibliothek für NLP in Node.js. Sie umfasst Tokenisierung, Stemming (Porter, Lancaster), Klassifikation (Naiver Bayes, logistische Regression), TF-IDF, Stimmungsanalyse und phonetischen Vergleich.
Installation:
npm install natural<