1. K-means
1.1. Feature:
k-means均值聚类
是一种无监督学习。它将相似的对象归到同一个簇中。
簇识别(cluster identification)
给出聚类结果的含义。
聚类与分类的却别是分类的目标先已知。
k代表簇的个数,有用户指定,每个簇通过质心(centroid)
描述。质心是所有点的中心。
1.1.1. Advantage:
- 容易实现
1.1.2. Disadvantage:
- 可能收敛到局部最小值
- 大规模下数据集收敛较慢
1.2. Theory
1.2.1. 流程
创建k个起始质心(一般随机产生)
当任意一个点的簇分配结果发生改变
对数据集中的每个数据点 #把点分配给簇
对于每个质心
计算质心和数据点的距离
将改点分配给最近的质心代表的簇
对于每个簇,计算该簇的均值,更新这个簇的质心 #根据点重定质心的位置
1.2.2. 距离计算
距离计算可以使用任何距离度量的方法,计算方法会对算法的性能有影响。
1.2.3. 提高聚类性能
k-means 可能出现局部收敛,是指结果还可以,但是并不是最好的结果,全局最小值才是最好的结果。
这就需要一种能够度量聚类效果的指标,例如SSE(Sum of Squared Error, 误差平方和)。因为误差取了平方,所以更加重视距离较远的点。
对于局部收敛的问题:
- 一种是将SSE值较大的簇划分成两个簇,将该簇的点过滤出来,然后进行k=2的聚类。如果想要保持簇的总数不变,可以在最后将质心距离较进的两个类合并成一个簇或者合并两个使SSE增幅最小的质心。
1.2.4. 二分k-means
这个是为了解决局部最小值的问题。首先将所有点作为一个簇,然后将该簇一分为二,选择其中一个继续进行划分,最终的目的就是降低SSE。不断重复,直到得到k个聚类。
1.3. Others
聚类还有很多其他的算法:
- 学习向量量化(Learning Vector Quantization, LVQ)
- 高斯混合聚类(Mixture-of-Gausian) 采用概率模型表达聚类原型
- 密度聚类(density-based clustering)
- 层次聚类(hierarchical clustering)
聚类性能度量外部指标:
-
Jaccard Coefficient , JC
-
FM (Fowlkes and Mallows Index,FMI)
-
Rand指数(Rand Index, RI)
上述均在[0,1],越大越好。 -
DB指数(Davies-Bouldin Index , DBI) 越小越好
-
Dunn 指数(Dunn Index , DI) 越大越好
2. KNN
2.1. Feature
采用测量不同特征值之间的距离方法来进行分类。
2.1.1. Advantage
- 精度高
- 对异常值不敏感
- 无数据输入假定
2.1.2. Disadvantage
-
计算复杂度高、空间复杂度高
-
无法给出数据的内在含义
2.2. Scope of application
数值型和标称型
2.3. Theory
存在带标签的训练样本集,输入没有标签的新数据后,新数据
的每个特征与样本集
中数据对应的特征进行比较,然后提取样本集中特征最相似的分类的标签。一般只选择前k个最相似的数据,所以叫做k-邻近算法。
example:
确定一个电影是动作片还是爱情片,已知数据集特征:打斗场面次数、接吻镜头次数。给出新的未标签的电影,计算该电影与数据集中每个电影的距离,然后排序取前k个,通过分析k个电影的种类来确定新的未标签的电影类型。