机器学习——聚类分析

一.理解聚类和分类

1.聚类:

(1)聚类的目的是要找出数据之间的相似性和相异性,在聚类之前并不清楚到底分多少类,也不清楚每个类里面包含哪些样本,甚至用什么方式方法来分也不确定,侧重总结归纳。

(2)聚类是不需要利用已知数据进行训练的,直接聚类出结果。

(3)聚类是不需要利用已有的训练模型来对未知数据做预测,不需要数据类别标签,属于无监督学习。

2.分类:

(1)分类是在“分”之前就清楚知道总共有多少类,现在要确定新的样本到底属于哪个类,侧重预测。

(2)分类是需要利用已有的数据训练出一个可靠的模型,然后利用这个模型去预测新的样本并给出判定,是一个训练加预测的过程;

(3)分类是需要有一个训练过程得到一个训练模型,这个训练是有数据类别标签参与的,属于有监督学习。

二.Kmeans算法

2.1 常用的距离公式

1.欧几里得距离

2.曼哈顿距离

3.闵可夫斯基距离

4.切比雪夫距离

2.2 Kmeans算法流程

K-means算法是一种常见的聚类算法,它将数据集划分为K个不同的簇。以下是K-means算法的基本流程:

1. 初始化:选择K个初始聚类中心点。可以是随机选择,也可以是根据某种启发式方法选择。
2. 分配数据点:对于每个数据点,计算其与每个聚类中心点的距离,并将其分配给距离最近的聚类中心点。
3. 更新聚类中心点:对于每个聚类,计算其所有分配给它的数据点的平均值,将该平均值作为新的聚类中心点。
4. 重复步骤2和步骤3,直到聚类中心点不再发生变化或达到预定的迭代次数。

K-means算法的核心是通过最小化数据点与聚类中心点之间的距离来确定最佳的聚类中心点。算法迭代的过程中,会不断更新聚类中心点,直到达到收敛条件。

2.3 K值确定

1.肘部法则

Elbow method就是“肘”方法,对于n个点的数据集,迭代计算k from 1 to n,每次聚类完成后计算每个点到其所属的簇中心的距离的平方和,可以想象到这个平方和是会逐渐变小的,直到k==n时平方和为0,因为每个点都是它所在的簇中心本身。但是在这个平方和变化过程中,会出现一个拐点也即“肘”点,下图可以看到下降率突然变缓时即认为是最佳的k值。


肘方法的核心指标是SSE(sum of the squared errors,误差平方和)。

肘方法的核心思想:随着聚类数k的增大,样本划分会更加精细,每个簇的聚合程度会逐渐提高,那么误差平方和SSE自然会逐渐变小。并且,当k小于真实聚类数时,由于k的增大会大幅增加每个簇的聚合程度,故SSE的下降幅度会很大,而当k到达真实聚类数时,再增加k所得到的聚合程度回报会迅速变小,所以SSE的下降幅度会骤减,然后随着k值的继续增大而趋于平缓,也就是说SSE和k的关系图是一个手肘的形状,而这个肘部对应的k值就是数据的真实聚类数。这也是该方法被称为肘方法的原因。

2.4 算法效果衡量标准

1.轮廓系数(最常用的方法)

轮廓系数法(Silhouette Coefficient)结合了聚类的凝聚度(Cohesion)和分离度
(Separation),用于评估聚类的效果。该值处于-1~1之间,值越大,表示聚类效果
越好。

2.5 Keans算法优缺点分析

K-means算法是一种简单且常用的聚类算法,具有以下优点和缺点:

优点:
1. 算法简单:K-means算法的原理简单,易于理解和实现。
2. 可扩展性好:K-means算法在处理大规模数据集时具有良好的可扩展性,算法的时间复杂度为O(n*k*d),其中n为数据点个数,k为聚类数,d为数据维度。
3. 效果较好:对于符合聚类假设的数据集,K-means算法能够得到较好的聚类结果。

缺点:
1. 对初始聚类中心点敏感:K-means算法对初始聚类中心点的选择非常敏感,不同的初始选择可能会导致不同的结果。为了得到更好的聚类结果,需要多次运行算法并选择最优结果。
2. 需要预先指定聚类数:K-means算法需要预先指定聚类数,但在实际应用中,聚类数往往是未知的。选择不合适的聚类数可能会导致聚类结果不准确。
3. 对异常值敏感:K-means算法对异常值敏感,异常值可能会对聚类结果产生较大的影响。
4. 仅适用于凸形簇:K-means算法假设聚类簇为凸形,对于非凸形簇的数据集,K-means算法可能无法得到理想的聚类结果。

综上所述,K-means算法是一种简单且常用的聚类算法,适用于处理大规模数据集。然而,它对初始聚类中心点的选择敏感,需要预先指定聚类数,并且对异常值和非凸形簇敏感。在实际应用中,需要根据具体情况选择合适的聚类算法,并结合其他技术和方法来提高聚类结果的准确性和稳定性。

三.DBSCAN算法

3.1 基本思想

DBSCAN是一种基于密度聚类算法,这类密度聚类算法一般假定类别可以通过样本分布的紧密程度决定。同一类别的样本,他们之间的紧密相连的,也就是说,在该类别任意样本周围不远处一定有同类别的样本存在。

DBSCAN聚类算法的基本思想是:

在给定的数据集中,根据每个数据点周围其他数据点的密度情况,将数据点分为核心点、边界点和噪声点。

  • 核心点是周围某个半径内有足够多其他数据点的数据点;
  • 边界点是不满足核心点要求,但在某个核心点的半径内的数据点;
  • 噪声点则是不满足任何条件的点。

3.2 算法流程

输入:数据集D,参数(eps,MinPts)
方法:

(1)计算出数据集中的核心点集;

(2)遍历所有核心点,对于该核心点和由该核心点密度可达的点划分为一个簇,贴上标签,对于已经贴上标签的核心点不再执行上述操作;最后数据集中几乎所有点均由标签,未有标签的点为噪声点。
输出:含有类别划分标签的数据集

假设样本集:D=(x1,x2,…,xm),则DBSCAN具体的密度描述定义如下:
1)ϵ-邻域:对于xj∈D,其ϵ-邻域包含样本集D中与xj的距离不大于ϵ的子样本集,即Nϵ(xj)={xi∈D|distance(xi,xj)≤ϵ}, 这个子样本集的个数记为|Nϵ(xj)|。
2) 核心对象:对于任一样本xj∈D,如果其ϵ-邻域对应的Nϵ(xj)至少包含MinPts个样本,即如果|Nϵ(xj)|≥MinPts,则xj是核心对象。
3)密度直达:如果xi位于xj的ϵ-邻域中,且xj是核心对象,则称xi由xj密度直达。注意反之不一定成立,即此时不能说xj由xi密度直达, 除非且xi也是核心对象。
4)密度可达:对于xi和xj,如果存在样本样本序列p1,p2,…,pT,满足p1=xi,pT=xj, 且pt+1由pt密度直达,则称xj由xi密度可达。也就是说,密度可达满足传递性。此时序列中的传递样本p1,p2,…,pT−1均为核心对象,因为只有核心对象才能使其他样本密度直达。注意密度可达也不满足对称性,这个可以由密度直达的不对称性得出。
5)密度相连:对于xi和xj,如果存在核心对象样本xk,使xi和xj均由xk密度可达,则称xi和xj密度相连。注意密度相连关系是满足对称性的。

3.3 DSCAN算法优缺点分析

1.优点:
(1)不必提前设置聚类数。
(2)对非凸型数据处理能力较强,可以对任意类内稠密,类间系数的样本集进行聚类。
(3)对异常点敏感性较低,可以较为有效地排除异常点的干扰。
(4)能够处理任意形状的簇,不需要先预先指定簇的个数,能够自动识别噪声点并将其排除在聚类之外。
2.缺点:
(1)对于密度差异较大的数据集,可能无法有效聚类
(2)在大规模数据集上效率较低。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值