- 1 算法过程
- 2 实现
- 2.1 Python代码
- 2.2 实验结果
(1)随机选取K个簇中心点
(2)通过计算每个样本与每个簇中心点的距离,选择距离最小的簇心,将样本归类到该簇心的簇中
m
i
n
∑
i
=
1
K
∑
x
∈
c
i
d
i
s
t
(
c
i
,
x
)
2
minsum_{i=1}^K sum_{xin c_i}dist(c_i,x)^2
mini=1∑Kx∈ci∑dist(ci,x)2
这里距离可以使用欧几里得距离(Euclidean Distance)、余弦距离(Cosine Distance)、切比雪夫距离(Chebyshew Distance)或曼哈顿距离(Manhattan Distance),计算距离之前需要先对特征值进行标准化。
3、在已经初次分配的簇中,计算该簇中所有向量的均值,作为该的簇中心点
4、重复步骤2和3来进行一定数量的迭代,直到簇中心点在迭代之间变化不大
评价指标
2 实现 2.1 Python代码轮廓系数(Silhouette Coefficient),是聚类效果好坏的一种评价方式。 轮廓系数的值是介于 [-1,1] ,越趋近于1代表内聚度和分离度都相对较优。
# kmeans算法 # 1. 初始化k个族中心 # 2. 计算每个样本与k个族中心距离,标记样本为距离最短的族 # 3. 重新确定K族中心(族中平均位置) # 4. 循环2-3,直到前后两次所有族中心距离变化2.2 实验结果 (1)曼哈顿距离
轮廓系数:0.7333423486262539
(2)切比雪夫距离
轮廓系数0.7333423486262539
(3)欧式距离
轮廓系数:0.7333423486262539



