主要内容

虹膜数据的模糊c均值聚类

这个例子展示了如何对虹膜数据集使用模糊c均值聚类。这个数据集是由植物学家埃德加·安德森收集的,包含了三种鸢尾花的随机样本:setosa多色的,virginica.对于每个物种,数据集包含50个萼片长度,萼片宽度,花瓣长度和花瓣宽度的观测值。

加载数据

方法加载数据集iris.dat数据文件。

负载iris.dat

将数据划分为三个组,命名为setosa多色的,virginica

setosaIndex =虹膜(:,5)==1;versicolorIndex =虹膜(:,5)==2;virginicaIndex =虹膜(:,5)==3;setosa =虹膜(setosaIndex,:);versicolor =虹膜(versicolorIndex,:);virginica =虹膜(virginicaIndex,:);

绘制二维数据图

虹膜数据包含四个维度,分别表示萼片长度、萼片宽度、花瓣长度和花瓣宽度。为两个维度的每个组合绘制数据点。

特征= {“花萼长度”萼片宽的...“花瓣长度”“花瓣宽度”};配对= [1 2;1 3;1 - 4;2 3;2 - 4;3 4];I = 1:6 x = pairs(I,1);Y = pairs(i,2);次要情节(2、3、我)情节([setosa (:, x)多色的(:,x) virginica (:, x)),...[setosa(:,y) versicolor(:,y) virginica(:,y)],“。”xlabel(特征{x}) ylabel(特征{y})结束

图中包含6个轴对象。Axes对象1包含3个line类型的对象。坐标轴对象2包含3个line类型的对象。坐标轴对象3包含3个line类型的对象。Axes对象4包含3个line类型的对象。坐标轴对象5包含3个line类型的对象。坐标轴对象6包含3个line类型的对象。

设置参数

指定使用模糊c均值聚类对数据进行聚类的选项。这些选项是:

  • 数控-集群数量

  • M -模糊划分矩阵指数,表示聚类之间的模糊重叠程度。有关更多信息,请参见模糊c均值聚类中模糊重叠的调整

  • 麦克斯特-最大迭代次数。聚类过程在此迭代次数之后停止。

  • minImprove-最低限度的改进。当连续两次迭代之间的目标函数改进值小于此值时,聚类过程停止。

Nc = 3;M = 2.0;maxIter = 100;minImprove = 1e-6;

有关这些选项和模糊c均值算法的更多信息,请参见fcm

计算集群

模糊c均值聚类是一个迭代过程。最初,fcm函数生成一个随机模糊划分矩阵。这个矩阵表示每个簇中每个数据点的隶属度。

在每次聚类迭代中,fcm计算聚类中心,并根据计算出的中心位置更新模糊划分矩阵。然后计算目标函数值。

聚类数据,每次迭代后显示目标函数值。

clusteringOptions = [M maxIter minImprove true];[centers,U] = fcm(虹膜,Nc,clusteringOptions);
迭代计数= 1,obj。fcn = 28838.424340迭代计数= 2,obj。fcn = 21010.880067迭代计数= 3,obj。fcn = 15272.280943迭代计数= 4,obj。fcn = 11029.756194迭代计数= 5,obj。fcn = 10550.015503迭代计数= 6,obj。fcn = 10301.776800迭代计数= 7,obj。fcn = 9283.793786迭代计数= 8,obj。fcn = 7344.379868迭代计数= 9,obj。fcn = 6575.117093迭代计数= 10,obj。 fcn = 6295.215539 Iteration count = 11, obj. fcn = 6167.772051 Iteration count = 12, obj. fcn = 6107.998500 Iteration count = 13, obj. fcn = 6080.461019 Iteration count = 14, obj. fcn = 6068.116247 Iteration count = 15, obj. fcn = 6062.713326 Iteration count = 16, obj. fcn = 6060.390433 Iteration count = 17, obj. fcn = 6059.403978 Iteration count = 18, obj. fcn = 6058.988494 Iteration count = 19, obj. fcn = 6058.814438 Iteration count = 20, obj. fcn = 6058.741777 Iteration count = 21, obj. fcn = 6058.711512 Iteration count = 22, obj. fcn = 6058.698925 Iteration count = 23, obj. fcn = 6058.693695 Iteration count = 24, obj. fcn = 6058.691523 Iteration count = 25, obj. fcn = 6058.690622 Iteration count = 26, obj. fcn = 6058.690247 Iteration count = 27, obj. fcn = 6058.690092 Iteration count = 28, obj. fcn = 6058.690028 Iteration count = 29, obj. fcn = 6058.690001 Iteration count = 30, obj. fcn = 6058.689990 Iteration count = 31, obj. fcn = 6058.689985 Iteration count = 32, obj. fcn = 6058.689983 Iteration count = 33, obj. fcn = 6058.689983

当目标函数改进值低于指定的最小阈值时,聚类停止。

将计算出的群集中心绘制为粗体数字。

I = 1:6 subplot(2,3, I)j = 1:Nc x = pairs(i,1);Y = pairs(i,2);文本(中心(j, x)中心(j, y) int2str (j),...“FontWeight”“大胆”);结束结束

图中包含6个轴对象。Axes对象1包含6个类型为line, text的对象。Axes对象2包含6个类型为line, text的对象。Axes对象3包含6个类型为line, text的对象。Axes对象4包含6个类型为line, text的对象。Axes对象5包含6个类型为line, text的对象。坐标轴对象6包含6个类型为line, text的对象。

另请参阅

相关的话题