主要内容

fcm

模糊c均值聚类

描述

例子

(中心,U)= fcm (数据)执行模糊c均值聚类数据使用默认选项。

例子

(中心,U)= fcm (数据,选项)指定集群选项,包括集群和集群指数的数量。

例子

(中心,U,objFunc)= fcm (___)返回在每个优化迭代的目标函数值的所有以前的语法。

例子

全部折叠

加载数据集群。每一行的fcmdata包含一个数据点。两列的fcmdata包含每个数据点的特征值。

负载fcmdata.dat

使用一个指定集群选项fcmOptions对象。对于这个示例,将集群的数量设置为2,而使用其他选项的默认值。

选择= fcmOptions (NumClusters = 2);

发现集群使用模糊c均值聚类中心。

(中心、U) = fcm (fcmdata、期权);
迭代数= 1,obj。fcn = 8.970479迭代数= 2,obj。fcn迭代数= 3 = 7.197402,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 Minimum improvement reached.

将每个数据点到集群成员最大的价值。

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)包含(”功能1”)ylabel (“功能2”)举行

图包含一个坐标轴对象。坐标轴对象包含功能1、ylabel特性2包含4线类型的对象。一个或多个行显示的值只使用标记

创建一个随机数据集。

data =兰德(100 2);

指定以下FCM聚类选择。

  • 计算两个集群。

  • 增加之间的模糊重叠集群,指定一个大的模糊划分矩阵指数。

  • 抑制的命令窗口显示每个迭代的目标函数值。

选择= fcmOptions (NumClusters = 2,指数= 3.0,Verbose = false);

集群的数据。

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

负载集群数据。

负载clusterDemo.dat

配置一个选择对象计算三个集群和抑制的命令窗口输出目标函数值。同时,设置集群终止条件的优化停止时发生如下:

  • 50的迭代次数达到最大。

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

选择= fcmOptions (NumClusters = 3,MaxNumIteration = 50,MinImprovement = 0.001,Verbose = false);

集群的数据。

(中心、U objFun) = fcm (clusterDemo、期权);

目标函数向量的长度小于50;因此,集群没有达到最大迭代次数。

视图的最后三个值目标函数向量。

objFun (end-2:结束)
ans =3×115.4353 15.4306 15.4305

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

输入参数

全部折叠

数据集是集群,指定为一个矩阵Nd行,Nd是数据点的数量。列的数量数据等于数据维度,也就是说,在每个数据点的数量特征。

集群选项,指定为一个fcmOptions对象。

输出参数

全部折叠

最终聚类中心,作为一个矩阵与返回Nc行包含每个集群中心的坐标Nc指定使用的群集的数量吗options.NumClusters。列的数量中心等于集群数据的维数。

模糊划分矩阵,作为一个返回Nc——- - - - - -Nd矩阵。元素U (,j)表示程度的会员μijj的数据点集群。对于一个给定的数据点,所有集群成员值之和为1。

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

提示

  • 使用FCM聚类生成一个模糊推理系统,使用genfis函数。例如,假设您集群数据使用下面的语法。

    (中心、U) = fcm(数据,fcmOpt);

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

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

    1. 集群配置选项。

      选择= genfisOptions (“FCMClustering”);opt.NumClusters = fcmOpt.NumClusters;opt.Exponent = fcmOpt.Exponent;opt.MaxNumIteration = fcmOpt.MaxNumIteration;opt.MinImprovement = fcmOpt.MinImprovement;opt.DistanceMetric = fcmOpt.DistanceMetric;opt.Verbose = fcmOpt.Verbose;
    2. 提取数据的输入和输出变量。

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

      fis = genfis (inputData outputData,选择);

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

算法

FCM聚类方法,允许每个数据点属于多个集群与不同程度的会员。集群配置选项,创建一个fcmOptions对象。

FCM算法计算集群中心和会员以下最小化目标函数值。

J = = 1 C j = 1 N μ j D j 2

在这里:

  • N是数据点的数量。

  • C是集群的数量。指定该值,使用NumClusters选择。

  • 控制是模糊划分矩阵指数的模糊程度重叠,> 1。模糊重叠是指如何模糊集群之间的界限,也就是说,数据点的数量已经超过一个集群的重要成员。指定模糊划分矩阵指数,使用指数选择。

  • Dij的距离吗j数据点集群。

  • μij的隶属程度是j的数据点集群。对于一个给定的数据点,所有集群成员值之和为1。

fcm功能支持两种类型的金宝appFCM聚类:古典FCM和Gustafson-Kessel FCM。这些方法用于计算不同距离度量Dij。有关更多信息,请参见模糊聚类

引用

[1]Bezdek詹姆斯·C。模式识别与模糊目标函数算法。波士顿,MA:施普林格,1981年。https://doi.org/10.1007/978 - 1 - 4757 - 0450 - 1

版本历史

之前介绍过的R2006a

全部展开