scipy.cluster.vq 模块的哪个函数用于对每个特征维度上的观察进行归一化?

在实现 k-means 算法之前,重新调整观察集的每个特征维度总是有益的。函数scipy.cluster.vq.whiten(obs, check_finite = True)用于此目的。为了给它单位方差,它将观察的每个特征维度除以其标准偏差(SD)。

参数

下面给出了函数 scipy.cluster.vq.whiten(obs, check_finite = True) 的参数 -

  • obs - ndarray

它是一个要重新缩放的数组,其中每一行是一个观察,列是每次观察期间看到的特征。示例如下 -

obs = [[ 1., 1., 1.],
   [ 2., 2., 2.],
   [ 3., 3., 3.],
   [ 4., 4., 4.]]

  • check_finite - 布尔值,可选

此参数用于检查输入矩阵是否仅包含有限数字。禁用此参数可能会给您带来性能提升,但如果观察确实包含无穷大,它也可能导致一些问题,例如崩溃或非终止。此参数的默认值为True

退货

它返回一个数组,其中包含由每列的 SD 缩放的 obs 中的值。

示例

import numpy as np
from scipy.cluster.vq import whiten
observations = np.array([[2.9, 1.3, 1.9],
   [1.7, 3.2, 1.1],
   [1.0, 0.2, 1.7,]])
whiten(observations)
输出结果
array([[3.69627581, 1.04908478, 5.58930985],
   [2.16678237, 2.58236253, 3.23591623],
   [1.27457787, 0.16139766, 5.00096145]])