此示例显示如何在二维数据上执行模糊C-means群集。有关群化高维数据的示例,请参阅虹膜数据的模糊c均值聚类.
模糊C-means(FCM)是一种数据群集技术,其中将数据集分组为N.与数据集中的每个数据点都属于每个群集到一定程度的群集。例如,靠近群集中心的数据点将在该群集中具有高度的成员资格,以及远离群集中心的另一个数据点将具有低的成员资格到该群集。
这FCM.
函数执行FCM群集。它从群集中心开始随机初始猜测;这是每个群集的平均位置。下一个,FCM.
为每个集群随机分配每个数据点的成员等级。通过迭代更新每个数据点的聚类中心和隶属度等级,FCM.
将群集中心移动到数据集中的正确位置,对于每个数据点,在每个群集中找到成员资格的程度。此迭代最小化了一个目标函数,该目标函数表示从任何给定数据点到由群集中该数据点的成员资格加权的群集中心的距离。
加载五个样本数据集,然后选择设置为群集的数据。这些数据集具有不同数量的群集和数据分布。
加载fcmdata.数据集=fcmdata3.;
配置群集算法设置。有关这些设置的更多信息,请参阅FCM.
.要为每个数据集获得准确的聚类结果,请尝试不同的聚类选项。
指定计算的群集数,必须大于1
.
n =4.;
指定模糊划分矩阵的指数,控制聚类之间的模糊重叠程度。该值必须大于1
,具有较小的值创建更清晰的群集边界。有关更多信息,请参阅模糊c均值聚类中的模糊重叠调整.
Exp =.2;
指定优化迭代的最大次数。
maxiter =.One hundred.;
指定目标函数在连续迭代之间的最小改进值。当目标函数的改进值低于此阈值时,优化停止。值越小,聚类结果越准确,但聚类收敛的时间越长。
最小=0.00001;
指定是否在每次迭代后显示目标函数值。
displayObjective =错误的;
为此创建一个选项向量FCM.
使用这些设置功能。
选项= [exp maxiter simeprove displaybjective];
将数据群集到N.
集群。
[c,u] = fcm(数据集,n,选项);
C
包含每个群集的计算中心。你
包含计算的模糊分区矩阵,其指示每个群集中的每个数据点的成员资格的程度。
将每个数据点分类为其具有最高成员资格的群集。
maxu = max(u);索引= cell(n,1);为了i = 1:n索引{i} =查找(u(i,:) == maxu);结尾
绘制聚类结果。
图保存在为了i = 1:n绘图(DataSet(索引{i},1),数据集(索引{i},2),“o”)绘图(c(i,1),c(i,2),'XK'那“MarkerSize”,15,'行宽'3)结尾抓住从
每个群集中的数据点以不同的颜色显示。每个群集的中心显示为黑色X
.
选择一个群集绘制隶属度函数表面的群集。
集群=2;
通过将曲面拟合到所有数据点的集群成员身份值,获取所选群集的成员资格函数。有关插值分散的3-D数据的更多信息,请参阅Griddata.
.
[X,Y] =网网格(0:05:1,0:05:1);Z = griddata(数据集(:1),数据集(:,2),U(集群:),X, Y);冲浪(X, Y, Z)
当你减少时指数
值,从最大完整群集成员资格到零集群成员身份的转换变得更加陡峭;也就是说,群集边界变得更加清晰。