Python实现聚类?K-means一出手,数据自己排队站好
所属机器学习算法范畴的聚类算法, 是那种不带类别标签y即无监督性质的算法, 得依据数据特征把相像的数据归为一组。k - means是聚类算法里最为简单且常见的某一个, 借由计算距离, 把相似程度高的数据聚合到一处。
以随机方式挑选出k个点用作聚类中心, 然后去计算别的点跟中心点之间的距离, 从中挑选出距离最近的中心来进行归类, 当归类完成之后计算每类的新中心点, 再次计算每个点跟中心点的聚类情况并挑选出距离最近的来归类, 不断重复这个过程, 一直到中心点不再产生变化的情况为止。

应予以留意的是, 运用k - means算法的情形之下, 得事先确定k的值, 也就是预期划分成几类, k值通常设定为3至5。下面所呈现的这张图乃是从网络截屏获取的, 能以直观的方式看到籍由4次迭代, 把点汇聚成3个簇(()的进程。

于R里达成k - means聚类, 能够径直运用()函数。于紧随的示例之中, 我们借由iris数据集予以演示。


代表聚类后所获结果的是颜色, 代表真实划分的是形状, “*”是聚类中心点。如下这般能够查看每个样本点的聚类结果:
在当中去实现k - means聚类, 能够利用当中含有括号的那个函数, 同样地运用iris数据集展开演示。


颜色代表聚类后得到的结果。
优点:
(1)算法原理简单,聚类速度快。
(2)容易实现。
缺点:
(1)k值需要事先给定,有时候不知道分成几类最合适。
(2)初始中心点的挑选会对聚类成效产生影响, 这同样是每回开展聚类之后能够得出不同结果的缘由之所在。
(3)由于借助距离来判定点的相似度从而开展聚类, 故而k-means算法存在一定的使用限制。当潜在簇呈现为大小相仿的近似圆形形状, 并且各个簇之间聚类较为显著时, k-means聚类结果颇具理想性。
更多推荐



所有评论(0)