Aprendizado de Máquina em JavaScript (Node.js): bibliotecas e ferramentas
Embora o Python continue sendo a linguagem dominante na área de Data Science, o ecossistema JavaScript (especialmente Node.js) está se desenvolvendo ativamente e oferece ferramentas poderosas para aprendizado de máquina. Isso permite que desenvolvedores frontend e backend integrem modelos de ML diretamente em aplicações web, soluções de servidor, chatbots e até dispositivos IoT. Neste artigo, veremos as principais bibliotecas para Node.js que permitem treinar redes neurais, executar modelos pré-treinados e realizar tarefas clássicas de ML.
1. TensorFlow.js — framework poderoso do Google
TensorFlow.js é uma porta completa do famoso TensorFlow para JavaScript. Ele funciona tanto no navegador quanto no Node.js, usando WebGL ou CUDA (através de @tensorflow/tfjs-node-gpu) para acelerar os cálculos. A biblioteca permite carregar modelos pré-treinados (por exemplo, MobileNet, PoseNet) e treinar os seus próprios.
Instalação:
npm install @tensorflow/tfjs @tensorflow/tfjs-nodeExemplo: rede neural simples para regressão
const tf = require('@tensorflow/tfjs');require('@tensorflow/tfjs-node');
// Criando um modelo simples: y = 2x - 1const model = tf.sequential();model.add(tf.layers.dense({units: 1, inputShape: [1]}));
model.compile({loss: 'meanSquaredError', optimizer: 'sgd'});
// Dados de treinamentoconst 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(); // Deve ser ~19}train();TensorFlow.js é ideal para tarefas de visão computacional, PLN e trabalho com séries temporais diretamente no servidor.
2. Brain.js — redes neurais para tarefas simples
Brain.js é uma biblioteca leve para criar e treinar redes neurais. É fácil de aprender, não requer conhecimento profundo de matemática e é ótimo para prototipagem. Suporta perceptrons multicamadas, LSTM e redes recorrentes.
Instalação:
npm install brain.jsExemplo: XOR (ou 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 (próximo de 1)console.log(output);Brain.js é útil para classificação, previsão e análise de texto (por exemplo, análise de sentimento).
3. ML.js — coleção de algoritmos clássicos
ML.js é um conjunto de módulos para aprendizado de máquina tradicional (sem redes neurais profundas). Inclui implementações de KNN, Naive Bayes, SVM, clusterização K-means, PCA, árvores de decisão e muito mais. Cada algoritmo é um pacote npm separado.
Instalação (exemplo com KNN):
npm install ml-knnExemplo: classificação da íris de Fisher
const KNN = require('ml-knn');
// Conjunto de treinamento: [comprimento da sépala, largura, comprimento da pétala, largura]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 é indispensável para implementação rápida de métodos estatísticos quando redes neurais não são necessárias.
4. Natural — processamento de linguagem natural (PLN)
Natural é uma biblioteca para PLN em Node.js. Inclui tokenização, stemming (Porter, Lancaster), classificação (Naive Bayes, regressão logística), TF-IDF, análise de sentimento e comparação fonética.
Instalação:
npm install natural< Também na biblioteca
Biblioteca Padrão C++: visão geral completa e exemplos de código
Aprendizado de Máquina em JavaScript (Node.js): bibliotecas para ML
Registro em Java: visão geral das melhores bibliotecas e soluções
Cliente Redis para Node.js: ioredis — uma ferramenta poderosa para trabalhar com Redis