聚类算法汇总
标签(空格分隔): 机器学习
作为无监督领域(unsupervised)一个太过famous的算法了,聚类(clustering)就是对大量未知标注的数据集,按照数据的内在相似性将数据集划分为多个类别,使类别内的数据相似度较大而类别间的数据相似度较小. 然而,里面仍然有很多需要注意的地方,对于聚类本身,目前也有很多改进版本了,所以还是需要总结一下的。
相似度的度量
各种相似度的度量方式及其相关性见我的这篇博客。
K-means算法
这个算法大家都熟,跟KNN是兄弟,简单实用易操作,它也是其他一些聚类算法的鼻祖。
具体的步骤为:
对于输入样本 D=x1,x2,x3,...,xm :
- 选择初始的K个class center μ1,μ2,...,μK ;
- 对于每个样本 xi ,将其标记为距离类别中心最近的类别,即: yi=argmin1≤j≤K||xi−μj|| ;
- 将每个类别中心更新为隶属该类别的所有样本的均值:
μj=1|cj|∑i∈cjxi ;
4.重复上述两步,直至算法收敛。
收敛条件为:迭代次数/簇中心变化率/最小平方误差MSE(Minimum Squared Error)
E=∑ki=1∑x∈Ci||x−μi||