在实现k-means算法之前,scipy.cluster.vq.vq(obs,code_book,check_finite=True)用于为码本中的每个观察分配代码。它首先将MbyNobs数组中的每个观察向量与码本中的质心进行比较。比较后,它将代码分配给最近的质心。它需要obs数组中的单位方差特征,我们可以通过将它们传递给scipy.cluster.vq.whiten(obs,check_finite=True)函数来实现。
下面给出了函数scipy.cluster.vq.vq(obs,code_book,check_finite=True)的参数-
obs−ndarray
它是一个由N组成的M数组,其中每一行是一个观察值,列是在每次观察过程中看到的特征。示例如下-
obs = [[ 1., 1., 1.], [ 2., 2., 2.], [ 3., 3., 3.], [ 4., 4., 4.]]code_book-ndarray
它也是一个MbyN数组,通常使用k-means算法生成,其中每一行保存不同的代码,列是该代码的特征。
示例如下-
code_book = [ [ 1., 2., 3., 4.], [ 1., 2., 3., 4.], [ 1., 2., 3., 4.]]check_finite-布尔值,可选
此参数用于检查输入矩阵是否仅包含有限数字。禁用此参数可能会给您带来性能提升,但如果观察确实包含无穷大,它也可能导致一些问题,例如崩溃或非终止。此参数的默认值为True。
代码-ndarray
它返回一个“M”数组,其中包含每个观察的代码簿索引。
dist-ndarray
它还返回每个观察值与其最近代码之间的距离,也称为失真。