Aprendizaje automático en JavaScript: bibliotecas para Node.js — revisión y ejemplos

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

Aprendizaje automático en JavaScript (Node.js): bibliotecas y herramientas



Aunque Python sigue siendo el lenguaje dominante en el ámbito de la Ciencia de Datos, el ecosistema de JavaScript (especialmente Node.js) está en activo desarrollo y ofrece potentes herramientas para el aprendizaje automático. Esto permite a los desarrolladores frontend y backend integrar modelos de ML directamente en aplicaciones web, soluciones de servidor, chatbots e incluso dispositivos IoT. En este artículo, revisaremos las bibliotecas clave para Node.js que permiten entrenar redes neuronales, ejecutar modelos preentrenados y realizar tareas clásicas de ML.



1. TensorFlow.js — potente framework de Google

TensorFlow.js es un port completo del famoso TensorFlow a JavaScript. Funciona tanto en el navegador como en Node.js, utilizando WebGL o CUDA (a través de @tensorflow/tfjs-node-gpu) para acelerar los cálculos. La biblioteca permite cargar modelos preentrenados (por ejemplo, MobileNet, PoseNet) y entrenar los propios.



Instalación:

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


Ejemplo: red neuronal simple para regresión

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

// Creamos un modelo simple: y = 2x - 1const model = tf.sequential();model.add(tf.layers.dense({units: 1, inputShape: [1]}));

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

// Datos de entrenamientoconst 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(); // Debería ser ~19}train();

TensorFlow.js es ideal para tareas de visión por computadora, NLP y trabajo con series temporales directamente en el servidor.



2. Brain.js — redes neuronales para tareas simples

Brain.js es una biblioteca ligera para crear y entrenar redes neuronales. Es fácil de aprender, no requiere conocimientos profundos de matemáticas y es excelente para prototipado. Soporta perceptrones multicapa, LSTM y redes recurrentes.



Instalación:

npm install brain.js


Ejemplo: XOR (O exclusivo)

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 (cercano a 1)console.log(output);

Brain.js es útil para clasificación, predicción y análisis de texto (por ejemplo, análisis de sentimiento).



3. ML.js — colección de algoritmos clásicos

ML.js es un conjunto de módulos para aprendizaje automático tradicional (sin redes neuronales profundas). Incluye implementaciones de KNN, Naive Bayes, SVM, clustering K-means, PCA, árboles de decisión y mucho más. Cada algoritmo es un paquete npm independiente.



Instalación (ejemplo con KNN):

npm install ml-knn


Ejemplo: clasificación del iris de Fisher

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

// Conjunto de entrenamiento: [largo del sépalo, ancho, largo del pétalo, ancho]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 es indispensable para la implementación rápida de métodos estadísticos cuando no se necesitan redes neuronales.



4. Natural — procesamiento del lenguaje natural (NLP)

Natural es una biblioteca para NLP en Node.js. Incluye tokenización, stemming (Porter, Lancaster), clasificación (Naive Bayes, regresión logística), TF-IDF, análisis de sentimiento y comparación fonética.



Instalación:

npm install natural<                    

Recommendations