skbio.stats.composition.multiplicative_replacement

skbio.stats.composition.multiplicative_replacement(mat, delta=None)[源代码]

将所有零替换为小的非零值

状态:从0.4.0开始实验。

它使用乘法替换策略 [1] ,将零替换为小正数 \(\delta\) 并确保成分的总和仍为1。

参数:
  • mat (array_like) -- 比例矩阵,其中行=成分,列=成分

  • delta (float, optional) -- 用于替换零的一个小数字如果未指定增量,则缺省增量为 \(\delta = \frac{1}{N^2}\) 哪里 \(N\) 是组件的数量

返回:

一个比例矩阵,其中所有的值都不是零,并且每个组成(行)加起来等于1

返回类型:

numpy.ndarray, np.float64

抛出:

ValueError -- 如果由于较大的 delta

备注

如果选择较大的增量,此方法将导致负比例。

引用

示例

>>> import numpy as np
>>> from skbio.stats.composition import multiplicative_replacement
>>> X = np.array([[.2,.4,.4, 0],[0,.5,.5,0]])
>>> multiplicative_replacement(X)
array([[ 0.1875,  0.375 ,  0.375 ,  0.0625],
       [ 0.0625,  0.4375,  0.4375,  0.0625]])