随机确定k个初始点作为质心,然后将数据集中的每个点分配到一个簇中,完成之后,每个簇的质心更新为该簇所有点的平均值
随机初始点算法流程
dataSet:
[[ 1.658985 4.285136]
....
[-4.905566 -2.91107 ]]
k:2 质心数
n:2 列数
centroids: 存放随机初始点
[[0. 0.]
[0. 0.]]
循环n次
依次取每列的最小值
j=0 : minJ:[[-5.379713]]
得到本列最小值最大值之间的差值
10.217851
np.random.rand(k,1) 随机生成k个0-1之间的值
centroids[:,j] 利用随机数和差值得到第j列
[[3.07023768 0. ]
[1.3933703 0. ]]
循环完毕得到速记点centroids
向量欧氏距离计算
第一个点 vecA:[[1.658985 4.285136]]
第二个点 vecB:[[-3.453687 3.424321]]
欧氏距离计算公式np.sqrt(sum(np.power(vecA - vecB, 2)))
K-均值聚类算法执行流程
dataSet:
[[ 1.658985 4.285136]
....
[-4.905566 -2.91107 ]]
K-均值聚类算法
最新推荐文章于 2024-05-14 14:43:43 发布