mindspore/docs/api/api_python/ops/mindspore.ops.func_cov.rst

50 lines
2.9 KiB
ReStructuredText
Raw Normal View History

2023-01-09 16:46:32 +08:00
mindspore.ops.cov
==================
.. py:function:: mindspore.ops.cov(x, *, correction=1, fweights=None, aweights=None)
2023-02-09 20:38:48 +08:00
给定输入 `x` 和权重,返回输入 `x` 的协方差矩阵(每对变量的协方差的方阵),其中输入行是变量,列是观察值。
2023-01-09 16:46:32 +08:00
2023-02-09 20:38:48 +08:00
对角线包含每个变量及其自身的协方差。如果 `x` 是单个变量的标量或一维向量,则将返回其方差。
2023-01-09 16:46:32 +08:00
变量 :math:`a`:math:`b` 的无偏样本协方差由下式给出:
.. math::
\text{cov}_w(a,b) = \frac{\sum^{N}_{i = 1}(a_{i} - \bar{a})(b_{i} - \bar{b})}{N~-~1}
其中 :math:`\bar{a}`:math:`\bar{b}` 分别是 :math:`a`:math:`b` 的简单均值。
如果提供了 `fweights` 和/或 `aweights` ,则计算无偏加权协方差,由下式给出:
.. math::
\text{cov}_w(a,b) = \frac{\sum^{N}_{i = 1}w_i(a_{i} - \mu_a^*)(b_{i} - \mu_b^*)}{\sum^{N}_{i = 1}w_i~-~1}
其中 :math:`w` 基于提供的 `fweights``aweights` 中的任意一个参数进行表示,如果两个参数都有提供,则 :math:`w = fweights \times aweights`,并且 :math:`\mu_x^* = \frac{\sum^{N}_{i = 1}w_ix_{i} }{\sum^{N}_{i = 1}w_i}` 表示变量的加权平均值。
.. warning::
`fweights``aweights` 的值不能为负数,负数权重场景结果未定义。
2023-02-18 10:45:14 +08:00
.. note::
当前暂不支持复数。
2023-01-09 16:46:32 +08:00
参数:
2023-01-18 17:52:51 +08:00
- **x** (Tensor) - 一个二维矩阵,或单个变量的标量或一维向量。
2023-01-09 16:46:32 +08:00
关键字参数:
- **correction** (int可选) - 样本量和样本自由度之间的差异默认为Bessel校正 `correction = 1`,即使指定了 `fweights``aweights` 的情况下它也会返回无偏估计。`correction = 0` 将返回简单平均值。默认值1。
2023-01-18 17:52:51 +08:00
- **fweights** (Tensor, 可选) - 包含整数频率权重的标量或一维Tensor表示每一个观测向量的重复次数。它的numel必须等于输入 `x` 的列数。若为None则忽略。默认值None。
- **aweights** (Tensor, 可选) - 包含浮点观测权重的标量或一维Tensor表示每一个观测向量的重要性重要性越高对应值越大。它的numel必须等于输入 `x` 的列数。若为None则忽略。默认值None。
2023-01-09 16:46:32 +08:00
返回:
2023-01-18 17:52:51 +08:00
Tensor输入 `x` 的协方差矩阵。
2023-01-09 16:46:32 +08:00
异常:
- **ValueError** - 如果输入的维度大于2。
- **ValueError** - 如果 `fweights` 的维度大于1。
- **ValueError** - 如果 `fweights` 的numel不等于输入 `x` 的列数。
- **ValueError** - 如果 `aweights` 的numel不等于输入 `x` 的列数。
- **ValueError** - 如果 `aweights` 的维度大于1。
- **TypeError** - 如果输入的类型为bool类型。
- **TypeError** - 如果 `fweights` 的类型不为int。
- **TypeError** - 如果 `aweights` 的类型不为浮点类型。