incr_mean_variance_axis#

sklearn.utils.sparsefuncs.incr_mean_variance_axis(X, *, axis, last_mean, last_var, last_n, weights=None)[源码]#

沿 CSR 或 CSC 矩阵的轴计算增量均值和方差。

last_mean 和 last_var 是此函数在上一步计算出的统计量。两者必须初始化为适当大小(即 X 中的特征数量)的零数组。last_n 是迄今为止遇到的样本数量。

参数:
X形状为 (n_samples, n_features) 的 CSR 或 CSC 稀疏矩阵

Input data.

axis{0, 1}

计算轴的轴向。

last_mean形状为 (n_features,) 或 (n_samples,) 的 ndarray,dtype=floating

用新数据 X 更新的均值数组。如果 axis=0,其形状应为 (n_features,);如果 axis=1,其形状应为 (n_samples,)。

last_var形状为 (n_features,) 或 (n_samples,) 的 ndarray,dtype=floating

用新数据 X 更新的方差数组。如果 axis=0,其形状应为 (n_features,);如果 axis=1,其形状应为 (n_samples,)。

last_nfloat 或形状为 (n_features,) 或 (n_samples,) 的 ndarray,dtype=floating

目前为止观测到的权重之和(不包含当前权重)。如果不是 float 类型,当 axis=0 时它应该是 (n_features,),当 axis=1 时它应该是 (n_samples,)。如果是 float 类型,则表示所有样本(或特征)具有相同的权重。

weights形状为 (n_samples,) 或 (n_features,) 的 ndarray,默认=None

如果 axis 设置为 0,形状为 (n_samples,);如果 axis 设置为 1,形状为 (n_features,)。如果设置为 None,则所有样本权重相等。

0.24 版本新增。

返回:
means形状为 (n_features,) 或 (n_samples,) 的 ndarray,dtype=floating

更新后的特征均值(axis=0 时)或样本均值(axis=1 时)。

variances形状为 (n_features,) 或 (n_samples,) 的 ndarray,dtype=floating

更新后的特征方差(axis=0 时)或样本方差(axis=1 时)。

n形状为 (n_features,) 或 (n_samples,) 的 ndarray,dtype=integral

更新后每个特征观测到的样本数(axis=0 时)或每个样本观测到的特征数(axis=1 时)。

如果 weights 不为 None,则 n 是观测到的样本或特征的权重之和,而不是实际的观测样本数或特征数。

注意事项

算法中会忽略 NaN 值。

示例

>>> from sklearn.utils import sparsefuncs
>>> from scipy import sparse
>>> import numpy as np
>>> indptr = np.array([0, 3, 4, 4, 4])
>>> indices = np.array([0, 1, 2, 2])
>>> data = np.array([8, 1, 2, 5])
>>> scale = np.array([2, 3, 2])
>>> csr = sparse.csr_array((data, indices, indptr))
>>> csr.todense()
array([[8, 1, 2],
       [0, 0, 5],
       [0, 0, 0],
       [0, 0, 0]])
>>> sparsefuncs.incr_mean_variance_axis(
...     csr, axis=0, last_mean=np.zeros(3), last_var=np.zeros(3), last_n=2
... )
(array([1.33, 0.167, 1.17]), array([8.88, 0.139, 3.47]),
array([6., 6., 6.]))