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 是此函式在上一步計算的統計資料。兩者都必須初始化為大小適當的 0 陣列,即 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_nfloat 或形狀為 (n_features,) 或 (n_samples,),dtype=floating 的 ndarray

到目前為止看到的權重總和,不包括目前的權重。如果不是 float,則如果 axis=0,則形狀應為 (n_features,),如果 axis=1,則形狀應為 (n_samples,)。如果為 float,則表示所有樣本(或特徵)都具有相同的權重。

weights形狀為 (n_samples,) 或 (n_features,),預設值為 None 的 ndarray

如果 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.3..., 0.1..., 1.1...]), array([8.8..., 0.1..., 3.4...]),
array([6., 6., 6.]))