k

您所在的位置:网站首页 a算法例题 k

k

2024-02-17 00:56| 来源: 网络整理| 查看: 265

简单介绍:k-means 算法是一个聚类的算法 。属于无监督学习算法,也是就样本没有label(标签),然后根据某种规则进行“分割”, 把相同的或者相近的放在一起。

算法缺点:不能帮助我们自动分类,需要指定。在很多实际应用当中,很难知道数据是什么分布的,应该分成几类比较好。这也是k-means自身的一个缺陷。

在这里K就是我们想要分割的的聚类的个数。

算法步骤:

先定义总共有多少个类/簇(cluster)将每个簇心(cluster centers)随机定在一个点上将每个数据点关联到最近簇中心所属的簇上对于每一个簇找到其所有关联点的中心点(取每一个点坐标的平均值)将上述点变为新的簇心不停重复,直到每个簇所拥有的点不变

例题:

假设有如下8个点:(3,1),(3,2),(4,1),(4,2),(1,3),(1,4),(2,3),(2,4)。使用K-means算法对其进行聚类。设初始聚类中心分别为(0,4)和(3,3)。请写出详细的计算过程。过程如下:1 数据 数据集 XYA131A232A341A442A513A614A723A824

2初始聚类中心分别为D1(0,4)和D2(3,3),计算各点到两中心的距离。

距离表1 D1(0,4)D2(3,3)A1(3,1)4.2422    √A2(3,2)3.6051    √A3(4,1)52.236    √A4(4,2)4.4721.414    √A5(1,3)1.414    √2A6(1,4)1    √2.236A7(2,3)2.2361    √A8(2,4)21.414    √

3根据上表分成两簇,{A1,A2,A3,A4,A7,A8},{A5,A6}。重新计算新的聚类中心D3,D4。并计算新的距离表。

D3=(3+3+4+4+2+2)/6,(1+2+1+2+3+4)/6 = (3,2.167)

D4=(1+1)/2,(3+4)/2 = (1,3.5)

距离表2 D3(3, 2.167)D4(1,3.5)A1(3,1)1.167    √3.201A2(3,2)0.167    √2,5A3(4,1)1.536   √3.905A4(4,2)1.013   √3.354A5(1,3)2.1660.5   √A6(1,4)2.7120.5   √A7(2,3)1.3011.118   √A8(2,4)2.0881.118   √

4根据上表分成两簇,{A1,A2,A3,A4},{A5,A6,A7,A8}。重新计算新的聚类中心D5,D6。并计算新的距离表。

D5=(3+3+4+4)/4,(1+2+1+2)/4 = (3.5,1.5)

D6=(1+1+2+2)/4,(3+4+3+4)/4 = (1.5,3.5)

距离表3 D5(3.5,1.5)D6(1.5,3.5)A1(3,1)0.707    √2.915A2(3,2)0.707    √2.121A3(4,1)0.707    √3.535A4(4,2)0.707    √2.915A5(1,3)2.9150.707    √A6(1,4)3.5350.707    √A7(2,3)2.1210.707    √A8(2,4)2.9150.707    √

5根据上表分成两簇,{A1,A2,A3,A4},{A5,A6,A7,A8},和步骤四分簇一致,停止计算。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3