k 中的迭代意味着聚类
Iteration in k means clustering
我正在 tensorflow 中实现 k 均值聚类,并成功地使我们从样本点随机 select 质心的函数。然后这些质心将根据与样本点的距离进行更新。
是否始终保证我迭代得越多,我得到的聚类预测就越好,或者在某个点之后预测开始得到 wrong/anomalous?
通常,K 均值求解算法的行为符合预期,因为它总是收敛到 local 最小值。 (我假设您正在谈论 Lloyd/Florgy 方法)这是一种用于查找局部最小值的统计方法。它可能会在一个维度优化但其他维度未优化的鞍点处停止。
为了简化证明的严格性,它总是会收敛,尽管由于您的函数中有许多鞍点而收敛得很慢。
您的预测没有任何意义 "wrong"。它会更接近您想要的最小值,但最小值可能不是 global。这可能是您担心的来源,因为 K-means 的随机初始化并不能保证会发生这种情况。
缓解这种情况的一种方法是实际上 运行 对数据的子组进行 K 均值计算,然后取这些最终点并对它们进行平均,以便为整个数据集的最终聚类找到一个好的初始值设定项。
希望这对您有所帮助。
我正在 tensorflow 中实现 k 均值聚类,并成功地使我们从样本点随机 select 质心的函数。然后这些质心将根据与样本点的距离进行更新。
是否始终保证我迭代得越多,我得到的聚类预测就越好,或者在某个点之后预测开始得到 wrong/anomalous?
通常,K 均值求解算法的行为符合预期,因为它总是收敛到 local 最小值。 (我假设您正在谈论 Lloyd/Florgy 方法)这是一种用于查找局部最小值的统计方法。它可能会在一个维度优化但其他维度未优化的鞍点处停止。
为了简化证明的严格性,它总是会收敛,尽管由于您的函数中有许多鞍点而收敛得很慢。
您的预测没有任何意义 "wrong"。它会更接近您想要的最小值,但最小值可能不是 global。这可能是您担心的来源,因为 K-means 的随机初始化并不能保证会发生这种情况。
缓解这种情况的一种方法是实际上 运行 对数据的子组进行 K 均值计算,然后取这些最终点并对它们进行平均,以便为整个数据集的最终聚类找到一个好的初始值设定项。
希望这对您有所帮助。