聚类算法-层次(系统)聚类 Kmeans聚类 两步聚类

本文介绍了数据科学中聚类分析的距离定义,包括点-点距离(曼哈顿、欧氏、闵可夫斯基)、类-类距离(平均、中心、Ward最小方差)以及离差平方和。强调了数据预处理的重要性,如特征选择、缺失值处理、标准化等。还详细阐述了层次聚类和K-means聚类算法的步骤,以及确定聚类数量的方法,如树状图、肘部法等。此外,还提到了两步法聚类作为结合两种方法的策略。
摘要由CSDN通过智能技术生成

一、距离定义

1.1 点-点 距离

距离用来衡量观测变量的属性,第 i i i个特征的观测值 X i = ( x i 1 , x i 2 , . . . , x i p ) X_{i}=(x_{i1},x_{i2},...,x_{ip}) Xi=(xi1,xi2,...,xip),第 j j j个特征的观测值 X j = ( x j 1 , x j 2 , . . . , x j p ) X_{j}=(x_{j1},x_{j2},...,x_{jp}) Xj=(xj1,xj2,...,xjp) X i X_{i} Xi X j X_{j} Xj的距离有几种计算方式:

(1)曼哈顿距离 :可用于既有连续变量也有分类变量的聚类分析(分类变量需要做哑变量转换)
d i j = ∑ k = 1 p ∣ x i k − x j k ∣ d_{ij}=\sum_{k=1}^{p}\left | x_{ik}-x_{jk} \right | dij=k=1pxikxjk
p p p为特征个数。

(2)欧氏距离:适用于只有连续变量的聚类分析
d i j = ∑ k = 1 p ( x i k − x j k ) 2 d_{ij}=\sqrt{\sum_{k=1}^{p}( x_{ik}-x_{jk} )^2} dij=k=1p(xikxjk)2
(3)闵可夫斯基距离
d i j = [ ∑ k = 1 p ∣ x i k − x j k ∣ q ] 1 / q d_{ij}=\left [ \sum_{k=1}^{p}\left | x_{ik}-x_{jk} \right |^q\right ]^{1/q} dij=[k=1pxikxjkq]1/q

1.2 类-类 距离

(1)平均距离:倾向于将大的类分开,对异常值敏感
D ( C i , C j ) = [ 1 n i n j ∑ x i ϵ C i , x j ϵ C j d i j 2 ] 1 / 2 D_{(C_{i},C_{j})}=\left [ \frac{1}{n_{i}n_{j}}\sum_{x_{i}\epsilon C_{i},x_{j}\epsilon C_{j}}d_{ij}^2\right ]^{1/2} D(Ci,Cj)=ninj1xiϵCi,xjϵCjdij21/2
n i 、 n j n_{i}、n_{j} ninj分别是类 C i 、 C j C_{i}、C_{j} CiCj中点的个数, d i j d_{ij} dij为任意两类中节点之间距离。

(2)中心距离:较少受异常值影响,但类间的距离没有单调递增的趋势,在树状聚类图上可能出现逆转,限制了使用范围。
D ( C i , C j ) = d ( r i , r j ) D_{(C_{i},C_{j})}=d(r_{i},r_{j}) D(Ci,Cj)=d(ri,rj)
d ( r i , r j ) d(r_{i},r_{j}) d(ri,rj)为两类各自质心之间的距离,“质心”(centroids)是类中所有数据的均值。在二维平面中,一类数据点的质心的
横坐标就是这一类数据点的横坐标的均值,质心的纵坐标就是这一类数据点的纵坐标的均值。

(3)Ward最小方差:受异常值影响小,适用范围广泛
D ( C i , C j ) = ∑ x ϵ C i j ( x − r i j ) 2 − ∑ x ϵ C i ( x − r i ) 2 − ∑ x ϵ C j ( x − r j ) 2 D_{(C_{i},C_{j})}=\sum_{x\epsilon C_{ij}}(x-r_{ij})^{2}-\sum_{x\epsilon C_{i}}(x-r_{i})^{2}-\sum_{x\epsilon C_{j}}(x-r_{j})^{2} D(Ci,Cj)=xϵCij(xrij)2xϵCi(xri)2xϵCj(xrj)2
C i j C_{ij} Cij为两类中所有样本点的集合,即两类间距离 = 两类中所有样本点的总离差平方和 - 两类样本的整体组内离差平方和。

1.3 离差平方和

(1)组内离差平方和(Within-Cluster Sum-of-Squares):一个类中所有样本点到质心的距离的平方和
W C S S C i = ∑ x ϵ C i ( x − r i ) 2 = ∑ j = 0 n i ∑ k = 0 m ( x i j k − r i k ) 2 WCSS_{C_{i}}=\sum_{x\epsilon C_{i}}(x-r_{i})^{2}=\sum_{j=0}^{n_{i}}\sum_{k=0}^{m}(x_{ijk}-r_{ik})^{2} WCSSCi=xϵCi(xri)2=j=0nik=0m(xijkrik)2
C i C_{i} Ci中有 n i n_{i} ni个样本,每个点存在 m m m个特征, x i j k x_{ijk} xijk是类 C i C_{i} Ci中第 j j j个样本的第 k k k个特征值, r i k r_{ik} rik是类 C i C_{i} Ci k k k个特征的均值。

(2)整体组内离差平方和

将一个数据集中的所有簇的簇内平方和相加,就得到了整体组内平方和:
W C S S = ∑ i = 0 n C S S C i WCSS=\sum_{i=0}^{n}CSS_{C_{i}} WCSS=i=0nCSSCi
n n n为数据集中类的个数。

(3)联系

整体组间离差平方和 = 所有样本点的总离差平方和 - 整体组内离差平方和,与Ward最小方差求类间距离的思想一致。

二、数据处理

(1)特征变量的选择应符合分析主题,选择与主题相关特征;

(2)聚类分析应尽量少使用/避免使用分类变量,如必须使用,应先将分类变量做哑变量转换;

(4)聚类分析的数据不可以存在缺失值(回归模型也不智慧缺失值,但决策树允许缺失值);

(4)特征的量纲不一致时,要进行标准化处理,如中心标准化、极差标准化(若因子分析降维或分布形态转化等过程中已经标准化,则不需要再标准化);

(5)不同特征应尽量避免共线性,可使用主成分分析和因子分子降维,但考虑聚类分析重视模型的可解释性,因此通常使用因子分析降维。

(6)① 若利用聚类分析识别异常值,无需对异常值处理;② 若根据变量特征聚类分群,则需要对异常值进行处理,但为了使数据特征不丢失,异常值在聚类分析中的处理并非是删除,通常做特征变量的分布形态转换,如百分位秩转换、Tukey正态分布打分

特别说明:(4)消除量纲的标准化处理不一定改变分布形态, (6)② 取对数、 百分位秩、 Tukey评分等方法可以同时消除量纲、改变分布形态,取对数一般用于回归分析中,百分位秩、 Tukey评分用于聚类。根据变量特征聚类分群时,通常同时需要标准化和改变分布形态

三、聚类步骤

(1)利用聚类分析识别异常值

变量归一化处理——分布形态转换——主成分分析——聚类

(2)根据变量特征聚类分群(一般聚类)

变量归一化处理——主成分分析——聚类

四、层次(系统)聚类

形成类相似度层次图谱, 便于直观的确定类之间的划分。 该方法可以得到较理想的分类, 但是难以处理大量样本。
步骤为:

(1)计算每两个观测之间的距离;

(2)将最近的两个观测聚为一类, 将其看作一个整体计算与其它观测(类) 之间的距离;

(3)一直重复上述过程, 直至所有的观测被聚为一类。

五、Kmeans聚类

Kmeans聚类是非层次聚类算法,将观测分为预先指定的不重叠的类。 该方法可以处理样本量巨大的数据, 但是不能提供类相似度信息, 不能交互的决定聚类个数。

5.1 步骤

(1)设定K值, 确定聚类数( 随机分配聚类中心所需的种子);
(2)计算每个点到类中心的距离( 欧式距离),将点并入与类中心距离最近的类;
(3)重新计算类中心( 均值),作为新的中心;
(4)重新计算距离,迭代到分类结果不再变化 / 达到迭代步数 / 收敛标准( Ward最小二乘准则)停止 。

5.2 确定类的数量

(1)树状图
树状图中,横坐标为类的数量,纵坐标为距离,一般取距离(纵坐标)宽度大的情况所对应的类的数目,此时聚类结果更稳定。如下图所示,水平线与树状图中的垂直线有几个交点就表示此时是分几类的结果,本图可以看到2类和3类的水平线,通过分析可知3类的结果更稳定,因为从3类可以在最大的距离宽度下存在。
在这里插入图片描述
(2)肘部法
肘部法的思想与树状图法类似,横坐标是类的数目,纵坐标是成本函数,成本函数是类别畸变程度之和(WCSS),若类内部的成员彼此间越紧凑则类的畸变程度越小,反之,若类内部的成员彼此间越分散则类的畸变程度越大。随着类的数目增大,平均畸变程度会减小;每个类包含的样本数会减少,于是样本离其重心会更近。但是,随着类的数目继续增大,平均畸变程度的改善效果会不断减低。值增大过程中,畸变程度的改善效果下降幅度最大的位置对应的值就是肘部,即曲率最高的点为类的数目取值。

(3)CCC值

CCC值测量模型分类结果和随机分类结果的差别,如果差别越大,则模型分群越佳。CCC值越大越好。

(4)F值

F值测量分组的紧密性,F值越大越好。

(5)轮廓系数
轮廓系数的思路与Ward方法类似,是组内与组间不相似程度的差比:
S i = b i − a i m a x ( a i , b i ) S_{i}=\frac{b_{i}-a_{i}}{max(a_{i},b_{i})} Si=max(ai,bi)biai
a i a_{i} ai是点 i i i在组内与其他点的不相似程度平均值; b i b_{i} bi是点 i i i与其他组的点的不相似程度平均值。轮廓系数介于[-1,1],越接近于1代表内聚性越强,组间分离度越好。

六、两步法聚类

先使用K均值法聚类, 然后使用层次方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值