# 应用专题 / 数学算法 / 支持向量机

## `linearSVC`

声明：class

基于线性核的支持向量分类器

<!-- tags: 机器学习 支持向量机 线性分类 -->

### `Penalty`

声明：field

惩罚规范，可选 `l1` 或 `l2`，默认 `l2`

可见性：`public`

类型：string

### `Loss`

声明：field

损失函数，默认 `squared_hinge`

可见性：`public`

类型：string

### `Dual`

声明：field

是否求解对偶优化问题，也可设置为 `auto`

可见性：`public`

类型：boolean|string

### `C`

声明：field

正则化参数，默认 1.0

可见性：`public`

类型：real

### `Classes_`

声明：field

训练后得到的唯一类别标签

可见性：`public`

类型：array

### `create(penalty, loss, dual, tol, C, multi_class, fit_intercept, intercept_scaling, class_weight, verbose, random_state, max_iter)`

声明：function

初始化线性支持向量分类器

可见性：`public`

| 参数                | 类型            | 说明             |
| ------------------- | --------------- | ---------------- |
| `penalty`           | string          | 惩罚规范         |
| `loss`              | string          | 损失函数         |
| `dual`              | boolean\|string | 对偶问题求解方式 |
| `tol`               | real            | 停止容差         |
| `C`                 | real            | 正则化参数       |
| `multi_class`       | string          | 多类别策略       |
| `fit_intercept`     | boolean         | 是否拟合截距     |
| `intercept_scaling` | real            | 截距缩放系数     |
| `class_weight`      | any             | 类别权重         |
| `verbose`           | integer         | 输出级别         |
| `random_state`      | integer         | 随机状态         |
| `max_iter`          | integer         | 最大迭代次数     |

### `Decision_function(X)`

声明：function

返回样本相对分类超平面的置信度

可见性：`public`

| 参数 | 类型  | 说明                   |
| ---- | ----- | ---------------------- |
| `X`  | array | 需要评分的二维特征数组 |

返回：array

### `Fit(X, y, sample_weight)`

声明：function

根据给定训练数据拟合模型

可见性：`public`

| 参数            | 类型  | 说明                       |
| --------------- | ----- | -------------------------- |
| `X`             | array | 二维训练特征数组           |
| `y`             | array | 类别目标数组               |
| `sample_weight` | array | 各样本权重；默认值为 `nil` |

### `Predict(X)`

声明：function

预测输入样本的类别标签

可见性：`public`

| 参数 | 类型  | 说明                   |
| ---- | ----- | ---------------------- |
| `X`  | array | 需要预测的二维特征数组 |

返回：array

### `Score(X, y, sample_weight)`

声明：function

返回给定测试数据和标签的平均准确率

可见性：`public`

| 参数            | 类型  | 说明                       |
| --------------- | ----- | -------------------------- |
| `X`             | array | 二维测试特征数组           |
| `y`             | array | 真实类别标签               |
| `sample_weight` | array | 各样本权重；默认值为 `nil` |

返回：real

## `linearSVR`

声明：class

基于线性核的支持向量回归模型

<!-- tags: 机器学习 支持向量机 线性回归 -->

### `Epsilon`

声明：field

epsilon 损失函数的容忍区间，默认 0.0

可见性：`public`

类型：real

### `C`

声明：field

正则化参数，默认 1.0

可见性：`public`

类型：real

### `Loss`

声明：field

损失函数，默认 `epsilon_insensitive`

可见性：`public`

类型：string

### `Dual`

声明：field

是否求解对偶优化问题，也可设置为 `auto`

可见性：`public`

类型：boolean|string

### `create(epsilon, tol, C, loss, fit_intercept, intercept_scaling, dual, verbose, random_state, max_iter)`

声明：function

初始化线性支持向量回归器

可见性：`public`

| 参数                | 类型            | 说明             |
| ------------------- | --------------- | ---------------- |
| `epsilon`           | real            | epsilon 容忍区间 |
| `tol`               | real            | 停止容差         |
| `C`                 | real            | 正则化参数       |
| `loss`              | string          | 损失函数         |
| `fit_intercept`     | boolean         | 是否拟合截距     |
| `intercept_scaling` | real            | 截距缩放系数     |
| `dual`              | boolean\|string | 对偶问题求解方式 |
| `verbose`           | integer         | 输出级别         |
| `random_state`      | integer         | 随机状态         |
| `max_iter`          | integer         | 最大迭代次数     |

### `Fit(X, y, sample_weight)`

声明：function

根据给定训练数据拟合模型

可见性：`public`

| 参数            | 类型  | 说明                       |
| --------------- | ----- | -------------------------- |
| `X`             | array | 二维训练特征数组           |
| `y`             | array | 回归目标数组               |
| `sample_weight` | array | 各样本权重；默认值为 `nil` |

### `Predict(X)`

声明：function

使用线性模型预测输入样本的回归值

可见性：`public`

| 参数 | 类型  | 说明                   |
| ---- | ----- | ---------------------- |
| `X`  | array | 需要预测的二维特征数组 |

返回：array

### `Score(X, y, sample_weight)`

声明：function

返回预测值相对于真实值的决定系数 R 方

可见性：`public`

| 参数            | 类型  | 说明                       |
| --------------- | ----- | -------------------------- |
| `X`             | array | 二维测试特征数组           |
| `y`             | array | 真实回归目标               |
| `sample_weight` | array | 各样本权重；默认值为 `nil` |

返回：real

## `nuSVC`

声明：class

使用参数 nu 控制支持向量比例和训练误差的支持向量分类器

<!-- tags: 机器学习 支持向量机 分类 -->

### `Nu`

声明：field

边际误差比例上限与支持向量比例下限，默认 0.5

可见性：`public`

类型：real

### `Kernel`

声明：field

核函数类型，默认 `rbf`

可见性：`public`

类型：string

### `Gamma_`

声明：field

`rbf`、`poly` 和 `sigmoid` 核的系数

可见性：`public`

类型：string|real

### `Probability`

声明：field

是否在拟合时启用概率估计，默认 `False`

可见性：`public`

类型：boolean

### `Classes_`

声明：field

训练后得到的类别标签

可见性：`public`

类型：array

### `create(C, kernel, degree, gamma, coef0, shrinking, probability, tol, cache_size, class_weight, verbose, max_iter, decision_function_shape, break_ties, random_state)`

声明：function

初始化 Nu 支持向量分类器；参数名按原始接口文档记录

可见性：`public`

| 参数                      | 类型    | 说明                 |
| ------------------------- | ------- | -------------------- |
| `C`                       | real    | 原始文档中的首个参数 |
| `kernel`                  | string  | 核函数类型           |
| `degree`                  | integer | 多项式核次数         |
| `gamma`                   | any     | 核函数系数           |
| `coef0`                   | real    | 核函数独立项         |
| `shrinking`               | boolean | 是否使用缩小启发式   |
| `probability`             | boolean | 是否启用概率估计     |
| `tol`                     | real    | 停止容差             |
| `cache_size`              | integer | 核矩阵缓存元素数     |
| `class_weight`            | any     | 类别权重             |
| `verbose`                 | integer | 输出级别             |
| `max_iter`                | integer | 最大迭代次数         |
| `decision_function_shape` | string  | 决策函数形状         |
| `break_ties`              | boolean | 是否按置信度打破并列 |
| `random_state`            | integer | 随机状态             |

### `Decision_function(X)`

声明：function

计算输入样本的决策函数值

可见性：`public`

| 参数 | 类型  | 说明                   |
| ---- | ----- | ---------------------- |
| `X`  | array | 需要评分的二维特征数组 |

返回：array

### `Fit(X, y, sample_weight)`

声明：function

根据给定训练数据拟合 SVM 模型

可见性：`public`

| 参数            | 类型  | 说明                       |
| --------------- | ----- | -------------------------- |
| `X`             | array | 训练特征或预计算核矩阵     |
| `y`             | array | 类别目标数组               |
| `sample_weight` | array | 各样本权重；默认值为 `nil` |

### `Predict(X)`

声明：function

预测输入样本的类别标签

可见性：`public`

| 参数 | 类型  | 说明                   |
| ---- | ----- | ---------------------- |
| `X`  | array | 特征数组或预计算核矩阵 |

返回：array

### `Predict_log_proba(X)`

声明：function

返回输入样本属于各类别的对数概率；拟合前需启用 `probability`

可见性：`public`

| 参数 | 类型  | 说明                   |
| ---- | ----- | ---------------------- |
| `X`  | array | 特征数组或预计算核矩阵 |

返回：array

### `Predict_proba(X)`

声明：function

返回输入样本属于各类别的概率；拟合前需启用 `probability`

可见性：`public`

| 参数 | 类型  | 说明                   |
| ---- | ----- | ---------------------- |
| `X`  | array | 特征数组或预计算核矩阵 |

返回：array

### `Score(X, y, sample_weight)`

声明：function

返回给定测试数据和标签的平均准确率

可见性：`public`

| 参数            | 类型  | 说明                       |
| --------------- | ----- | -------------------------- |
| `X`             | array | 二维测试特征数组           |
| `y`             | array | 真实类别标签               |
| `sample_weight` | array | 各样本权重；默认值为 `nil` |

返回：real

## `nuSVR`

声明：class

使用参数 nu 控制支持向量比例和训练误差的支持向量回归模型

<!-- tags: 机器学习 支持向量机 回归 -->

### `Nu`

声明：field

训练误差比例上限与支持向量比例下限，默认 0.5

可见性：`public`

类型：real

### `C`

声明：field

误差项惩罚参数，默认 1.0

可见性：`public`

类型：real

### `Kernel`

声明：field

核函数类型，默认 `rbf`

可见性：`public`

类型：string

### `Gamma_`

声明：field

`rbf`、`poly` 和 `sigmoid` 核的系数

可见性：`public`

类型：string|real

### `create(nu, C, kernel, degree, gamma, coef0, shrinking, tol, cache_size, verbose, max_iter)`

声明：function

初始化 Nu 支持向量回归器

可见性：`public`

| 参数         | 类型    | 说明               |
| ------------ | ------- | ------------------ |
| `nu`         | real    | Nu 约束参数        |
| `C`          | real    | 误差项惩罚参数     |
| `kernel`     | string  | 核函数类型         |
| `degree`     | integer | 多项式核次数       |
| `gamma`      | any     | 核函数系数         |
| `coef0`      | real    | 核函数独立项       |
| `shrinking`  | boolean | 是否使用缩小启发式 |
| `tol`        | real    | 停止容差           |
| `cache_size` | integer | 核矩阵缓存元素数   |
| `verbose`    | integer | 输出级别           |
| `max_iter`   | integer | 最大迭代次数       |

### `Fit(X, y, sample_weight)`

声明：function

根据给定训练数据拟合 SVM 模型

可见性：`public`

| 参数            | 类型  | 说明                       |
| --------------- | ----- | -------------------------- |
| `X`             | array | 训练特征或预计算核矩阵     |
| `y`             | array | 回归目标数组               |
| `sample_weight` | array | 各样本权重；默认值为 `nil` |

### `Predict(X)`

声明：function

预测输入样本的回归值

可见性：`public`

| 参数 | 类型  | 说明                   |
| ---- | ----- | ---------------------- |
| `X`  | array | 特征数组或预计算核矩阵 |

返回：array

### `Score(X, y, sample_weight)`

声明：function

返回预测值相对于真实值的决定系数 R 方

可见性：`public`

| 参数            | 类型  | 说明                       |
| --------------- | ----- | -------------------------- |
| `X`             | array | 二维测试特征数组           |
| `y`             | array | 真实回归目标               |
| `sample_weight` | array | 各样本权重；默认值为 `nil` |

返回：real

## `oneClassSVM`

声明：class

用于离群点和新颖性检测的单类支持向量机

<!-- tags: 机器学习 支持向量机 离群检测 -->

### `Kernel`

声明：field

核函数类型，默认 `rbf`

可见性：`public`

类型：string

### `Gamma_`

声明：field

`rbf`、`poly` 和 `sigmoid` 核的系数

可见性：`public`

类型：string|real

### `Nu`

声明：field

训练误差比例上限与支持向量比例下限，默认 0.5

可见性：`public`

类型：real

### `Offset_`

声明：field

从原始样本分数得到决策函数值时使用的偏移量

可见性：`public`

类型：real

### `create(kernel, degree, gamma, coef0, tol, nu, shrinking, cache_size, verbose, max_iter)`

声明：function

初始化单类支持向量机

可见性：`public`

| 参数         | 类型    | 说明               |
| ------------ | ------- | ------------------ |
| `kernel`     | string  | 核函数类型         |
| `degree`     | integer | 多项式核次数       |
| `gamma`      | any     | 核函数系数         |
| `coef0`      | real    | 核函数独立项       |
| `tol`        | real    | 停止容差           |
| `nu`         | real    | Nu 约束参数        |
| `shrinking`  | boolean | 是否使用缩小启发式 |
| `cache_size` | integer | 核矩阵缓存元素数   |
| `verbose`    | integer | 输出级别           |
| `max_iter`   | integer | 最大迭代次数       |

### `Decision_function(X)`

声明：function

返回样本到分离超平面的符号距离

可见性：`public`

| 参数 | 类型  | 说明                   |
| ---- | ----- | ---------------------- |
| `X`  | array | 需要评分的二维特征数组 |

返回：array

### `Fit(X, y, sample_weight)`

声明：function

检测样本集的软边界；`y` 仅用于保持接口一致

可见性：`public`

| 参数            | 类型  | 说明                       |
| --------------- | ----- | -------------------------- |
| `X`             | array | 二维训练特征数组           |
| `y`             | any   | 未使用的兼容参数           |
| `sample_weight` | array | 各样本权重；默认值为 `nil` |

### `Fit_predict(X, y)`

声明：function

拟合输入样本并返回离群标签；离群值为 -1，正常值为 1

可见性：`public`

| 参数 | 类型  | 说明             |
| ---- | ----- | ---------------- |
| `X`  | array | 二维训练特征数组 |
| `y`  | any   | 未使用的兼容参数 |

返回：array

### `Predict(X)`

声明：function

预测输入样本是正常值还是离群值

可见性：`public`

| 参数 | 类型  | 说明                   |
| ---- | ----- | ---------------------- |
| `X`  | array | 特征数组或预计算核矩阵 |

返回：array

### `Score_samples(X)`

声明：function

返回输入样本未经偏移的原始决策函数值

可见性：`public`

| 参数 | 类型  | 说明             |
| ---- | ----- | ---------------- |
| `X`  | array | 二维测试特征数组 |

返回：array

## `svc`

声明：class

支持多种核函数的 C 支持向量分类器

<!-- tags: 机器学习 支持向量机 核函数 分类 -->

### `C`

声明：field

正则化参数，默认 1.0

可见性：`public`

类型：real

### `Kernel`

声明：field

核函数类型，默认 `rbf`

可见性：`public`

类型：string

### `Gamma_`

声明：field

`rbf`、`poly` 和 `sigmoid` 核的系数

可见性：`public`

类型：string|real

### `Probability`

声明：field

是否在拟合时启用概率估计，默认 `False`

可见性：`public`

类型：boolean

### `Classes_`

声明：field

训练后得到的类别标签

可见性：`public`

类型：array

### `create(C, kernel, degree, gamma, coef0, shrinking, probability, tol, cache_size, class_weight, verbose, max_iter, decision_function_shape, break_ties, random_state)`

声明：function

初始化 C 支持向量分类器

可见性：`public`

| 参数                      | 类型    | 说明                 |
| ------------------------- | ------- | -------------------- |
| `C`                       | real    | 正则化参数           |
| `kernel`                  | string  | 核函数类型           |
| `degree`                  | integer | 多项式核次数         |
| `gamma`                   | any     | 核函数系数           |
| `coef0`                   | real    | 核函数独立项         |
| `shrinking`               | boolean | 是否使用缩小启发式   |
| `probability`             | boolean | 是否启用概率估计     |
| `tol`                     | real    | 停止容差             |
| `cache_size`              | integer | 核矩阵缓存元素数     |
| `class_weight`            | any     | 类别权重             |
| `verbose`                 | integer | 输出级别             |
| `max_iter`                | integer | 最大迭代次数         |
| `decision_function_shape` | string  | 决策函数形状         |
| `break_ties`              | boolean | 是否按置信度打破并列 |
| `random_state`            | integer | 随机状态             |

### `Decision_function(X)`

声明：function

计算输入样本的决策函数值

可见性：`public`

| 参数 | 类型  | 说明                   |
| ---- | ----- | ---------------------- |
| `X`  | array | 需要评分的二维特征数组 |

返回：array

### `Fit(X, y, sample_weight)`

声明：function

根据给定训练数据拟合 SVM 模型

可见性：`public`

| 参数            | 类型  | 说明                       |
| --------------- | ----- | -------------------------- |
| `X`             | array | 训练特征或预计算核矩阵     |
| `y`             | array | 类别目标数组               |
| `sample_weight` | array | 各样本权重；默认值为 `nil` |

### `Predict(X)`

声明：function

预测输入样本的类别标签

可见性：`public`

| 参数 | 类型  | 说明                   |
| ---- | ----- | ---------------------- |
| `X`  | array | 特征数组或预计算核矩阵 |

返回：array

### `Predict_log_proba(X)`

声明：function

返回输入样本属于各类别的对数概率；拟合前需启用 `probability`

可见性：`public`

| 参数 | 类型  | 说明                   |
| ---- | ----- | ---------------------- |
| `X`  | array | 特征数组或预计算核矩阵 |

返回：array

### `Predict_proba(X)`

声明：function

返回输入样本属于各类别的概率；拟合前需启用 `probability`

可见性：`public`

| 参数 | 类型  | 说明                   |
| ---- | ----- | ---------------------- |
| `X`  | array | 特征数组或预计算核矩阵 |

返回：array

### `Score(X, y, sample_weight)`

声明：function

返回给定测试数据和标签的平均准确率

可见性：`public`

| 参数            | 类型  | 说明                       |
| --------------- | ----- | -------------------------- |
| `X`             | array | 二维测试特征数组           |
| `y`             | array | 真实类别标签               |
| `sample_weight` | array | 各样本权重；默认值为 `nil` |

返回：real

## `svr`

声明：class

支持多种核函数的 epsilon 支持向量回归模型

<!-- tags: 机器学习 支持向量机 核函数 回归 -->

### `Kernel`

声明：field

核函数类型，默认 `rbf`

可见性：`public`

类型：string

### `Gamma_`

声明：field

`rbf`、`poly` 和 `sigmoid` 核的系数

可见性：`public`

类型：string|real

### `C`

声明：field

正则化参数，默认 1.0

可见性：`public`

类型：real

### `Epsilon`

声明：field

训练损失不惩罚的误差区间，默认 0.1

可见性：`public`

类型：real

### `create(kernel, degree, gamma, coef0, tol, C, epsilon, shrinking, cache_size, verbose, max_iter)`

声明：function

初始化 epsilon 支持向量回归器

可见性：`public`

| 参数         | 类型    | 说明               |
| ------------ | ------- | ------------------ |
| `kernel`     | string  | 核函数类型         |
| `degree`     | integer | 多项式核次数       |
| `gamma`      | any     | 核函数系数         |
| `coef0`      | real    | 核函数独立项       |
| `tol`        | real    | 停止容差           |
| `C`          | real    | 正则化参数         |
| `epsilon`    | real    | epsilon 容忍区间   |
| `shrinking`  | boolean | 是否使用缩小启发式 |
| `cache_size` | integer | 核矩阵缓存元素数   |
| `verbose`    | integer | 输出级别           |
| `max_iter`   | integer | 最大迭代次数       |

### `Fit(X, y, sample_weight)`

声明：function

根据给定训练数据拟合 SVM 模型

可见性：`public`

| 参数            | 类型  | 说明                       |
| --------------- | ----- | -------------------------- |
| `X`             | array | 训练特征或预计算核矩阵     |
| `y`             | array | 回归目标数组               |
| `sample_weight` | array | 各样本权重；默认值为 `nil` |

### `Predict(X)`

声明：function

预测输入样本的回归值

可见性：`public`

| 参数 | 类型  | 说明                   |
| ---- | ----- | ---------------------- |
| `X`  | array | 特征数组或预计算核矩阵 |

返回：array

### `Score(X, y, sample_weight)`

声明：function

返回预测值相对于真实值的决定系数 R 方

可见性：`public`

| 参数            | 类型  | 说明                       |
| --------------- | ----- | -------------------------- |
| `X`             | array | 二维测试特征数组           |
| `y`             | array | 真实回归目标               |
| `sample_weight` | array | 各样本权重；默认值为 `nil` |

返回：real
