# 应用专题 / 数学算法 / 神经网络

## `mlpClassifier`

声明：class

使用多层感知机进行监督分类的神经网络模型

<!-- tags: 机器学习 神经网络 多层感知机 分类 -->

### `Hidden_layer_sizes`

声明：field

各隐藏层的神经元数量，默认 `array(100)`

可见性：`public`

类型：array

### `Activation`

声明：field

隐藏层激活函数，默认 `relu`

可见性：`public`

类型：string

### `Solver`

声明：field

权重优化求解器，默认 `adam`

可见性：`public`

类型：string

### `Learning_rate`

声明：field

权重更新的学习率时间表，默认 `constant`

可见性：`public`

类型：string

### `Max_iter`

声明：field

最大迭代次数，默认 200

可见性：`public`

类型：integer

### `Early_stopping`

声明：field

验证得分不再改善时是否提前终止训练，默认 `False`

可见性：`public`

类型：boolean

### `Classes_`

声明：field

训练后得到的各输出类别标签

可见性：`public`

类型：array

### `Loss_`

声明：field

当前训练损失

可见性：`public`

类型：real

### `create(hidden_layer_sizes, activation, solver, alpha, batch_size, learning_rate, learning_rate_init, power_t, max_iter, shuffle, random_state, tol, verbose, warm_start, momentum, nesterovs_momentum, early_stopping, validation_fraction, beta_1, beta_2, epsilon, n_iter_no_change, max_fun)`

声明：function

初始化多层感知机分类器

可见性：`public`

| 参数                  | 类型            | 说明                        |
| --------------------- | --------------- | --------------------------- |
| `hidden_layer_sizes`  | array           | 各隐藏层的神经元数量        |
| `activation`          | string          | 隐藏层激活函数              |
| `solver`              | string          | 权重优化求解器              |
| `alpha`               | real            | L2 正则化强度               |
| `batch_size`          | integer\|string | 随机优化器的批量大小        |
| `learning_rate`       | string          | 学习率时间表                |
| `learning_rate_init`  | real            | 初始学习率                  |
| `power_t`             | real            | 反比例学习率指数            |
| `max_iter`            | integer         | 最大迭代次数                |
| `shuffle`             | boolean         | 每次迭代是否随机取样        |
| `random_state`        | integer         | 随机状态                    |
| `tol`                 | real            | 优化停止容差                |
| `verbose`             | boolean         | 是否打印训练进度            |
| `warm_start`          | boolean         | 是否复用上次拟合结果        |
| `momentum`            | real            | 梯度下降动量                |
| `nesterovs_momentum`  | boolean         | 是否使用 Nesterov 动量      |
| `early_stopping`      | boolean         | 是否启用提前停止            |
| `validation_fraction` | real            | 提前停止时保留的验证集比例  |
| `beta_1`              | real            | Adam 第一矩估计的指数衰减率 |
| `beta_2`              | real            | Adam 第二矩估计的指数衰减率 |
| `epsilon`             | real            | Adam 数值稳定参数           |
| `n_iter_no_change`    | integer         | 未改善时允许的最大迭代轮数  |
| `max_fun`             | integer         | 最大函数调用次数            |

### `Fit(X, y)`

声明：function

根据特征矩阵和类别目标拟合模型

可见性：`public`

| 参数 | 类型  | 说明             |
| ---- | ----- | ---------------- |
| `X`  | array | 二维训练特征数组 |
| `y`  | array | 类别目标数组     |

### `Partial_fit(X, y, classes)`

声明：function

对一批数据执行一次增量训练

可见性：`public`

| 参数      | 类型  | 说明                         |
| --------- | ----- | ---------------------------- |
| `X`       | array | 本批次的二维训练特征数组     |
| `y`       | array | 本批次的类别目标数组         |
| `classes` | array | 首次调用时提供的全部可能类别 |

### `Predict(X)`

声明：function

预测输入样本的类别标签

可见性：`public`

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

返回：array

### `Predict_log_proba(X)`

声明：function

返回输入样本属于各类别的对数概率

可见性：`public`

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

返回：array

### `Predict_proba(X)`

声明：function

返回输入样本属于各类别的概率

可见性：`public`

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

返回：array

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

声明：function

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

可见性：`public`

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

返回：real

## `mlpRegressor`

声明：class

使用多层感知机进行监督回归的神经网络模型

<!-- tags: 机器学习 神经网络 多层感知机 回归 -->

### `Hidden_layer_sizes`

声明：field

各隐藏层的神经元数量，默认 `array(100)`

可见性：`public`

类型：array

### `Activation`

声明：field

隐藏层激活函数，默认 `relu`

可见性：`public`

类型：string

### `Solver`

声明：field

权重优化求解器，默认 `adam`

可见性：`public`

类型：string

### `Learning_rate`

声明：field

权重更新的学习率时间表，默认 `constant`

可见性：`public`

类型：string

### `Max_iter`

声明：field

最大迭代次数，默认 200

可见性：`public`

类型：integer

### `Early_stopping`

声明：field

验证得分不再改善时是否提前终止训练，默认 `False`

可见性：`public`

类型：boolean

### `Loss_`

声明：field

当前训练损失

可见性：`public`

类型：real

### `create(hidden_layer_sizes, activation, solver, alpha, batch_size, learning_rate, learning_rate_init, power_t, max_iter, shuffle, random_state, tol, verbose, warm_start, momentum, nesterovs_momentum, early_stopping, validation_fraction, beta_1, beta_2, epsilon, n_iter_no_change, max_fun)`

声明：function

初始化多层感知机回归器

可见性：`public`

| 参数                  | 类型            | 说明                       |
| --------------------- | --------------- | -------------------------- |
| `hidden_layer_sizes`  | array           | 各隐藏层的神经元数量       |
| `activation`          | string          | 隐藏层激活函数             |
| `solver`              | string          | 权重优化求解器             |
| `alpha`               | real            | L2 正则化强度              |
| `batch_size`          | integer\|string | 随机优化器的批量大小       |
| `learning_rate`       | string          | 学习率时间表               |
| `learning_rate_init`  | real            | 初始学习率                 |
| `power_t`             | real            | 反比例学习率指数           |
| `max_iter`            | integer         | 最大迭代次数               |
| `shuffle`             | boolean         | 每次迭代是否随机取样       |
| `random_state`        | integer         | 随机状态                   |
| `tol`                 | real            | 优化停止容差               |
| `verbose`             | boolean         | 是否打印训练进度           |
| `warm_start`          | boolean         | 是否复用上次拟合结果       |
| `momentum`            | real            | 梯度下降动量               |
| `nesterovs_momentum`  | boolean         | 是否使用 Nesterov 动量     |
| `early_stopping`      | boolean         | 是否启用提前停止           |
| `validation_fraction` | real            | 提前停止时保留的验证集比例 |
| `beta_1`              | real            | Adam 第一矩估计指数衰减率  |
| `beta_2`              | real            | Adam 第二矩估计指数衰减率  |
| `epsilon`             | real            | Adam 数值稳定参数          |
| `n_iter_no_change`    | integer         | 未改善时允许的最大迭代轮数 |
| `max_fun`             | integer         | 最大函数调用次数           |

### `Fit(X, y)`

声明：function

根据特征矩阵和回归目标拟合模型

可见性：`public`

| 参数 | 类型  | 说明             |
| ---- | ----- | ---------------- |
| `X`  | array | 二维训练特征数组 |
| `y`  | array | 回归目标数组     |

### `Partial_fit(X, y, classes)`

声明：function

对一批数据执行一次增量训练

可见性：`public`

| 参数      | 类型  | 说明                         |
| --------- | ----- | ---------------------------- |
| `X`       | array | 本批次的二维训练特征数组     |
| `y`       | array | 本批次的回归目标数组         |
| `classes` | array | 原始文档定义的增量训练类参数 |

### `Predict(X)`

声明：function

预测输入样本的回归值

可见性：`public`

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

返回：array

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

声明：function

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

可见性：`public`

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

返回：real

## `bernoulliRBM`

声明：class

使用伯努利可见单元和隐藏单元的限制玻尔兹曼机模型

<!-- tags: 机器学习 神经网络 玻尔兹曼机 特征学习 -->

### `N_components`

声明：field

二进制隐藏单元数，默认 256

可见性：`public`

类型：integer

### `Learning_rate`

声明：field

权重更新的学习率，默认 0.1

可见性：`public`

类型：real

### `Batch_size`

声明：field

每个训练批次的样本数量，默认 10

可见性：`public`

类型：integer

### `N_iter`

声明：field

扫描训练数据集的次数，默认 10

可见性：`public`

类型：integer

### `Components_`

声明：field

隐藏单元到可见特征的权重矩阵

可见性：`public`

类型：array

### `H_samples_`

声明：field

从模型分布采样得到的隐藏单元激活状态矩阵

可见性：`public`

类型：array

### `create(n_components, learning_rate, batch_size, n_iter, verbose, random_state)`

声明：function

初始化伯努利限制玻尔兹曼机

可见性：`public`

| 参数            | 类型    | 说明               |
| --------------- | ------- | ------------------ |
| `n_components`  | integer | 二进制隐藏单元数   |
| `learning_rate` | real    | 权重更新学习率     |
| `batch_size`    | integer | 每个批次的样本数量 |
| `n_iter`        | integer | 训练数据扫描次数   |
| `verbose`       | integer | 输出级别           |
| `random_state`  | integer | 随机状态           |

### `Fit(X, y)`

声明：function

根据输入数据拟合模型；`y` 仅用于保持接口一致

可见性：`public`

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

### `Fit_transform(X, y, fit_params)`

声明：function

拟合模型并将数据转换为隐藏层表征

可见性：`public`

| 参数         | 类型  | 说明                 |
| ------------ | ----- | -------------------- |
| `X`          | array | 二维训练特征数组     |
| `y`          | any   | 未使用的兼容参数     |
| `fit_params` | array | 传递给拟合过程的参数 |

返回：array

### `Gibbs(v)`

声明：function

执行一个 Gibbs 采样步骤并返回新的可见层数据

可见性：`public`

| 参数 | 类型  | 说明       |
| ---- | ----- | ---------- |
| `v`  | array | 可见层数据 |

返回：array

### `Partial_fit(X, y)`

声明：function

使用一个数据分片增量拟合模型；`y` 仅用于保持接口一致

可见性：`public`

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

### `Score_samples(X)`

声明：function

计算输入样本的伪似然

可见性：`public`

| 参数 | 类型  | 说明                   |
| ---- | ----- | ---------------------- |
| `X`  | array | 布尔值构成的可见层数据 |

返回：array

### `Transform(X)`

声明：function

计算隐藏层激活概率并返回数据的潜在表征

可见性：`public`

| 参数 | 类型  | 说明           |
| ---- | ----- | -------------- |
| `X`  | array | 需要转换的数据 |

返回：array
