# @code-dot-org/svm 中文文档

规范地址：https://npmcn.com/package/%40code-dot-org/svm/

版本：0\.1\.1
npm 元数据更新时间：2026-07-31T19:42:27.223Z
中文译文更新时间：2026-11-10T06:12:18.294Z
软件包许可：未声明

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40code-dot-org/svm
原文对照：https://npmcn.com/package/%40code-dot-org/svm/?lang=original
项目主页：https://github.com/code-dot-org/svmjs#readme
源码仓库：https://github.com/code-dot-org/svmjs

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：282 kB，29 个文件
- 模块格式：CommonJS
- TypeScript 类型：未声明
- 运行依赖：0 个
- 首次发布：2021-09-08T23:05:55.423Z
- 最新版本发布：2021-09-08T23:05:55.690Z
- 近 30 天下载量：4925（2026-10-10 至 2026-11-08，npm 官方下载统计）
- 已发布版本数：1（近 12 个月 0 个）

## 中文简介

代码.org分叉 Karopathy/svmjs用于代码工作室学习环境中.

## 安装

```sh
npm install @code-dot-org/svm
```

也可以使用：`pnpm add @code-dot-org/svm`、`yarn add @code-dot-org/svm`、`bun add @code-dot-org/svm`

## README

# svmjs (英语)

安德烈·卡纳多里 2012年7月 (简体中文)

svmjs是SMO算法的轻量级执行,用于训练二进制 支持矢量机. 由于采用双重表述,它也支持 任意内核。 正确性测试,连同 MATLAB 参考代码 正在测试.

## 在线图形用户界面演示

此处可见: [http://cs.stanford.edu/~karpathy/svmjs/demo/ (中文(简体) )](http://cs.stanford.edu/~karpathy/svmjs/demo/)

对应代码在/demo目录内.

## 使用量

最简单的使用例:

```javascript
// include the library
<script src="./svmjs/lib/svm.js"></script>
<script>
data = [[0,0], [0,1], [1,0], [1,1]];
labels = [-1, 1, 1, -1];
svm = new svmjs.SVM();
svm.train(data, labels, {C: 1.0}); // C is a parameter to SVM
testlabels = svm.predict(testdata);
</script>
```

这里, `data` 财务报告和审定财务报表 `testdata` 是一个2D,NxD的浮点数组, `labels` 财务报告和审定财务报表 `testlabels` 是含有 1 或 -1 的 N 大小阵列。 您也可以查询原始边距 :

```javascript
margins = svm.margins(testdata);
margin = svm.marginOne(testadata[0]);
```

库支持任意内核,但目前带有线性内核和rbf内核:

```javascript
svm.train(data, labels, { kernel: function(v1,v2){ /* return K(v1, v2) */} }); // arbitrary function
svm.train(data, labels, { kernel: 'linear' });
svm.train(data, labels, { kernel: 'rbf', rbfsigma: 0.5 }); // sigma in the gaussian kernel = 0.5
```

对于训练,你可以通过若干选项。 以下为默认值 :

```javascript
var options = {};
/* For C, Higher = you trust your data more. Lower = more regularization.
Should be in range of around 1e-2 ... 1e5 at most. */
options.C = 1.0;
options.tol = 1e-4; // do not touch this unless you're pro
options.alphatol = 1e-7; // used for pruning non-support vectors. do not touch unless you're pro
options.maxiter = 10000; // if you have a larger problem, you may need to increase this
options.kernel = svmjs.linearKernel; // discussed above
options.numpasses = 10; // increase this for higher precision of the result. (but slower)
svm.train(data, labels, options);
```

拇指规则:你几乎总是想先尝试线性SVM,看看它是如何工作的. 你想这样 以大约1e-2到1e5的 C 的不同值进行游戏,因为每个数据集都不同. `C=1` 通常是一种相当合理的价值。 粗略来说,C是SVM的成本 当它错误的分类你之一 培训实例。 如果你增加, SVM 会非常努力地适应你的所有数据, 这也许是好的 如果你强烈相信自己的数据。 在实践中,你通常不希望它太高。 如果线性内核 效果不好,试试rbf内核. 你必须尝试不同的C值 和同样关键的西格玛值 对于高斯内核.

线性SVM与任何其他内核的比SVM快得多. 如果你想要更快一点 但不太准确, 您想要玩 option.tol( trt 增加一点) 。 你也可以尝试 减少选项.maxiter,特别是选项.numpasses(减少一点). 如果使用非线性 svm,您也可以在测试时通过玩来加速 svm 选项.alphatol(try 增加一点).

如果您使用线性或rbf内核(而不是一些自定义内核),您可以加载并保存 svm :

```javascript
var svm = new svmjs.SVM();
var json = svm.toJSON();
var svm2 = new svmjs.SVM();
svm2.fromJSON(json);
```

## 在节点中使用

要使用此库 [节点.js](http://nodejs.org/),安装 `npm`数字 :

```
npm install svm
```

像这样使用:

```javascript
var svm = require("svm");
var SVM = new svm.SVM();
SVM.train(data, labels);
```

## 执行详情

SMO算法非常高效,所以你不必担心 无论你的问题有多严重, 都会耗尽空间。 但是,你确实需要 担心运行效率 在实践中, 有很多可以修炼的 用于选择对相( i, j) 优化, 这使用相当天真 办法。 如果你有一个大而复杂的问题,你需要增加 最多一个。 (或别用Javascript!)

## 许可证

麻省理工学院

## 常见问题

### @code-dot-org/svm 是什么？

代码\.org分叉 Karopathy/svmjs用于代码工作室学习环境中\.

### 如何安装 @code-dot-org/svm？

在项目目录运行 npm install @code-dot-org/svm，或使用 pnpm add / yarn add / bun add。

### @code-dot-org/svm 支持 TypeScript 吗？

该包的 package\.json 没有声明类型入口。需要类型提示时，可以在 npm 上查找社区维护的 @types/code-dot-org\_\_svm 是否存在。

### @code-dot-org/svm 支持 ESM 还是 CommonJS？

以 CommonJS 形式发布，可以直接 require\(\)；在 ES Module 项目中也可以用 import 引入（Node\.js 会把 module\.exports 作为默认导出）。

### @code-dot-org/svm 可以商用吗？

@code-dot-org/svm 使用 未声明 许可。package\.json 没有声明许可证。没有许可证的代码默认保留全部权利，商用前请联系作者或查看仓库中的 LICENSE 文件。以上为概括，不构成法律意见，请以许可原文为准。

### @code-dot-org/svm 的下载量有多少？

根据 npm 官方下载统计，@code-dot-org/svm 在 2026/10/10 – 2026/11/08 这 30 天内被下载 4,925 次，日均约 164 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @code-dot-org/svm 还在维护吗？

最新版本 0\.1\.1 发布于 2021/09/09（5 年前）；至今共发布 1 个版本，其中过去 12 个月发布了 0 个；首次发布于 2021/09/09。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

