incr_mean_variance_axis#
- sklearn.utils.sparsefuncs.incr_mean_variance_axis(X, *, axis, last_mean, last_var, last_n, weights=None)[source]#
计算 CSR 或 CSC 矩阵沿轴的增量均值和方差。
last_mean、last_var 是此函数在上一步计算的统计量。两者都必须初始化为适当大小的零数组,即 X 中的特征数量。last_n 是截至目前遇到的样本数量。
- 参数:
- X形状为 (n_samples, n_features) 的 CSR 或 CSC 稀疏矩阵
输入数据。
- axis{0, 1}
应沿其计算该值的轴。
- last_mean形状为 (n_features,) 或 (n_samples,),dtype=floating 的 ndarray
要用新数据 X 更新的均值数组。如果 axis=0,则形状应为 (n_features,);如果 axis=1,则形状应为 (n_samples,)。
- last_var形状为 (n_features,) 或 (n_samples,),dtype=floating 的 ndarray
要用新数据 X 更新的方差数组。如果 axis=0,则形状应为 (n_features,);如果 axis=1,则形状应为 (n_samples,)。
- last_n形状为 (n_features,) 或 (n_samples,),dtype=floating 的浮点数或 ndarray
截至目前已见权重的总和,不包括当前权重。如果不是浮点数,则在 axis=0 时其形状应为 (n_features,);在 axis=1 时其形状应为 (n_samples,)。如果是浮点数,则表示所有样本(或特征)具有相同的权重。
- weights形状为 (n_samples,) 或 (n_features,) 的 ndarray,默认值为 None
如果 axis 设置为 0,则形状为 (n_samples,);如果 axis 设置为 1,则形状为 (n_features,)。如果设置为 None,则样本权重相等。
0.24 版本新增。
- 返回:
- means形状为 (n_features,) 或 (n_samples,),dtype=floating 的 ndarray
如果 axis = 0,则为更新后的特征均值;如果 axis = 1,则为更新后的样本均值。
- variances形状为 (n_features,) 或 (n_samples,),dtype=floating 的 ndarray
如果 axis = 0,则为更新后的特征方差;如果 axis = 1,则为更新后的样本方差。
- n形状为 (n_features,) 或 (n_samples,),dtype=integral 的 ndarray
如果 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_matrix((data, indices, indptr)) >>> csr.todense() matrix([[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.]))