基于模糊C均值的聚类分析

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

0.018067 0.01343 0.91889 0.016791 0.047375 0.026058
• Columns 13 through 18
0.95896
0.010641 0.012668 0.017729
0.024654
0.03003
ຫໍສະໝຸດ Baidu
0.014714
0.026868
0.015067
0.91928 0.90032 0.0081124 0.029539 0.94815 0.035832 0.045317 0.061914 0.80249 0.02370 0.020235 0.024333 0.91526 0.1411 0.013072
2949.16 1692.62 1680.67 2802.88 172.78 2063.54 1449.58 1651.52 341.59 291.02
3244.44 1867.5 1575.78 3017.11 3084.49 3199.76 1641.58 1713.28 3076.62 3095.68
662.42; 2108.97; 1725.1; 1984.98; 2328.65; 1257.21; 3405.12; 1570.38; 2438.63; 2088.95;
237.63 3077.78 2251.96; 1702.8 1639.79 2068.74; 1877.93 1860.96 1975.3; 867.81 2334.68 2535.1; 1831.49 1713.11 1604.68; 460.69 3274.77 2172.99; 2374.98 3346.98 975.31; 2271.89 3482.97 946.7; 1783.64 1597.99 2261.31; 198.83 3250.45 2445.08; 1494.63 2072.59 2550.51]; [CENTER2, U2, OBJ_FCN2]=FCM(A,4)
1571.17 104.8 499.85 2297.28 2092.62 1418.79 1845.59 2205.36
1731.04 3389.83 3305.75 3340.14 3177.21 1775.89 1918.81 3243.74
1735.33; 2421.83; 2196.22; 535.62; 584.32; 2772.9; 2226.49; 1202.69;
• Columns 7 through 12
0.01486
0.015919 0.88683 0.082394
0.070257
0.97808
0.931
0.017272 0.020349 0.031376
0.015668
0.94372
0.54463 0.0055741 0.2854 0.0068329 0.099713 0.009517
• Columns 19 through 24
0.041413 0.013279 0.84263 0.013456 0.074423 0.9069 0.041534 0.066363 0.013603 0.017119 0.92614 0.043141 0.10616 0.50326 0.24253 0.14805 0.97534 0.005104 0.0074904 0.012066 0.035002 0.8824 0.053315
步骤3 根据式(1)计算目标函数。 如果它小于某个确定的阈值,或它相对 上次价值函数值的改变量小于某个阈值, 则算法停止。 步骤4 用式(4)计算新的U阵。近回 步骤2。 当算法收敛时,就得到了各类的聚 类中心和各个样本对于各类的隶属度值, 从而完成了模糊聚类划分。
上述算法中,由于引入 的归一化 条件,在样本集不理想的情况下可能导 致结果不好。比如,如果某个野值样本 远离各类的聚类中心,本来它严格属于 各类的隶属度都很小,但由于归一化条 件的限制,将会使它对各类都有较大的 隶属度(比如两类情况下各类的隶属度都 是0.5),这种野值的存在将影响迭代的 最终结果。
得出聚类中心及隶属度矩阵:
• CENTER2 = 314.72 3194.7 2330.5 3250 1748.8 1733.2 1211.8 1879
2283.5 958.33 1927.7 2821.1
• U2 = • Columns 1 through 6
0.033201 0.97007 0.029789 0.056082 0.92626 0.071666
A=[1739.94 373.3 1756.77 864.45 222.85 877.88 1803.58 2352.12 401.3 363.34 1675.15 3087.05 1652 1647.31 3059.54 2031.66 1583.12 2557.04 3259.94 3477.95 2395.96; 2429.47; 1514.98; 2665.9; 2002.33; 3071.18; 2163.05; 1411.53; 2150.98; 2462.86;
先看上述矩阵的第一列,从中找出最大 值是0.64897 ,在第三行,由最大隶属 度原则可得:样本1属于第三类,以此类
• • • • • •
tmp = default_options; tmp(1:length(options)) = options; options = tmp; end nan_index = find(isnan(options)==1); options(nan_index) = default_options(nan_index); • if options(1) <= 1, • error('The exponent should be greater than 1!'); • end
• Columns 31 through 36
0.0077799 0.21467 0.020132 0.96956 0.0019406 0.0098372 0.010602 0.043571 0.032947 0.007787 0.99341 0.96934 0.95265 0.15798 0.89416 0.0094531 0.0029726 0.01304 0.02897 0.58378 0.052762 0.013204 0.001678 0.0077779
• if i > 1, • if abs(obj_fcn(i) - obj_fcn(i-1)) < min_impro, break; end, • end • end • iter_n = i;% • obj_fcn(iter_n+1:max_iter) = [];
调用上述程序建立起来的模糊聚 类函数,得到以下运行程序:
0.029521 0.0058525 0.047123 0.020886 0.017596 0.020368 0.64897 0.0088617 0.84987 0.11948 0.023937 0.076162 0.28831 0.015217 0.073223 0.80355 0.032208 0.8318
4.8339e+006 4.8339e+006 4.8339e+006 4.8339e+006 4.8339e+006 4.8339e+006 4.8339e+006 4.8339e+006 4.8339e+006
4.8339e+006 4.8339e+006 4.8339e+006 4.8339e+006 4.8339e+006
程序
• if nargin ~= 2 & nargin ~= 3, • error('Too many or too few input arguments!'); • end • data_n = size(data, 1); • in_n = size(data, 2);
• default_options = [2;%u矩阵分割指数 100; %迭代的最大次数 1e-5;%改进的最小值 1]; %迭代时显示信息 • if nargin == 2, • options = default_options; • else • if length(options) < 4,
• end
• • • • •
expo = options(1);%u矩阵指数 max_iter = options(2);%迭代最大次数 min_impro = options(3);%改进的最小值 display = options(4); obj_fcn = zeros(max_iter, 1);%目标函 数的建立 • U = initfcm(cluster_n, data_n); %初始 化模糊分割矩阵
• Columns 37 through 39
0.022453 0.97193 0.048398 0.022367 0.0061355 0.028522 0.80825 0.0083348 0.23214 0.14693 0.013595 0.69094
• OBJ_FCN2 =
1.9285e+007 1.352e+007 8.2142e+006 5.4477e+006 4.9316e+006 4.85e+006 4.8367e+006 4.8344e+006 4.834e+006
基于模糊C均值的聚类分析
1 模糊c均值聚类(FCM)方法
模糊C均值聚类(FCM)方法是一种在已 知聚类数的情况下,利用隶属度函数和迭 代算法将有限的数据集分别聚类的方法。 其目标函数为:
式中, 为样本数; 为聚类数; 为第 个 样本相对于第 个聚类中心的隶属度; 为
第 个类别的聚类中心; 为样本到聚类 中心的欧式距离。聚类的结果使目标函 数 最小,因此,构造如下新的目标函 数:
0.029278
• Columns 25 through 30
0.068372 0.026621 0.96861 0.96367 0.98434 0.006666 0.036258 0.03739 0.0060731 0.0085095 0.0033354 0.0069366 0.14864 0.86903 0.0092717 0.011597 0.0048348 0.95254 0.74673 0.066961 0.016046 0.016226 0.007487 0.033862
(2)
这里 , =1,⋯ ,n,是等式的n个约束 式的拉格朗日乘子。对所有输入参量求 导,使式(1)达到最小的必要条件为:
(3)
(4)
由上述两个必要条件,模糊c均值聚类算 法是一个简单的迭代过程。在批处理方 式运行时,FCM采用下列步骤确定聚类中 心 和隶属矩阵 U: 步骤1 用值在0,1间的随机数初始 化隶属矩阵U,使其满足式(2)中的约束 条件。 步骤2 用式(3)计算c个聚类中心 , i=1,⋯ ,c。
%以下为主循环: • for i = 1:max_iter, • [U, center, obj_fcn(i)] = stepfcm(data, U, cluster_n, expo); • if display, • fprintf('Iteration count = %d, obj. fcn = %f\n', i, obj_fcn(i)); • end %检查终止情况:
此时,目标函数在4.8339e+006处收敛, 算法结速
由得出的聚类中心矩阵及隶属度矩阵就 可以进行分类了:聚类中心矩阵有4行, 每一行代表一类及四类,3列,每一列代 表一种颜色;由隶属度矩阵中Columns 1 through 6为例:
0.033201 0.97007 0.029789 0.056082 0.92626 0.071666 0.029521 0.0058525 0.047123 0.020886 0.017596 0.020368 0.64897 0.0088617 0.84987 0.11948 0.023937 0.076162 0.28831 0.015217 0.073223 0.80355 0.032208 0.8318
相关文档
最新文档