Cluster Quasi-Random Data Using Fuzzy C-Means Clustering - MATLAB & Simulink.

Cluster Quasi­Random Data Using Fuzzy C­
Means Clustering
This example shows how FCM clustering works using quasi­random two­dimensional data.
Load the data set and plot it.
load fcmdata.dat
plot fcmdata :, ,fcmdata :,

,'o'

Next, invoke the command­line function, fcm, to find two clusters in this data set until the objective function is no longer
decreasing much at all.
[center,U,objFcn] = fcm fcmdata,

Iteration count = 
Iteration count = 
Iteration count = 
Iteration count = 
Iteration count = 
Iteration count = 
Iteration count = 
Iteration count = 

Iteration count = 
Iteration count = 
Iteration count = 
Iteration count = 

;

, obj. fcn =  . 0
, obj. fcn =  .
0
, obj. fcn =  .
, obj. fcn =  .
, obj. fcn =  .
, obj. fcn =  . 0 0
, obj. fcn =  .
0
, obj. fcn =  .
, obj. fcn =  .
0
0, obj. fcn =  .

, obj. fcn =  .
, obj. fcn =  .
0

center contains the coordinates of the two cluster centers, U contains the membership grades for each of the data points,
and objFcn contains a history of the objective function across the iterations.
The fcm function is an iteration loop built on top of the following routines:
initfcm ­ initializes the problem
distfcm ­ performs Euclidean distance calculation
stepfcm ­ performs one iteration of clustering
To view the progress of the clustering, plot the objective function.
figure

plot objFcn
title 'Objective Function Values'
xlabel 'Iteration Count'
ylabel 'Objective Function Value'

Finally, plot the two cluster centers found by the fcm function. The large characters in the plot indicate cluster centers.
maxU = max U ;

index  = find U ,:  == maxU ;
index  = find U ,:  == maxU ;
figure
line fcmdata index , , fcmdata index , , 'linestyle',...
                        'none','marker', 'o','color','g'
line fcmdata index , ,fcmdata index , ,'linestyle',...
                        'none','marker', 'x','color','r'
hold on
plot center , ,center , ,'ko','markersize', ,'LineWidth',
plot center , ,center , ,'kx','markersize', ,'LineWidth',

Note: Every time you run this example, the fcm function initializes with different initial conditions. This behavior swaps the
order in which the cluster centers are computed and plotted.

See Also
fcm

More About
Fuzzy Clustering