Python实现的Kmeans++算法实例

650次阅读  |  发布于5年以前

1、从Kmeans说起

Kmeans是一个非常基础的聚类算法,使用了迭代的思想,关于其原理这里不说了。下面说一下如何在matlab中使用kmeans算法。

创建7个二维的数据点:

复制代码 代码如下:

x=[randn(3,2).4;randn(4,2).5+ones(4,1)*[4 4]];

使用kmeans函数:

复制代码 代码如下:

class = kmeans(x, 2);

x是数据点,x的每一行代表一个数据;2指定要有2个中心点,也就是聚类结果要有2个簇。 class将是一个具有70个元素的列向量,这些元素依次对应70个数据点,元素值代表着其对应的数据点所处的分类号。某次运行后,class的值是:

复制代码 代码如下:

2
2
2
1
1
1
1

这说明x的前三个数据点属于簇2,而后四个数据点属于簇1。 kmeans函数也可以像下面这样使用:

复制代码 代码如下:

[class, C, sumd, D] = kmeans(x, 2)

class =
2
2
2
1
1
1
1

C =
4.0629 4.0845
-0.1341 0.1201

sumd =
1.2017
0.2939

D =
34.3727 0.0184
29.5644 0.1858
36.3511 0.0898
0.1247 37.4801
0.7537 24.0659
0.1979 36.7666
0.1256 36.2149

Copyright© 2013-2020

All Rights Reserved 京ICP备2023019179号-8