• 26.K-均值算法的优化目标、随机初始化、聚类数的选择


    一、K-均值算法的优化目标

    • K-均值最小化问题,是要最小化所有的数据点与其所关联的聚类中心点之间的距离之和

    • K-均值的代价函数(又称畸变函数 Distortion function)为:

      J ( c ( 1 ) , . . . , c ( m ) , μ 1 , . . . , μ K ) = 1 m ∑ i = 1 m ∥ X ( i ) − μ c ( i ) ∥ 2 J(c^{(1)},...,c^{(m)},μ_1,...,μ_K)=\dfrac {1}{m}\sum^{m}_{i=1}\left\| X^{\left( i\right) }-\mu_{c^{(i)}}\right\| ^{2} J(c(1),...,c(m),μ1,...,μK)=m1i=1m X(i)μc(i) 2

      • μ c ( i ) {{\mu }_{{{c}^{(i)}}}} μc(i)代表与 x ( i ) {{x}^{(i)}} x(i)最近的聚类中心点

      • 我们的的优化目标便是找出使得代价函数最小的 c ( 1 ) c^{(1)} c(1), c ( 2 ) c^{(2)} c(2),…, c ( m ) c^{(m)} c(m) μ 1 μ^1 μ1, μ 2 μ^2 μ2,…, μ k μ^k μk
        在这里插入图片描述

        在这里插入图片描述

    • 在K-均值算法的迭代实现过程中,算法第一个循环用于减小 c(i) 引起的代价,而第二个循环则是用于减小 μi 引起的代价。算法会在每一次迭代都减小代价函数,不然便说明存在错误
      在这里插入图片描述

    二、随机初始化

    2.1 随机初始化的聚类中心点的方法

    1. 选择 K < m KK<m,即聚类中心点的个数要小于所有训练集实例的数量

    2. 随机选择 K K K个训练实例,然后令 K K K个聚类中心分别与这 K K K个训练实例相等

      在这里插入图片描述

    2.2 随机初始化可能出现的问题

    • K-means的一个问题在于,如果初始化不好,有可能会停留在一个局部最小值处(局部最优解)

    • 解决局部最优问题就是多次随机初始化,找到最好的解(畸变函数最小,即代价最小):通常需要运行多次 K-means算法,每一次都重新随机初始化,最后比较多次运行 K-means的结果,选择代价函数最小的结果

      • 这种方法在K较小的时候(2-10)可行,如果K较大可能不会有明显地改善
        在这里插入图片描述

    三、聚类数的选择

    • 没有所谓最好的选择聚类数的方法,通常是需要根据不同的问题,人工进行选择的
    • 选择的时候思考我们运用K-均值算法聚类的动机是什么,然后选择能最好服务于该目的标聚类数

    3.1 肘部法则

    • 肘部法则——选择聚类数目的一个方法

    • 肘部法则的具体内容:我们所需要做的是改变 K K K值,也就是聚类类别数目的总数。用一个聚类来运行K均值聚类方法。这就意味着,所有的数据都会分到一个聚类里,然后计算成本函数或者计算畸变函数 J J J K K K代表聚类数字

    • 肘部法则具体例子:
      在这里插入图片描述

      • 假设使用肘部法则得到上面左图的曲线,我们看到在 K = 3 K=3 K=3的时候达到一个肘点。在此之后,畸变值就下降的非常慢, 则我们就选 K = 3 K=3 K=3,这是一种用来选择聚类个数的合理方法
      • 但是大部分情况下会像上面的右图一样没有肘点,这时就需要人工选择

    四、聚类的其他知识扩充

    4.1 相似度/距离计算方法总结

    (1). 闵可夫斯基距离Minkowski/(其中欧式距离: p = 2 p=2 p=2)

    d i s t ( X , Y ) = ( ∑ i = 1 n ∣ x i − y i ∣ p ) 1 p dist(X,Y)={{\left( {{\sum\limits_{i=1}^{n}{\left| {{x}_{i}}-{{y}_{i}} \right|}}^{p}} \right)}^{\frac{1}{p}}} dist(X,Y)=(i=1nxiyip)p1

    (2). 杰卡德相似系数(Jaccard):

    J ( A , B ) = ∣ A ∩ B ∣ ∣ A ∪ B ∣ J(A,B)=\frac{\left| A\cap B \right|}{\left|A\cup B \right|} J(A,B)=ABAB

    (3). 余弦相似度(cosine similarity):

    n n n维向量 x x x y y y的夹角记做 θ \theta θ,根据余弦定理,其余弦值为:

    c o s ( θ ) = x T y ∣ x ∣ ⋅ ∣ y ∣ = ∑ i = 1 n x i y i ∑ i = 1 n x i 2 ∑ i = 1 n y i 2 cos (\theta )=\frac{{{x}^{T}}y}{\left|x \right|\cdot \left| y \right|}=\frac{\sum\limits_{i=1}^{n}{{{x}_{i}}{{y}_{i}}}}{\sqrt{\sum\limits_{i=1}^{n}{{{x}_{i}}^{2}}}\sqrt{\sum\limits_{i=1}^{n}{{{y}_{i}}^{2}}}} cos(θ)=xyxTy=i=1nxi2 i=1nyi2 i=1nxiyi
    (4). Pearson皮尔逊相关系数:
    ρ X Y = cov ⁡ ( X , Y ) σ X σ Y = E [ ( X − μ X ) ( Y − μ Y ) ] σ X σ Y = ∑ i = 1 n ( x − μ X ) ( y − μ Y ) ∑ i = 1 n ( x − μ X ) 2 ∑ i = 1 n ( y − μ Y ) 2 {{\rho }_{XY}}=\frac{\operatorname{cov}(X,Y)}{{{\sigma }_{X}}{{\sigma }_{Y}}}=\frac{E[(X-{{\mu }_{X}})(Y-{{\mu }_{Y}})]}{{{\sigma }_{X}}{{\sigma }_{Y}}}=\frac{\sum\limits_{i=1}^{n}{(x-{{\mu }_{X}})(y-{{\mu }_{Y}})}}{\sqrt{\sum\limits_{i=1}^{n}{{{(x-{{\mu }_{X}})}^{2}}}}\sqrt{\sum\limits_{i=1}^{n}{{{(y-{{\mu }_{Y}})}^{2}}}}} ρXY=σXσYcov(X,Y)=σXσYE[(XμX)(YμY)]=i=1n(xμX)2 i=1n(yμY)2 i=1n(xμX)(yμY)

    • Pearson相关系数即将 x x x y y y坐标向量各自平移到原点后的夹角余弦

    4.2 聚类的衡量指标

    (1). 均一性: p p p

    • 类似于精确率,一个簇中只包含一个类别的样本,则满足均一性。其实也可以认为就是正确率(每个 聚簇中正确分类的样本数占该聚簇总样本数的比例和)

    (2). 完整性: r r r

    • 类似于召回率,同类别样本被归类到相同簇中,则满足完整性;每个聚簇中正确分类的样本数占该
    • 类型的总样本数比例的和

    (3). V-measure: 均一性和完整性的加权平均

    V = ( 1 + β 2 ) ∗ p r β 2 ∗ p + r V = \frac{(1+\beta^2)*pr}{\beta^2*p+r} V=β2p+r(1+β2)pr

    (4). 轮廓系数

    • 样本 i i i的轮廓系数: s ( i ) s(i) s(i)

    • 簇内不相似度:计算样本 i i i到同簇其它样本的平均距离为 a ( i ) a(i) a(i),应尽可能小。

    • 簇间不相似度:计算样本 i i i到其它簇 C j C_j Cj的所有样本的平均距离 b i j b_{ij} bij,应尽可能大。

    • 轮廓系数 s ( i ) s(i) s(i)值越接近1表示样本 i i i聚类越合理,越接近-1,表示样本 i i i应该分类到 另外的簇中,近似为0,表示样本 i i i应该在边界上;所有样本的 s ( i ) s(i) s(i)的均值被成为聚类结果的轮廓系数。

    • 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)\}} s(i)=max{a(i),b(i)}b(i)a(i)

    (5). ARI

    • 数据集 S S S共有 N N N个元素, 两个聚类结果分别是:

    X = { X 1 , X 2 , . . . , X r } , Y = { Y 1 , Y 2 , . . . , Y s } X=\{{{X}_{1}},{{X}_{2}},...,{{X}_{r}}\},Y=\{{{Y}_{1}},{{Y}_{2}},...,{{Y}_{s}}\} X={X1,X2,...,Xr},Y={Y1,Y2,...,Ys}

    • X X X Y Y Y的元素个数为:

    a = { a 1 , a 2 , . . . , a r } , b = { b 1 , b 2 , . . . , b s } a=\{{{a}_{1}},{{a}_{2}},...,{{a}_{r}}\},b=\{{{b}_{1}},{{b}_{2}},...,{{b}_{s}}\} a={a1,a2,...,ar},b={b1,b2,...,bs}

    在这里插入图片描述

    • 记: n i j = ∣ X i ∩ Y i ∣ {{n}_{ij}}=\left| {{X}_{i}}\cap {{Y}_{i}} \right| nij=XiYi

      A R I = ∑ i , j C n i j 2 − [ ( ∑ i C a i 2 ) ⋅ ( ∑ i C b i 2 ) ] / C n 2 1 2 [ ( ∑ i C a i 2 ) + ( ∑ i C b i 2 ) ] − [ ( ∑ i C a i 2 ) ⋅ ( ∑ i C b i 2 ) ] / C n 2 ARI=\frac{\sum\limits_{i,j}{C_{{{n}_{ij}}}^{2}}-\left[ \left( \sum\limits_{i}{C_{{{a}_{i}}}^{2}} \right)\cdot \left( \sum\limits_{i}{C_{{{b}_{i}}}^{2}} \right) \right]/C_{n}^{2}}{\frac{1}{2}\left[ \left( \sum\limits_{i}{C_{{{a}_{i}}}^{2}} \right)+\left( \sum\limits_{i}{C_{{{b}_{i}}}^{2}} \right) \right]-\left[ \left( \sum\limits_{i}{C_{{{a}_{i}}}^{2}} \right)\cdot \left( \sum\limits_{i}{C_{{{b}_{i}}}^{2}} \right) \right]/C_{n}^{2}} ARI=21[(iCai2)+(iCbi2)][(iCai2)(iCbi2)]/Cn2i,jCnij2[(iCai2)(iCbi2)]/Cn2

  • 相关阅读:
    SQL Server中substring的用法
    STM32H743XX/STM32H563XX芯片烧录一次后,再次上电无法烧录
    excel系列(二) - 利用 easypoi 快速实现 excel 文件导入导出
    C语言调用【Python3】
    Linux·字符设备和杂项设备
    实现旅行售货员问题的回溯算法
    SpringMVC+Vue项目图书推荐系统
    Spring Security 集成 OIDC 项目编码 | 认证(三)
    ​ 详解Linux内核通信-proc文件系统
    cassandra节点增删磁盘
  • 原文地址:https://blog.csdn.net/qq_44749630/article/details/126144864