1.11 - 聚类
1. 聚类是啥
聚类是一种 无监督学习 算法,聚类会将数据集中的数据分成不同的标签簇,使得簇内的数据相似性尽可能大,簇间的相似性尽可能小。
该 无监督学习 方法,将 没有标签的数据 变成了标签的数据,每个数据的标签就是其所属簇的簇标签。
2. 聚类算法
2.1 K-means
算法思想:事先假设数据最终会聚成 K 个簇,初始随机选取K个点作为聚簇中心,聚簇完成后选取每个簇的质心作为新的聚簇点重新聚簇,直到损失函数不再降低。K-means最终的要求达到 簇内紧密,簇间分散 的状态,最小化(Loss_function): K个簇的簇内方差累加和。
算法缺陷:
1)K值得选取,K值是事先瞎猜得,并不准 ----- 肘方法,聚类损失loss随K递减,当K增加而本次loss的下降幅度相交以往突然变小了,选择这个K为最佳聚簇数。
2)初始随机选取的K个聚类中心可能会影响最终的聚簇结果 ----- K-meas++ ,数据中距离越远的点,被选为下一个聚簇中心的 概率 越大。
3)计算质心计算量比较大 ----- Mini Batch K-means,对原始数据集整体随机抽样做K-meas,但只要抽样结果大体符合原始数据集的分布,最终结果也在接受范围内。
4)用求均值得方法得到簇得质心坐标,容易受异常点影响。 ----- 改用中值(中位数)
2.2 DBSCAN
基于距离的聚类,在面对特殊得样本分布如:笑脸特征的数据集 时,并不能很好的完成分类任务,所以,采用基于密度的方式进行聚类。
【 DBSCAN基于密度聚类的优势在于 可以自动确定最终的聚簇数量。】
思想实现:
每次选取未被标记类别的点,这个点以及所有密度相连的点都被标记为同一个聚簇类别,直到数据集中只剩下噪声点。
核心点:点的 ε 邻域内包含至少 Min-pts 个样本点
边界点:本身非核心点,但是在其它核心点的 ε 邻域内。
噪声点:既非核心点,也非边界点。
密度相连:核心点与其 ε 邻域中的点
密度可达:核心点与核心点之间,可以通过 ε 邻域互相到达。
密度相连:两个密度可达的核心点的 ε 邻域中的任一点(包含边界点)都是 密度相连。
需要调节的超参:
1) ε ,过小=》所有的数据点都变成噪音;过大=》所有的数据点都被聚成同一个簇。DBSCAN虽然不必显示的设置 聚簇个数,但是 ε 的大小会影响聚簇个数。
注:实现对数据特征进行归一化处理,更容易找到合适的超参 ε 。
3. 聚类效果评价指标
轮廓系数:
簇内平均距离a,最近簇间距离b,轮廓系数 s = (b - a)/ max{a, b} ,轮廓系数在 [-1,1] 范围内,轮廓系数越大,样本的聚簇效果越好。