📄 fcmdemo_codepad.m
字号:
%% Fuzzy C-means Clustering
% This demo illustrates performing fuzzy c-means clustering on
% 2-dimensional data.
%
% Copyright 2005 The MathWorks, Inc.
%%
% Clustering of numerical data forms the basis of many classification and
% system modeling algorithms. The purpose of clustering is to identify
% natural groupings of data from a large data set to produce a concise
% representation of a system's behavior.
%
%% What is Fuzzy c-means clustering?
%
% Fuzzy c-means (|fcm|) is a data clustering technique in which a dataset is
% grouped into n clusters with every datapoint in the dataset belonging to
% every cluster to a certain degree. For example, a certain datapoint that
% lies close to the center of a cluster will have a high degree of
% belonging or membership to that cluster and another datapoint that lies
% far away from the center of a cluster will have a low degree of belonging
% or membership to that cluster.
%
% The Fuzzy Logic Toolbox command line function, |fcm|, starts with an initial
% guess for the cluster centers, which are intended to mark the mean
% location of each cluster. The initial guess for these cluster centers is
% most likely incorrect. Next, |fcm| assigns every data point a membership
% grade for each cluster. By iteratively updating the cluster centers and
% the membership grades for each data point, |fcm| iteratively moves the
% cluster centers to the right location within a data set. This iteration
% is based on minimizing an objective function that represents the
% distance from any given data point to a cluster center weighted by that
% data point's membership grade.
%
%% What does this demo illustrate?
% This demo displays a GUI window and lets you try out various parameter
% settings for the fuzzy c-means algorithm and observe the clustering for
% 2-D data. You can choose a sample data set and an arbitrary number of
% clusters from the drop down menus on the right, and then click "Start" to
% start the fuzzy clustering process.
%
fcmdemo;
%%
% |fcm| is a command line function whose output is a list of n cluster centers
% and n membership grades for each data point. You can use the
% information returned by fcm to build a fuzzy inference system by creating
% membership functions to represent the fuzzy qualities of each cluster.
%
% Here is the underlying code that performs the clustering.
data = load ('fcmdemodata.dat'); % load some sample data
n_clusters = 3;
[center,U,obj_fcn] = fcm(data, n_clusters);
%%
% |n_clusters| refers to the number of clusters set by the user in the GUI
% and |data| refers to the dataset currently being visualized in the GUI.
% The function FCM performs the fuzzy c-means clustering on the data and in
% this case separates it into 3 clusters.
%
% You can also tune the 3 optional parameters for the FCM algorithm
% (exponent, maximum number of iterations and minimum amount of
% improvement) from the demo GUI and observe how the clustering process is
% consequently altered.
%
%%
% Once the clustering is done, you can select one of the clusters by
% clicking on it, and view the membership function surface by clicking the
% "Plot MF" button. To get a better viewing angle, click and drag inside
% the figure to rotate the MF surface.
%
displayEndOfDemoMessage(mfilename)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -