什么是scipy.cluster.vq.kmeans2()方法?
**scipy.cluster.vq.kmeans2(data, k, iter=10, thresh=1e-05, minit='random', missing='warn', check_finite=True)** − kmeans2() 方法通过执行 k-means 算法将一组观测向量分类到 k 个集群中。为了检查收敛性,kmeans2() 方法不使用阈值。它具有其他参数来决定质心的初始化方法、处理空集群以及验证输入矩阵是否仅包含有限数字。
以下是其参数的详细解释:
参数
**data** − ndarray
它是 N 维中 M 个观测值的 'M' x 'N' 数组。
- **k** − int 或 ndarray
此参数表示要形成的集群数量和要生成的质心数量。在以下两种情况下,它被解释为要使用的初始集群:
当 minit 初始化字符串为 'matrix' 时。
或者如果给定一个 ndarray。
- **thresh** − float,可选
此参数表示阈值。如果自上次迭代以来失真变化小于或等于此阈值,则算法将默认终止。
**minit** − str,可选
此参数表示初始化方法。以下是为此提供的一些可用方法:
**random** − 它从具有均值和方差的高斯分布中生成 k 个质心。均值和方差是从数据中估计的。
**points** − 此方法从数据中随机选择 k 个观测值(即行)作为初始质心。
**++** − 此方法也称为仔细播种,它选择 k 个观测值(即行)到 kmeans++ 方法。
**matrix** − matrix 方法解释初始质心的 k 参数(作为 'k' x 'M' 数组)。
**missing** − str,可选
此参数表示处理空集群的方法。以下是可用方法:
**warn** − 此方法(顾名思义)会发出警告并继续。
**raise** − 此方法将引发错误 (ClusterError) 并终止算法。
**check_finite** − bool,可选
此参数用于检查输入矩阵是否仅包含有限数字。禁用此参数可能会提高性能,但也可能导致一些问题,例如在观测值确实包含无穷大时发生崩溃或不终止。此参数的默认值为 **True**。
返回值
**centroid** − ndarray
它返回 k x N 个质心数组。
**label** − ndarray
这是质心的索引。