主要内容

fcm

模糊c均值聚类

描述

例子

中心U) = fcm (数据数控对给定的数据执行模糊c均值聚类并返回数控集群中心。

例子

中心U) = fcm (数据数控选项指定其他集群选项。

例子

中心UobjFunc) = fcm (___还为所有前面的语法在每次优化迭代时返回目标函数值。

例子

全部折叠

加载数据。

负载fcmdata.dat

找到2使用模糊c均值聚类。

(中心、U) = fcm (fcmdata, 2);
迭代计数= 1,obj。fcn = 8.970479 Iteration count = 2, obj. fcn = 8.970479fcn迭代数= 3 = 7.197402,obj。fcn = 6.325579 Iteration count = 4, obj. php . php . php . php . php . php . php。fcn = 4.586142迭代计数= 5,obj。fcn = 3.893114;fcn = 3.810804 Iteration count = 7, obj. log(迭代次数)fcn = 3.799801迭代计数= 8,obj。fcn = 3.797862 Iteration count = 9, obj. fcn = 3.797862fcn = 3.797508 Iteration count = 10, obj. fcn = 3.797508 fcn = 3.797444 Iteration count = 11, obj. fcn = 3.797432 Iteration count = 12, obj. fcn = 3.797430

将每个数据点分类到隶属度最大的聚类中。

maxU = max (U);index1 = find(U(1,:) == maxU);index2 = find(U(2,:) == maxU);

绘制集群数据和集群中心。

情节(fcmdata (index1, 1), fcmdata (index1, 2),“ob”)举行情节(fcmdata (index2, 1), fcmdata (index2, 2),”或“)情节(中心(1,1),中心(1、2),“xb”“MarkerSize”15岁的“线宽”3)图(中心(2,1),中心(2,2),“xr”“MarkerSize”15岁的“线宽”, 3)

图中包含一个轴对象。轴对象包含4个类型为line的对象。

创建一个随机数据集。

data =兰德(100 2);

为了增加聚类之间的模糊重叠,指定一个较大的模糊划分矩阵指数。

options = [3.0 NaN NaN 0];

集群的数据。

(中心、U) = fcm(数据、2选项);

加载集群数据。

负载clusterdemo.dat

设置集群终止条件,当出现以下任一情况时,优化停止:

  • 迭代次数达到最大值25

  • 目标函数改进小于0.001在两个连续迭代之间。

options = [NaN 25 0.001 0];

第一种选择是,将模糊划分矩阵指数设置为其默认值2.将第四个选项设置为0抑制目标函数显示。

集群的数据。

(中心、U objFun) = fcm (clusterdemo 3选项);

要确定哪个终止条件停止了聚类,请查看目标函数向量。

objFun
objFun =13×154.7257 42.9867 42.8554 42.1857 39.0857 31.6814 28.5736 27.1806 20.7359 15.7147⋮

优化停止,因为目标函数改进小于0.001在最后两次迭代之间。

输入参数

全部折叠

要聚类的数据集,指定为带有的矩阵Nd行,Nd为数据点的个数。列数数据等于数据维数。

要创建的集群数量,指定为大于的整数1

集群选项,指定为带有以下元素的向量:

选项 描述 默认的
选项(1)

模糊划分矩阵的指数,U,指定为大于的标量1.0.该选项控制集群之间的模糊重叠量,值越大表示重叠程度越大。

如果数据集很宽,潜在集群之间有很多重叠,那么计算出的集群中心可能彼此非常接近。在这种情况下,每个数据点在所有集群中的成员程度大致相同。要提高聚类结果,请降低此值,它限制了聚类过程中模糊重叠的数量。

有关模糊重叠调整的示例,请参见模糊c均值聚类中的模糊重叠调整

2.0
选择(2)

最大迭代次数,指定为正整数。

One hundred.
选项(3)

目标函数在两个连续迭代之间的最小改进,指定为一个正标量。

1 e-5
选项(4)

信息显示标志,表示每次迭代后是否显示目标函数值,具体为:

  • 真正的-显示目标函数。

  • -不显示目标函数。

真正的

如果任何元素选项,则使用该选项的默认值。

当达到最大迭代次数或连续两次迭代之间的目标函数改进小于指定的最小值时,聚类过程停止。

输出参数

全部折叠

最后的簇中心,以矩阵形式返回数控包含每个集群中心坐标的行。列数中心等于被聚集的数据的维数。

模糊划分矩阵,返回为带有的矩阵数控行和Nd列。元素U (j的隶属度j数据点在集群。对于给定的数据点,所有集群的成员关系值之和为1。

每次迭代的目标函数值,作为向量返回。

提示

  • 使用FCM聚类生成一个模糊推理系统,使用genfis命令。例如,假设您使用以下语法对数据进行集群:

    (中心、U) = fcm(数据、数控选项);

    第一个数据对应输入变量,其余列对应输出变量。

    您可以使用相同的训练数据和FCM聚类配置生成一个模糊系统。这样做:

    1. 配置集群选项。

      选择= genfisOptions (“FCMClustering”);opt.NumClusters =数控;opt.Exponent =选项(1);opt.MaxNumIteration =选项(2);opt.MinImprovement =选项(3);opt.Verbose =选项(4);
    2. 提取输入和输出变量数据。

      inputData =数据(:,1:M);outputData =数据(:,M + 1:结束);
    3. 生成FIS结构。

      fis = genfis (inputData outputData,选择);

    模糊系统,金融中间人,每个聚类包含一个模糊规则,每个输入和输出变量每个聚类有一个隶属函数。有关更多信息,请参见genfisgenfisOptions

算法

模糊c均值(FCM)是一种聚类方法,它允许每个数据点属于多个不同隶属度的聚类。

FCM基于以下目标函数的最小化

J 1 D j 1 N μ j x c j 2

在哪里

  • D为数据点的个数。

  • N为集群的数量。

  • 控制模糊重叠度的模糊划分矩阵指数,用> 1.模糊重叠是指聚类之间的边界有多模糊,即在多个聚类中具有重要成员关系的数据点的数量。

  • x数据点。

  • cj中心是什么j集群。

  • μij是会员的程度吗xj集群。对于给定的数据点,x,则所有集群的成员关系值之和为1。

fcm集群化过程中执行如下步骤:

  1. 随机初始化集群成员的值,μij

  2. 计算集群中心:

    c j 1 D μ j x 1 D μ j

  3. 更新μij根据以下几点:

    μ j 1 k 1 N x c j x c k 2 1

  4. 计算目标函数,J

  5. 重复步骤2-4直到J改进小于指定的最小阈值或直到指定的最大迭代次数之后。

参考文献

[1] Bezdek,李鸿源基于模糊目标函数的模式识别算法,全会出版社,纽约,1981年。

之前介绍过的R2006a