zoukankan      html  css  js  c++  java
  • Fuzzy C Means 算法及其 Python 实现——写得很清楚,见原文

    Fuzzy C Means 算法及其 Python 实现

    1. K-Means 算法向 FCM 算法的扩展

    在 K-Means 算法中,如果要将数据集合 X={ X_1,X_2,X_3,dots,X_n } 划分为 k\,(1 le k le n) 个类,使得任意数据对象 X_i 必须属于并且仅属于一个类,同时每一个类至少包含一个数据对象,那么可以用一个 k	imes n 的矩阵 U 来表示,矩阵中的任意一个元素 u_{ij} 可以表示为:

      [{u_{ij}} = left{ egin{cases}  1& {X_i in G_j}  \  0& {X_i 
otin G_j} end{cases} 
ight.]

    其中 {G_j}left( {j = 1,2, ldots ,k} 
ight) 表示第 j 个类。并且 U 需要满足如下条件 (1 le i le k,\,1 le j le n)

      [left{ egin{cases}  {u_{ij}} in {0,1}  \  sumlimits_{i = 1}^k {{u_{ij}}} = 1  \  sumlimits_{j = 1}^n {{u_{ij}}} > 0 end{cases} 
ight.]

    如果上述矩阵 U 中的元素 u_{ij} 的取值范围不仅仅是 0 或者 1,那么就可以推广到模糊集合上的划分,U 就变成了模糊判定矩阵。此时 {u_{ij}} 需满足:

    (1) egin{equation*}  left{ egin{cases}  {u_{ij}} in [ 0,1 ]}  \  sumlimits_{i = 1}^k {{u_{ij}}} = 1  \  sumlimits_{j = 1}^n {{u_{ij}}} > 0 end{cases} 
ight. end{equation*}

    2. 目标函数与聚类中心

    K-Means 算法在度量数据对象的非相似性(或者说距离)时一般使用欧几里得距离,要求每个类的聚类中心与数据对象的距离平方之和最小,目标函数可以表示为:

      [J = sumlimits_{i = 1}^k {sumlimits_{j = 1}^n {s_{ij}^2} }]

      [{s_{ij}} = Eculid({C_i},{X_j})]

    其中 C_i 表示任意聚类中心,而聚类中心一般取类内所有对象在各属性上的平均值,因此可以表示为:

      [{C_i} = frac{{sumlimits_{j,{X_j} in {G_i}} {{X_j}} }}{{sumlimits_{j = 1}^n {{u_{ij}}} }}]

    {G_i}{kern 1pt} left( {1 le i le k} 
ight) 表示任意一个类。

    将算法推广到模糊集后,Dunn 对样本与类中心之间的距离采用隶属度的平方来加权,Bezdek 则进一步引入了隶属度的加权指数 m 从而得到了新的目标函数:

    (2) egin{equation*}  J = sumlimits_{i = 1}^k {sumlimits_{j = 1}^n {{{left( {{u_{ij}}} 
ight)}^m}s_{ij}^2} } end{equation*}

    要使得 (2) 式达到最小值则要求聚类中心 C_i 和隶属度 u_{ij} 满足如下条件:

    (3) egin{equation*}  {C_i} = frac{{sumlimits_{j = 1}^n {u_{ij}^m{X_j}} }}{{sumlimits_{j = 1}^n {u_{ij}^m} }} end{equation*}

    (4) egin{equation*}  {u_{ij}} = frac{1}{{sumlimits_{l = 1}^k {{{left( {frac{{{u_{ij}}}}{{{u_{lj}}}}} 
ight)}^{2/left( {m - 1} 
ight)}}} }} end{equation*}

    3. FCM 算法计算过程

    见原文和代码实现

  • 相关阅读:
    51nod 1179 最大的最大公约数 (数论)
    POJ 3685 二分套二分
    POJ 3045 贪心
    LIC
    HDU 1029 Ignatius and the Princess IV
    HDU 1024 Max Sum Plus Plus
    HDU 2389 Rain on your Parade
    HDU 2819 Swap
    HDU 1281 棋盘游戏
    HDU 1083 Courses
  • 原文地址:https://www.cnblogs.com/bonelee/p/7229752.html
Copyright © 2011-2022 走看看