FCM

模糊C-均值聚类

描述

[中心ü] = FCM(数据数控执行模糊C均值聚类上给定的数据,并返回数控聚类中心。

[中心ü] = FCM(数据数控选项指定其它的集群选项。

[中心üobjFunc] = FCM(___也是在每一步优化迭代所有以前的语法返回的目标函数值。

例子

全部收缩

加载数据。

加载fcmdata.dat

2采用模糊C-均值聚类簇。

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

分类每个数据点与最大隶属度集群。

maxU = MAX(U);索引1 =查找(U(1,:) == maxU);索引2 =查找(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)保持

创建一个随机的数据集。

数据=兰特(100,2);

为了增加簇之间的模糊的重叠量,指定一个较大的模糊分区矩阵指数。

选项= [3.0楠楠0];

集群中的数据。

[中心,U] = FCM(数据,如图2所示,选项);

装入集群数据。

加载clusterdemo.dat

设置集群终止条件,使得当任一下列情况发生的最优化停止:

  • 迭代次数达到最大的25

  • 目标函数通过以下方式提高小于0.001连续两次迭代之间。

选项= [NaN的25 0.001 0];

第一个选项是为NaN,其模糊划分矩阵指数设置为它的默认值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最后两个迭代之间。

输入参数

全部收缩

数据设置为被群集,指定为与基质ñd行,其中ñd是数据点的数量。列中的数字数据是等于数据维数。

簇的数目来创建,指定为整数大于1

集群选项,指定为具有以下元件的载体:

选项 描述 默认
选项(1)

指数为模糊划分矩阵,ü,指定为一个标量大于1.0。此选项控制模糊的重叠群之间的量,与表示重叠更大程度的较大的值。

如果你的数据集是宽了很多潜在的簇之间的重叠,然后计算出聚类中心可能是非常接近对方。在这种情况下,每个数据点具有大约在所有簇中的同一隶属程度。为了改善您的聚类结果,减小该值,该集群中限制模糊重叠量。

对于模糊的重叠调整的例子,请参见调整模糊重叠模糊C均值

2.0
选项(2)

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

100
选项(3)

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

1E-5
选项(4)

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

  • 真正- 显示目标函数。

  • - 不显示目标函数。

真正

如果任何元素选项为NaN,用于该选项的默认值。

达到迭代的最大数目,或当两个连续的迭代之间的目标函数的改善比规定的最小少当聚类过程停止。

输出参数

全部收缩

最终聚类中心,返回一个矩阵数控含有各聚类中心的坐标的行。列中的数字中心是等于数据的维数被聚类。

模糊划分矩阵,返回为与基质数控ñd列。元件U(一世Ĵ表示的隶属度Ĵ在个数据点一世个集群。对于给定的数据点,则成员值的所有集群的总和为一。

对于每次迭代的目标函数值,返回作为载体。

提示

  • 以使用模糊聚类模糊推理系统,请使用genfis命令。例如,假设您群集使用以下语法您的数据:

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

    其中第一中号数据对应于输入变量,并且剩余的列对应于输出变量。

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

    1. 配置群集选项。

      选择= genfisOptions('FCMClustering');opt.NumClusters = NC;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,优化);

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

算法

模糊c均值(FCM)是一种聚类方法,其允许每个数据点属于多个集群具有不同的从属关系度。

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

Ĵ = Σ 一世 = 1 d Σ Ĵ = 1 ñ μ 一世 Ĵ X 一世 - C Ĵ 2

哪里

  • d是数据点的数量。

  • ñ是簇的数目。

  • 是用于控制模糊的重叠程度模糊划分矩阵指数,与> 1。模糊重叠指的簇之间的边界如何模糊是,也就是具有在多个集群显著成员资格数据点的数目。

  • X一世是个一世个数据点。

  • CĴ是的中心Ĵ个集群。

  • μIJ是的隶属度X一世在里面Ĵ个集群。对于给定的数据点,X一世,隶属值的所有群集之和为一。

FCM进行聚类过程下面的步骤:

  1. 随机初始化聚类隶属度,μIJ

  2. 计算聚类中心:

    C Ĵ = Σ 一世 = 1 d μ 一世 Ĵ X 一世 Σ 一世 = 1 d μ 一世 Ĵ

  3. 更新μIJ根据以下:

    μ 一世 Ĵ = 1 Σ ķ = 1 ñ X 一世 - C Ĵ X 一世 - C ķ 2 - 1

  4. 计算目标函数,Ĵ

  5. 重复步骤2-4,直到Ĵ小于指定的最小阈值或直到迭代指定的最大数后得到改善。

参考

[1] Bezdec,J.C.,模式识别与模糊目标函数算法,Plenum出版社,纽约,1981年。

R2006a前推出