k-平均算法(k-means算法)(k均值算法)例题
题目给出
-
簇的数目k=2
-
下表数据表(n=8)行数据
序号 | 属性1 | 属性2 |
---|---|---|
1 | 1 | 1 |
2 | 2 | 1 |
3 | 1 | 2 |
4 | 2 | 2 |
5 | 4 | 3 |
6 | 5 | 3 |
7 | 4 | 4 |
8 | 5 | 4 |
解:
-
第一次迭代:由于最终结果要为k=2个簇,所以第一次迭代先随机找两行数据,如第1行和第3行当为初始点,
①要将全部数据分为两个簇,运用欧氏距离,让2,4,5,6,7,8依次和1和3分别进行距离计算,然后比较,离1近则和1合并,离3近则和3合并,这次迭代得到两个簇{1,2}和{3,4,5,6,7,8}
②对产生的簇分别计算平均值,得到平均值点
对于{1,2},属性1:(1+2)/2=1.5,属性2:(1+1)/2=1,则平均值点为(1.5,1)
对于{3,4,5,6,7,8},属性1:(1+2+4+5+4+5)/6=3.5,属性2:(2+2+3+3+4+4)/6=3,则平均值点为(3.5,3)
-
第二次迭代:再将表中全部数据按离平均值点(1.5,1)和(3.5,3)最近的原则,重新分配。得到两个新的簇:{1,2,3,4}和{5,6,7,8};
再重新计算簇平均值点,得到新的平均值为(1.5,1.5)和(4.5,3.5)
-
第三次迭代:再将表中全部数据按离新的平均值点(1.5,1.5)和(4.5,4.5)最近的原则,重新分配。得到两个新的簇:{1,2,3,4}和{5,6,7,8};这里发现与第二次迭代得到的两个簇相比,没有出现新的簇,则算法结束。
最终的到两个簇{1,2,3,4}和{5,6,7,8}。