?? fcmdemo_codepad.html
字號:
<html xmlns:mwsh="http://www.mathworks.com/namespace/mcode/v1/syntaxhighlight.dtd"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <!--This HTML is auto-generated from an M-file.To make changes, update the M-file and republish this document. --> <title>Fuzzy C-means Clustering</title> <meta name="generator" content="MATLAB 7.1"> <meta name="date" content="2005-06-15"> <meta name="m-file" content="fcmdemo_codepad"> <link rel="stylesheet" type="text/css" href="../../../matlab/demos/private/style.css"> </head> <body> <div class="header"> <div class="right"><a href="matlab:fcmdemo">Run in the Command Window</a></div> </div> <div class="content"> <h1>Fuzzy C-means Clustering</h1> <introduction> <p>This demo illustrates performing fuzzy c-means clustering on 2-dimensional data.</p> </introduction> <h2>Contents</h2> <div> <ul> <li><a href="#2">What is Fuzzy c-means clustering?</a></li> <li><a href="#3">What does this demo illustrate?</a></li> </ul> </div> <p>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. </p> <h2>What is Fuzzy c-means clustering?<a name="2"></a></h2> <p>Fuzzy c-means (<tt>fcm</tt>) 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. </p> <p>The Fuzzy Logic Toolbox command line function, <tt>fcm</tt>, 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, <tt>fcm</tt> assigns every data point a membership grade for each cluster. By iteratively updating the cluster centers and the membership grades for each data point, <tt>fcm</tt> 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. </p> <h2>What does this demo illustrate?<a name="3"></a></h2> <p>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. </p><pre class="codeinput">fcmdemo;</pre><img vspace="5" hspace="5" src="fcmdemo_codepad_01.png"> <p><tt>fcm</tt> 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. </p> <p>Here is the underlying code that performs the clustering.</p><pre class="codeinput">data = load (<span class="string">'fcmdemodata.dat'</span>); <span class="comment">% load some sample data</span>n_clusters = 3;[center,U,obj_fcn] = fcm(data, n_clusters);</pre><pre class="codeoutput">Iteration count = 1, obj. fcn = 17.900154Iteration count = 2, obj. fcn = 13.891466Iteration count = 3, obj. fcn = 13.211500Iteration count = 4, obj. fcn = 11.377226Iteration count = 5, obj. fcn = 10.164428Iteration count = 6, obj. fcn = 10.004708Iteration count = 7, obj. fcn = 9.841849Iteration count = 8, obj. fcn = 8.566988Iteration count = 9, obj. fcn = 5.683575Iteration count = 10, obj. fcn = 5.025842Iteration count = 11, obj. fcn = 5.002571Iteration count = 12, obj. fcn = 5.001923Iteration count = 13, obj. fcn = 5.001901Iteration count = 14, obj. fcn = 5.001900</pre><p><tt>n_clusters</tt> refers to the number of clusters set by the user in the GUI and <tt>data</tt> 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. </p> <p>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. </p> <p>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. </p> <p class="footer">Copyright 2005 The MathWorks, Inc.<br> Published with MATLAB® 7.1<br></p> </div> <!--##### SOURCE BEGIN #####%% 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 datan_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)##### SOURCE END #####--> </body></html>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -