无监督学习---聚类

  根据类别未知的训练数据解决模式识别中的各种问题,称之为无监督学习,无监督学习不需要对数据进行打标签,常用的无监督学习方法有降维和聚类。聚类中最经典且易用的聚类模型当属Kmeans聚类。

一、Kmeans聚类

  kmeans算法原理:最小化所有样本到所属类别中心的(欧氏)距离平方和(误差平方和SSE),采用迭代的方式实现收敛。kmeans对初始条件比较敏感,可多次给定不同的初始条件计算,最后选择最小的那一组作为最终结果。kmeans用质心定义原型,其中质心是一组点的均值。
聚类和分类的区别:
聚类(Clustering):是指把相似的数据划分到一起,具体划分的时候并不关心这一类的标签,目标就是把相似的数据聚合到一起。
分类(Classification):是把不同的数据划分开,其过程是通过训练数据集获得一个分类器,再通过分类器去预测未知数据。

1.1 kmeans算法步骤:

1.选择k个点作为初始质心
2.将每个点指派到最近的质心,形成k个簇
3.重新计算每个簇的质心
4.重复第2和第3步,直到质心不发生变化
无监督学习---聚类_第1张图片

1.2 kmeans算法损失函数:

无监督学习---聚类_第2张图片

1.3 k值的选取:

1.手肘法
核心指标是:SSE(误差平方和)
核心思想:随着聚类数k的增大,样本划分会更加精细,每个簇的聚合程度会逐渐提高,那么SSE自然会逐渐减小,并且,当k小于真实聚类时,由于k的增大会大幅增加每个簇的聚合程度,故SSE的下降幅度会很大,而当k达到真实聚类时,再增加k所得到的聚合程度回报会迅速变小,所以SSE的下降会骤减,随着k值的增大而趋于平缓.
无监督学习---聚类_第3张图片
2.轮廓系数
结合类内聚合度和类间分离度两种指标来计算得到
在这里插入图片描述
a:x与同簇其他样本的平均距离
b:x与最近簇中所有样本的平均距离
s 越接近1,聚类合理
s接近-1,更适合聚其他类
s接近0,i在两个簇边界上

1.4 kmeans优缺点:

  kmeans优点:
1.原理简单,实现也容易,收敛速度快
2.聚类效果较优
3.算法的可解释性较强
4.需要调整的参数仅仅为簇数k
  kmeans缺点:
1.k值的选取不好把握
2.不能处理非球型簇、不同尺寸和不同密度的簇
3.对噪声和异常值比较敏感
4.采用迭代方法,得到的结果只是局部最优

1.5 kmeans与knn区别:

  kmeans 是无监督学习的聚类算法,没有样本输出
  knn是监督学习的分类算法,有对应类别输出,knn基本不需要训练,对测试集里的点,只需要找到在训练集中最近的k个点,用这最近的k个点的类别来决定测试点的类别
  kmeans则有明显的训练过程,找到k个类别的最佳质点,从而决定样本的簇类别

1.6 kmeans算法案例:

二、DBSCAN密度聚类

  DBSCAN为密度聚类方法,为了克服基于距离算法只能发现凸的聚类的缺点,可以发现任意形状聚类,且对噪声数据不敏感。如果样本点密度大于某个阈值,可以把样本添加到最近的簇中。
典型案例:有营销活动送一些礼品套件,其中恶意用户来利用这个活动频繁刷取这些套件,我们需要智能识别出这些用户,将其和正常用户区别开来。观察这些恶意刷取套件的用户id存在高密度聚合,在这个情况下DBSCAN可以较好的利用密度聚类把恶意用户聚集起来。

2.1 DBSCAN算法步骤:

无监督学习---聚类_第4张图片

2.2 DBSCAN算法优缺点:

  DBSCAN算法优点:
1.可以对任意形状的稠密数据集进行聚类,相对的,K-Means之类的聚类算法一般只适用于凸数据集。
2.可以在聚类的同时发现异常点,对数据集中的异常点不敏感
3.评估方法聚类结果没有偏倚,相对的,K-Means之类的聚类算法初始值对聚类结果有很大影响。
  DBSCAN算法缺点:
1.如果样本集的密度不均匀、聚类间距差相差很大时,聚类质量较差,这时用DBSCAN聚类一般不适合。
2.调参相对于传统的K-Means之类的聚类算法稍复杂,主要需要对距离阈值ϵ,邻域样本数阈值MinPts联合调参,不同的参数组合对最后的聚类效果有较大影响。
3.如果样本集较大时,聚类收敛时间较长

三、层次聚类

  先计算样本之间的距离。每次将距离最近的点合并到同一个类。然后,再计算类与类之间的距离,将距离最近的类合并为一个大类。不停的合并,直到合成了一个类。其中类与类的距离的计算方法有:最短距离法,最长距离法,中间距离法,类平均法等。比如最短距离法,将类与类的距离定义为类与类之间样本的最短距离。

3.1 层次聚类步骤

1、首先从 N 个聚类开始,每个数据点一个聚类。
2、将彼此靠得最近的两个聚类融合为一个。现在你有 N-1 个聚类。
3、重新计算这些聚类之间的距离。
4、重复第 2 和 3 步,直到你得到包含 N 个数据点的一个聚类。
5、选择一个聚类数量,然后在这个树状图中划一条水平线。
无监督学习---聚类_第5张图片

3.2 层次聚类算法优缺点:

  层次聚类算法优点:
1、距离和规则的相似度容易定义,限制少
2、不需要预先制定聚类数
3、可以发现类的层次关系
4、可以聚类成其它形状
  层次聚类算法缺点:
1、计算复杂度太高,不可逆性
2、奇异值也能产生很大影响
3、算法很可能聚类成链状

你可能感兴趣的:(算法模型,学习,聚类,机器学习)