zoukankan      html  css  js  c++  java
  • 聚类算法:K-means 算法(k均值算法)

     

    k-means算法:

         第一步:选$K$个初始聚类中心,$z_1(1),z_2(1),cdots,z_k(1)$,其中括号内的序号为寻找聚类中心的迭代运算的次序号.

    聚类中心的向量值可任意设定,例如可选开始的$K$个模式样本的向量值作为初始聚类中心。

         第二步:逐个将需分类的模式样本${x}$按最小距离准则分配给$K$个聚类中心中的某一个$z_j(1)$假设$i=j$时,

    [
    D_j (k) = min { left| {x - z_i (k)} ight|,i = 1,2, cdots K}
    ]

    $xin S_j(k)$,其中$k$为迭代运算的次序号,第一次迭代$k=1$,$S_j$表示第$j$个聚类,其聚类中心为$z_j$

    第三步:计算各个聚类中心的新的向量值,$z_j(k+1),j=1,2,cdots,K$,求各聚类域中所包含样本的均值向量:

    [
    egin{array}{*{20}c}
    {z_j (k + 1) = frac{1}{{N_j }}sumlimits_{x in S_j (k)} x ,} & {j = 1,2, cdots ,K} \
    end{array},
    ]

    其中$N_j$为第$j$个聚类域$S_j$中所包含的样本个数。以均值向量作为新的聚类中心,可使如下聚类准则函数最小:

    [
    egin{array}{*{20}c}
    {J_j = sumlimits_{x in S_j (k)} {left| {x - z_j (k + 1)} ight|^2 } ,} & {j = 1,2, cdots ,K} \
    end{array}
    ]

    在这一步中要分别计算$K$个聚类中的样本均值向量,所以称之为$K$-均值算法。

    第四步:若$z_j(k+1) eq z_j(k),j=1,2,cdots,K$,则返回第二步,将模式样本逐个重新分类,重复迭代运算; $z_j(k+1)=z_j(k),j=1,2,cdots,k$,则算法收敛,计算结束。

     

    K-均值分类算法实例

    第一步:取$K=2$,并选

              $z_1(1)=x_1=(0 0)^T, z_2(1)=x_2=(1 0)^T$

    第二步:因$||x_1-z_1(1)||<||x_1-z_2(1)||$,故$x_1in S_1(1)$

               因$||x_2-z_1(1)||>||x_2-z_2(1)||$,故$x_2in S_2(1)$

               因$||x_3-z_1(1)||<||x_3-z_2(1)||$,故$x_3in S_1(1)$

                                      ……

              得到:    

                      S1(1)={x1, x3}, S2(1)={x2, x4, x5, …, x20}

    第三步:计算新的聚类中心

                     

                     

    第四步:因$z_j(2) eq z_j(1),j=1,2$,返回第二步;

    第二步(返回1):由新的聚类中心,得到:

                       

                        

                因此

                        $S_1(2)={x_1, x_2,cdots, x_8}$

                        $S_2(2)={x_9, x_{10}, cdots, x_{20}}$ 

    第三步(返回1):计算聚类中心 

                        

                       

    第四步(返回1):因$z_j(3) eq z_j(2),j=1,2$,返回第二步;

    第二步(返回2):分类结果与前一次迭代的结果相同,即$S_1(4)=S_1(3),S_2(4)= S_2(3)$; 

    第三步(返回2):聚类中心与前一次迭代的结果相同; 

    第四步(返回2):因$z_j(4)=z_j(3),j=1,2$,算法收敛,得到最终的聚类中心。 

                               ,

     

  • 相关阅读:
    django报错问题解决
    django2-项目实战
    django1-环境搭建与开始
    python学习-模块与包(九)
    逆水行舟,不进则退
    待学习规划内容
    越来越强大法则
    windows下安装scoop
    pytest+allure生成测试报告
    Angular vscode 调试
  • 原文地址:https://www.cnblogs.com/huadongw/p/4101800.html
Copyright © 2011-2022 走看看