机器学习算法——聚类
demi 在 周五, 08/24/2018 - 09:29 提交
聚类属于无监督学习,事先不知道数据会分为几类,通过聚类分析将数据聚合成几个群体。聚类是不需要对数据进行训练和学习的。主要的聚类算法有K-Means和DBSCAN。
K-Means算法的基本原理比较简单:
1.指定K值(数据要分成的簇的数目),并指定初始的k个质心;
2.遍历每个数据点,计算其到各个质心的距离,将其归类到距离最近的质心点;
3分类完毕后,求各个簇的质心,得到新的质心点;
4.重复2和3中的操作,计算新的质心与旧的质心之间距离,如果小于设定的误差值,则停止计算,否则继续进行迭代。
K-Means算法的效果由SSE(sum of square error误差平方和)来衡量,聚类的效果受K值和初始质心影响很大,有可能会在局部形成聚类点。有一种改进方法是二分K-Means算法,每次选择SSE值最大的簇进行二分类,直到分成K个聚类。
K-Means算法还有一个很明显的缺点是对于某些分布的点是不能进行分类的,比如如图中的点: