# 应用专题 / 数学算法 / 朴素贝叶斯

## `gaussianNB`

声明：class

假设连续特征服从高斯分布的朴素贝叶斯分类器

<!-- tags: 机器学习 朴素贝叶斯 高斯分布 分类 -->

### `Classes_`

声明：field

训练后得到的类别取值范围

可见性：`public`

类型：array

### `Class_prior_`

声明：field

训练后得到的各类别先验概率

可见性：`public`

类型：array

### `Class_count_`

声明：field

各类别用于训练的样本观测数

可见性：`public`

类型：array

### `Priors`

声明：field

用户指定的类别先验概率；为空时从训练样本自动计算

可见性：`public`

类型：array

### `Theta_`

声明：field

训练后得到的各类别、各特征均值

可见性：`public`

类型：array

### `Sigma_`

声明：field

训练后得到的各类别、各特征方差

可见性：`public`

类型：array

### `create(priors)`

声明：function

使用指定的类别先验概率初始化分类器

可见性：`public`

| 参数     | 类型  | 说明                                 |
| -------- | ----- | ------------------------------------ |
| `priors` | array | 指定的各类别先验概率；默认值为 `nil` |

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

声明：function

一次性拟合全部训练数据；`sample_weight` 为每个训练样本的权重

可见性：`public`

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

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

声明：function

增量拟合一批训练数据；首次调用时通过 `classes` 给出全部可能类别

可见性：`public`

| 参数            | 类型  | 说明                             |
| --------------- | ----- | -------------------------------- |
| `X`             | array | 本批次的二维训练特征数组         |
| `y`             | array | 本批次的一维类别标签数组         |
| `classes`       | array | 可能出现在 `y` 中的全部类别      |
| `sample_weight` | array | 各训练样本的权重；默认值为 `nil` |

### `Predict(X)`

声明：function

预测输入样本的类别标签

可见性：`public`

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

返回：array

### `Predict_log_proba(X)`

声明：function

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

可见性：`public`

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

返回：array

### `Predict_proba(X)`

声明：function

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

可见性：`public`

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

返回：array

## `multinomialNB`

声明：class

假设离散特征服从多项分布的朴素贝叶斯分类器

<!-- tags: 机器学习 朴素贝叶斯 多项分布 分类 -->

### `Classes_`

声明：field

训练后得到的类别取值范围

可见性：`public`

类型：array

### `Class_prior`

声明：field

各类别的先验概率

可见性：`public`

类型：array

### `Class_log_prior_`

声明：field

各类别的对数先验概率

可见性：`public`

类型：array

### `Feature_count_`

声明：field

拟合期间各类别、各特征的加权样本数

可见性：`public`

类型：array

### `Feature_log_prob_`

声明：field

给定类别时各特征的经验对数概率

可见性：`public`

类型：array

### `Class_count_`

声明：field

各类别用于训练的样本观测数

可见性：`public`

类型：array

### `Alpha`

声明：field

拉普拉斯或 Lidstone 加法平滑因子，默认 1.0

可见性：`public`

类型：real

### `Fit_prior`

声明：field

是否从训练样本学习类别先验概率，默认 `True`

可见性：`public`

类型：boolean

### `create(alpha, fit_prior, class_prior)`

声明：function

使用平滑因子、先验学习开关和可选先验概率初始化分类器

可见性：`public`

| 参数          | 类型    | 说明                                |
| ------------- | ------- | ----------------------------------- |
| `alpha`       | real    | 加法平滑因子，默认 1.0              |
| `fit_prior`   | boolean | 是否从样本学习先验概率，默认 `True` |
| `class_prior` | array   | 指定的类别先验概率；默认值为 `nil`  |

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

声明：function

一次性拟合全部训练数据

可见性：`public`

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

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

声明：function

增量拟合一批训练数据

可见性：`public`

| 参数            | 类型  | 说明                             |
| --------------- | ----- | -------------------------------- |
| `X`             | array | 本批次的二维训练特征数组         |
| `y`             | array | 本批次的一维类别标签数组         |
| `classes`       | array | 可能出现在 `y` 中的全部类别      |
| `sample_weight` | array | 各训练样本的权重；默认值为 `nil` |

### `Predict(X)`

声明：function

预测输入样本的类别标签

可见性：`public`

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

返回：array

### `Predict_log_proba(X)`

声明：function

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

可见性：`public`

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

返回：array

### `Predict_proba(X)`

声明：function

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

可见性：`public`

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

返回：array

## `bernoulliNB`

声明：class

假设离散特征服从多元伯努利分布的朴素贝叶斯分类器

<!-- tags: 机器学习 朴素贝叶斯 伯努利分布 分类 -->

### `Classes_`

声明：field

训练后得到的类别取值范围

可见性：`public`

类型：array

### `Class_prior`

声明：field

各类别的先验概率

可见性：`public`

类型：array

### `Class_log_prior_`

声明：field

各类别的对数先验概率

可见性：`public`

类型：array

### `Feature_count_`

声明：field

拟合期间各类别、各特征的加权样本数

可见性：`public`

类型：array

### `Feature_log_prob_`

声明：field

给定类别时各特征的经验对数概率

可见性：`public`

类型：array

### `Class_count_`

声明：field

各类别用于训练的样本观测数

可见性：`public`

类型：array

### `Alpha`

声明：field

拉普拉斯或 Lidstone 加法平滑因子，默认 1.0

可见性：`public`

类型：real

### `Binarize`

声明：field

将样本特征映射为布尔值的阈值，默认 0.0

可见性：`public`

类型：real

### `Fit_prior`

声明：field

是否从训练样本学习类别先验概率，默认 `True`

可见性：`public`

类型：boolean

### `create(alpha, binarize, fit_prior, class_prior)`

声明：function

使用平滑因子、二值化阈值和先验设置初始化分类器

可见性：`public`

| 参数          | 类型    | 说明                                |
| ------------- | ------- | ----------------------------------- |
| `alpha`       | real    | 加法平滑因子，默认 1.0              |
| `binarize`    | real    | 特征二值化阈值，默认 0.0            |
| `fit_prior`   | boolean | 是否从样本学习先验概率，默认 `True` |
| `class_prior` | array   | 指定的类别先验概率；默认值为 `nil`  |

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

声明：function

一次性拟合全部训练数据

可见性：`public`

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

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

声明：function

增量拟合一批训练数据

可见性：`public`

| 参数            | 类型  | 说明                             |
| --------------- | ----- | -------------------------------- |
| `X`             | array | 本批次的二维训练特征数组         |
| `y`             | array | 本批次的一维类别标签数组         |
| `classes`       | array | 可能出现在 `y` 中的全部类别      |
| `sample_weight` | array | 各训练样本的权重；默认值为 `nil` |

### `Predict(X)`

声明：function

预测输入样本的类别标签

可见性：`public`

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

返回：array

### `Predict_log_proba(X)`

声明：function

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

可见性：`public`

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

返回：array

### `Predict_proba(X)`

声明：function

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

可见性：`public`

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

返回：array

## `naiveBayesTotal`

声明：class

支持连续特征与离散特征混合分布的朴素贝叶斯综合分类器

<!-- tags: 机器学习 朴素贝叶斯 混合分布 分类 -->

### `Classes_`

声明：field

训练后得到的类别取值范围

可见性：`public`

类型：array

### `Feature_distribution`

声明：field

各特征的分布类型；元素可为 `normal`、`mn` 或 `bn`

可见性：`public`

类型：array

### `Class_priors`

声明：field

各类别的先验概率

可见性：`public`

类型：array

### `Class_count_`

声明：field

各类别用于训练的样本观测数

可见性：`public`

类型：array

### `create(priors)`

声明：function

使用指定的类别先验概率初始化分类器

可见性：`public`

| 参数     | 类型  | 说明                                 |
| -------- | ----- | ------------------------------------ |
| `priors` | array | 指定的各类别先验概率；默认值为 `nil` |

### `Fit(X, y, distribution, alpha_mn, alpha_bn, binarize, sample_weight)`

声明：function

按每个特征指定的分布拟合混合朴素贝叶斯模型

可见性：`public`

| 参数            | 类型  | 说明                               |
| --------------- | ----- | ---------------------------------- |
| `X`             | array | 二维训练特征数组                   |
| `y`             | array | 一维类别标签数组                   |
| `distribution`  | array | 各特征的分布类型                   |
| `alpha_mn`      | real  | 多项分布模型的平滑因子，默认 1     |
| `alpha_bn`      | real  | 伯努利分布模型的平滑因子，默认 1   |
| `binarize`      | real  | 伯努利分布模型的二值化阈值，默认 0 |
| `sample_weight` | array | 各训练样本的权重；默认值为 `nil`   |

### `Predict(X)`

声明：function

预测输入样本的类别标签

可见性：`public`

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

返回：array

### `Predict_log_proba(X)`

声明：function

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

可见性：`public`

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

返回：array

### `Predict_proba(X)`

声明：function

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

可见性：`public`

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

返回：array
