FCM聚类模型matlab代码
时间: 2023-06-27 20:02:03 浏览: 179
FCM聚类算法matlab源代码
5星 · 资源好评率100%
以下是一份使用FCM聚类模型的MATLAB代码示例:
```matlab
% 加载数据
load fisheriris;
% 准备数据
data = meas(:,1:2);
% 设置参数
options = [2, 100, 1e-5, 0];
% 运行FCM聚类
[centers,U] = fcm(data, 3, options);
% 可视化结果
figure;
plot(data(:,1), data(:,2), 'o');
hold on;
maxU = max(U);
index1 = find(U(1,:) == maxU);
index2 = find(U(2,:) == maxU);
index3 = find(U(3,:) == maxU);
line(data(index1,1), data(index1,2), 'linestyle', 'none', 'marker', 'o', 'color', 'g');
line(data(index2,1), data(index2,2), 'linestyle', 'none', 'marker', 'o', 'color', 'r');
line(data(index3,1), data(index3,2), 'linestyle', 'none', 'marker', 'o', 'color', 'b');
plot(centers(1,1), centers(1,2), 'x', 'linewidth', 2, 'markersize', 8, 'color', 'k');
plot(centers(2,1), centers(2,2), 'x', 'linewidth', 2, 'markersize', 8, 'color', 'k');
plot(centers(3,1), centers(3,2), 'x', 'linewidth', 2, 'markersize', 8, 'color', 'k');
```
在这个示例中,我们使用了经典的鱼类数据集(Fisher Iris Dataset),其中包含了三种不同品种的鱼类,每个样本都有4个属性。我们只使用其中的前两个属性,并尝试将数据集聚类成3个簇。
在代码中,我们首先通过 `meas(:,1:2)` 选取了前两个属性,然后设置了FCM聚类的参数,其中包括聚类数量、最大迭代次数、收敛精度等。最后调用了 `fcm()` 函数运行了聚类,得到了聚类中心和模糊矩阵。
接下来,我们将聚类结果可视化,其中绿色、红色、蓝色分别表示三个簇,黑色的 `x` 表示聚类中心。
注意,这只是FCM聚类的一个简单示例,实际应用中需要根据具体情况选择合适的参数和数据预处理方法。
阅读全文