JavaScript para aprendizado de máquina: ferramentas práticas e exemplos de código
Na primeira parte, discutimos por que o JavaScript pode ser útil no aprendizado de máquina. Agora vamos à prática. Se você está estudando programação e quer experimentar ML sem migrar para Python — este artigo é para você. Vamos explorar bibliotecas reais, escrever código em Node.js e discutir onde o JS é realmente conveniente. O material é adequado até para JavaScript para iniciantes.
Bibliotecas para ML em JavaScript
O ecossistema JavaScript está em constante evolução. Aqui estão as principais ferramentas para trabalhar com dados e modelos:
- TensorFlow.js — porta do famoso framework do Google. Permite treinar modelos diretamente no navegador ou no Node.js.
- Brain.js — biblioteca simples para redes neurais. Ideal para aprender conceitos básicos.
- ml.js — conjunto de utilitários para regressão, clusterização e classificação.
- Natural — biblioteca para processamento de linguagem natural (NLP).
Vamos ver um exemplo com TensorFlow.js. Instalação via npm:
npm install @tensorflow/tfjsAgora vamos escrever uma regressão linear simples:
const tf = require('@tensorflow/tfjs');
// Criando o modeloconst model = tf.sequential();model.add(tf.layers.dense({units: 1, inputShape: [1]}));
// Compilandomodel.compile({loss: 'meanSquaredError', optimizer: 'sgd'});
// Dados: y = 2x - 1const xs = tf.tensor2d([-1, 0, 1, 2, 3, 4], [6, 1]);const ys = tf.tensor2d([-3, -1, 1, 3, 5, 7], [6, 1]);
// Treinamentomodel.fit(xs, ys, {epochs: 250}).then(() => { // Predição model.predict(tf.tensor2d([5], [1, 1])).print();});O resultado será próximo de 9 (já que 2*5 - 1 = 9). Este exemplo mostra como é fácil começar o treinamento de um modelo em JavaScript.
Limitações do JavaScript em ML
Apesar da conveniência, existem limitações importantes:
- Desempenho: JS fica atrás do Python em cálculos numéricos. TensorFlow.js usa WebGL, mas modelos complexos rodam mais devagar.
- Ecossistema: Há menos bibliotecas para ML do que em Python. Não existem equivalentes ao PyTorch ou scikit-learn.
- Comunidade: A maioria dos exemplos e soluções está em Python. Para JS é mais difícil encontrar pipelines prontos.
- Recursos: Node.js não é otimizado para trabalho com GPU (embora existam soluções experimentais).
No entanto, para projetos pequenos, prototipagem e aplicações web, o JS é bastante adequado. Especialmente se você já conhece JavaScript e não quer aprender uma nova linguagem.
Exemplo prático: classificação de texto em Node.js
Vamos usar a biblioteca Natural para determinar o sentimento de uma avaliação. Isso é útil para chatbots ou análise de comentários.
Instalação:
npm install naturalCódigo do classificador:
const natural = require('natural');const classifier = new natural.BayesClassifier();
// Treinando com exemplosclassifier.addDocument('produto excelente', 'positivo');classifier.addDocument('qualidade horrível', 'negativo');classifier.addDocument('ok, mas caro', 'neutro');
classifier.train();
// Testandoconsole.log(classifier.classify('muito ruim')); // negativoconsole.log(classifier.getClassifications('coisa super legal'));Este exemplo mostra como o JavaScript lida com tarefas de NLP. Para programar soluções como essa, não é necessário conhecimento profundo de matemática — a biblioteca faz tudo sozinha.
Quando escolher JavaScript para ML?
Aqui estão cenários onde o JS é justificado:
- Aplicações web: O modelo trabal