主要内容

FCM.

模糊C-MEARE集群

描述

示例

[中心] = fcm(数据NC.在给定数据和返回时执行模糊C-means群集NC.集群中心。

示例

[中心] = fcm(数据NC.选择指定其他群集选项。

示例

[中心objfunc.] = fcm(___另外还返回所有先前语法的每个优化迭代的目标函数值。

例子

崩溃

加载数据。

加载fcmdata.dat.

找到2使用模糊C-means聚类的集群。

[中心,u] = FCM(FCMDATA,2);
迭代计数= 1,obj。FCN = 8.970479迭代计数= 2,OBJ。FCN = 7.197402迭代计数= 3,OBJ。FCN = 6.325579迭代计数= 4,OBJ。FCN = 4.586142迭代计数= 5,OBJ。FCN = 3.893114迭代计数= 6,OBJ。FCN = 3.810804迭代计数= 7,OBJ。FCN = 3.799801迭代计数= 8,OBJ。FCN = 3.797862迭代计数= 9,OBJ。FCN = 3.797508迭代计数= 10,OBJ。 fcn = 3.797444 Iteration count = 11, obj. fcn = 3.797432 Iteration count = 12, obj. fcn = 3.797430

将每个数据点分类为具有最大的成员值。

maxu = max(u);index1 =查找(u(1,:) == maxu);index2 =查找(u(2,:) == maxu);

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

绘图(FCMDATA(INDEX1,1),FCMDATA(INDEX1,2),'ob'抱紧绘图(FCMDATA(INDEX2,1),FCMDATA(索引2,2),'或')情节(中心(1,1),中心(1,2),'xb''Markersize'15,'linewidth',3)情节(中心(2,1),中心(2,2),'xr''Markersize'15,'linewidth',3)持有关闭

图包含轴。轴包含4个类型的4个物体。

创建随机数据集。

数据=兰特(100,2);

为了增加群集之间的模糊重叠量,请指定大模糊分区矩阵指数。

选项= [3.0 nan nan 0];

群集数据。

[中心,u] = FCM(数据,2,选项);

加载群集数据。

加载clusterdemo.dat.

设置群集终止条件,使得优化在发生以下任一情况时停止:

  • 迭代的数量最多达到了最多25.

  • 目标函数提高了小于0.001在两个连续的迭代之间。

选项= [南32.001 0];

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

群集数据。

[中心,u,objfun] = fcm(clusterdemo,3,选项);

要确定哪些终止条件停止群集,请查看目标函数向量。

objfun.
objfun =13×154.7257 42.9867 42.8554 42.8554 42.1857 39.0857 31.6814 21.6814 28.5736 27.1806 20.7359 15.7147⋮

优化停止,因为目标函数提高了小于0.001在最后的两个迭代之间。

输入参数

崩溃

数据集要群集,指定为矩阵N.D.行,在哪里N.D.是数据点数。列中的数量数据等于数据维度。

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

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

选项 描述 默认
选项(1)

模糊分区矩阵的指数,,指定为标量大于1.0。此选项控制集群之间的模糊重叠量,具有更大的值,表示更大程度的重叠。

如果您的数据集很宽,潜在群集之间的重叠很多,则计算的群集中心可能非常靠近彼此。在这种情况下,每个数据点在所有集群中具有大致相同程度的成员资格。为了提高群集结果,降低此值,这限制了聚类期间的模糊重叠量。

有关模糊重叠调整的示例,请参阅在模糊C-MERIAL聚类中调整模糊重叠

2.0
选项(2)

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

100.
选项(3)

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

1E-5
选项(4)

信息显示标志,指示是否在每次迭代后显示目标函数值,指定为以下之一:

  • 真实- 显示目标函数。

  • - 请勿显示目标函数。

真实

如果有的话选择,使用该选项的默认值。

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

输出参数

崩溃

最终集群中心,作为矩阵返回NC.包含每个群集中心的坐标的行。列中的数量中心等于群集数据的维度。

模糊分区矩阵,作为矩阵返回NC.行和N.D.列。元素你(j表示会员的成员程度j数据点群集。对于给定数据点,所有集群的成员资格值的总和是一个。

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

提示

  • 要使用FCM群集生成模糊推理系统,请使用Genfis.命令。例如,假设您使用以下语法培养数据:

    [中心,u] = FCM(数据,NC,选项);

    在哪里m列的数据对应于输入变量,剩余列对应于输出变量。

    您可以使用相同的培训数据和FCM群集配置生成模糊系统。要这样做:

    1. 配置集群选项。

      选择= genfisoptions('fcmclmerting');opt.numclusters = nc;opt.eplonent =选项(1);opt.maxnumiteration =选项(2);opt.minimprovement =选项(3);opt.verbose =选项(4);
    2. 提取输入和输出变量数据。

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

      FIS = Genfis(InputData,OutputData,OPT);

    模糊系统,FIS.,包含每个群集的一个模糊规则,每个输入和输出变量每簇都有一个隶属函数。有关更多信息,请参阅Genfis.genfisOptions

算法

模糊C-mancy(FCM)是一种聚类方法,允许每个数据点属于具有不同成员程度的多个集群。

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

j m = σ. = 1 D. σ. j = 1 N. μ. j m X. - C. j 2

在哪里

  • D.是数据点数。

  • N.是群集的数量。

  • m是模糊分区矩阵指数,用于控制模糊重叠的程度,有m> 1。模糊重叠是指集群之间的边界的界限是指的,即多个群集具有重要成员资格的数据点数。

  • X.数据点。

  • C.j是的中心j群集。

  • μ.IJ.是成员的成员X.j群集。对于给定的数据点,X.,所有集群的隶属值的总和是一个。

FCM.在群集期间执行以下步骤:

  1. 随机初始化群集成员身份值,μ.IJ.

  2. 计算群集中心:

    C. j = σ. = 1 D. μ. j m X. σ. = 1 D. μ. j m

  3. 更新μ.IJ.根据以下内容:

    μ. j = 1 σ. K. = 1 N. X. - C. j X. - C. K. 2 m - 1

  4. 计算目标函数,jm

  5. 重复步骤2-4直到jm通过小于指定的最小阈值或直到指定的最大迭代次数。

参考文献

[1] Bezdek,J.C.,用模糊物镜函数算法识别,纽约,1981年,监管媒体。

在R2006A之前介绍