聚类
假设一个样本集C={x1,x2,...,xl},聚类算法把这个样本集划分成m个不相交的子集C1,...,Cm即簇。这些子集的并集是整个样本集:
且每个样本只能属于这些子集中的一个,即任意两个子集之间没有交集:
同一子集内的样本要具备相似性,相似性没有固定的定义,根据不同场景由人工设定。
相似度
计算向量之间的相似度的常用方法:
- 欧式距离:空间中两点的直线距离。
2. 曼哈顿距离:又称“城市街区距离”
3. 余弦距离
余弦相似度用向量空间中的两个向量夹角的余弦值作为衡量两个样本差异的大小。
余弦值越接近 1 ,说明两个向量夹角越接近 0 度,表明两个向量越相似。
注意:对于特征向量中含有不同量级的数据应将数据归一化
K-means聚类算法及其优化
k-means
原理:对于给定的样本集,按照样本之间的距离大小,将样本集划分为K个簇。让簇内的点尽量紧密的连在一起,而让簇间的距离尽量的大。
假设簇划分为C1,…,Ck,则优化目标是最小化平方误差E(使n组集群间的方差相等,数学描述为最小化惯性或集群内的平方和。):
k-means++
k-means的初始质心选择的随机性是影响算法迭代效率的原因,针对这个问题,提出了改进方案k-maens++
means++按照如下的思想选取K个聚类中心:
假设已经选取了n个初始聚类中心(0<n<K),则在选取第n+1个聚类中心时;
距离当前n个聚类中心越远的点会有更高的概率被选为第n+1个聚类中心
在选取第一个聚类中心(n=1)时同样通过随机的方法。
聚类中心当然是互相离得越远越
过程:
参考资料
K-means,K-means++方法详解-机器学习分类问题常见算法_易烊千蝈的博客-CSDN博客_kmeans++
聚类算法之K-Means算法原理及实现_Doris_mR的博客-CSDN博客_kmeans算法原理及其流程图
机器学习(2): K-means (k均值) 聚类算法 小结_TechArtisan6的博客-CSDN博客_k均值聚类算法