本帖最后由 伊江痕 于 2024-3-4 10:22 编辑
算法流程如下:
输入:
X: 数据集
K: 簇的数量
max_iterations: 最大迭代次数
tolerance: 簇中心变化的容忍度
过程:
1. 初始化:
从X中随机选择K个数据点作为初始簇中心centroids
2. 迭代直到达到最大迭代次数或簇中心变化小于tolerance:
a. 对于X中的每个点x_i,找到距离最近的簇中心c_j,并将x_i分配给相应的簇S_j
b. 对于每个簇S_j,更新簇中心c_j为S_j中所有点的平均值
c. 计算簇中心的变化量,如果所有簇中心的变化量都小于tolerance,则结束迭代
输出:
簇分配结果
簇中心
代码如下:
|