您当前的位置: 首页 >  Python

Better Bench

暂无认证

  • 4浏览

    0关注

    681博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

【机器学习】Python详细实现基于欧式Euclidean、切比雪夫Chebyshew、曼哈顿Manhattan距离的Kmeans聚类

Better Bench 发布时间:2021-12-15 21:32:25 ,浏览量:4

目录
  • 1 算法过程
  • 2 实现
    • 2.1 Python代码
    • 2.2 实验结果

1 算法过程

(1)随机选取K个簇中心点

(2)通过计算每个样本与每个簇中心点的距离,选择距离最小的簇心,将样本归类到该簇心的簇中 m i n ∑ i = 1 K ∑ x ∈ c i d i s t ( c i , x ) 2 min\sum_{i=1}^K \sum_{x\in c_i}dist(c_i,x)^2 mini=1∑K​x∈ci​∑​dist(ci​,x)2

这里距离可以使用欧几里得距离(Euclidean Distance)、余弦距离(Cosine Distance)、切比雪夫距离(Chebyshew Distance)或曼哈顿距离(Manhattan Distance),计算距离之前需要先对特征值进行标准化。

3、在已经初次分配的簇中,计算该簇中所有向量的均值,作为该的簇中心点

4、重复步骤2和3来进行一定数量的迭代,直到簇中心点在迭代之间变化不大

评价指标

轮廓系数(Silhouette Coefficient),是聚类效果好坏的一种评价方式。 轮廓系数的值是介于 [-1,1] ,越趋近于1代表内聚度和分离度都相对较优。

2 实现 2.1 Python代码
# kmeans算法
#  1. 初始化k个族中心
#  2. 计算每个样本与k个族中心距离,标记样本为距离最短的族
#  3. 重新确定K族中心(族中平均位置)
#  4. 循环2-3,直到前后两次所有族中心距离变化            
关注
打赏
1665674133
查看更多评论
0.0509s