Node.js 机器学习:JavaScript 库概述与示例

面向初学者的在线Python训练器

轻松学习Python,无需理论负担。在浏览器中直接解决带自动检查的实践任务,无需安装任何东西。

开始课程

JavaScript (Node.js) 机器学习:库与工具



尽管 Python 在数据科学领域仍占主导地位,但 JavaScript(尤其是 Node.js)生态系统正在积极发展,并提供了强大的机器学习工具。这使得前端和后端开发者能够将 ML 模型直接集成到 Web 应用、服务器端解决方案、聊天机器人甚至 IoT 设备中。本文将介绍 Node.js 的关键库,这些库支持训练神经网络、运行预训练模型以及执行经典的 ML 任务。



1. TensorFlow.js —— 来自 Google 的强大框架

TensorFlow.js 是著名 TensorFlow 在 JavaScript 上的完整移植版本。它既可在浏览器中运行,也可在 Node.js 中运行,并利用 WebGL 或 CUDA(通过 @tensorflow/tfjs-node-gpu)加速计算。该库支持加载预训练模型(例如 MobileNet、PoseNet)以及训练自定义模型。



安装:

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


示例:用于回归的简单神经网络

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

// 创建一个简单模型:y = 2x - 1const model = tf.sequential();model.add(tf.layers.dense({units: 1, inputShape: [1]}));

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

// 训练数据const 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(); // 应约为 19}train();

TensorFlow.js 非常适合直接在服务器上处理计算机视觉、NLP 和时间序列任务。



2. Brain.js —— 适用于简单任务的神经网络

Brain.js 是一个轻量级库,用于创建和训练神经网络。它易于学习,无需深厚的数学知识,非常适合快速原型开发。支持多层感知器、LSTM 和循环神经网络。



安装:

npm install brain.js


示例:异或(XOR)

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

Brain.js 适用于分类、预测和文本分析(例如情感分析)。



3. ML.js —— 经典算法集合

ML.js 是一组用于传统机器学习(非深度神经网络)的模块。包含 KNN、朴素贝叶斯、SVM、K-means 聚类、PCA、决策树等算法的实现。每个算法都是一个独立的 npm 包。



安装(以 KNN 为例):

npm install ml-knn


示例:鸢尾花分类

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

// 训练集:[花萼长度, 花萼宽度, 花瓣长度, 花瓣宽度]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 是快速实现统计方法的理想选择。



4. Natural —— 自然语言处理(NLP)

Natural 是 Node.js 的 NLP 库。包含分词、词干提取(Porter、Lancaster)、分类(朴素贝叶斯、逻辑回归)、TF-IDF、情感分析和语音比较功能。



安装:

npm install natural<                    

推荐