主要内容

fcm

模糊c均值聚类

描述

例子

[中心] = fcm(数据数控对给定数据执行模糊c-means聚类并返回数控集群中心。

例子

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

例子

[中心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 (index2, 2),'或者')情节(中心(1,1),中心(1、2),'xb'“MarkerSize”15,'行宽'3)图(中心(2,1),中心(2,2),'xr'“MarkerSize”15,'行宽',3)持有

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

创建一个随机数据集。

数据=兰特(100,2);

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

选项= [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)

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

如果您的数据集很宽,潜在集群之间有很多重叠,那么计算的集群中心可能彼此非常接近。在这种情况下,每个数据点在所有集群中具有近似相同的隶属度。要改进聚类结果,请降低此值,这将限制聚类过程中模糊重叠的数量。

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

2.0
选项(2)

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

One hundred.
选项(3)

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

1E-5
选项(4)

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

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

  • 错误的-不显示目标函数。

真正的

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

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

输出参数

全部折叠

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

模糊分区矩阵,作为矩阵返回数控行和ND.列。元素你(一世j表示会员的成员程度j数据点在一世集群。对于给定的数据点,所有集群的成员值之和为1。

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

提示

  • 用FCM聚类方法生成模糊推理系统,使用genfis命令。例如,假设你使用以下语法聚集你的数据:

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

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

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

    1. 配置群集选项。

      选择= genfisOptions (“FCMClustering”);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,选择);

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

算法

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

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

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

在哪里

  • D.是数据点数。

  • N是集群的数量。

  • m模糊划分矩阵是控制模糊重叠程度的指数,与m> 1.模糊重叠是指聚类之间的边界有多模糊,即在多个聚类中具有显著隶属关系的数据点的数量。

  • X一世一世数据点。

  • Cj是的中心j集群。

  • μij是成员的成员X一世j集群。对于给定的数据点,X一世,所有集群的成员关系值之和为1。

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