The basic requirement is that the final system works, so there can be a lot of
ad hoc methodology used. If defuzzification is to take place, the precise shape
of the membership functions depends somewhat on the defuzzification method to
be used. The requirements are also somewhat different for fuzzy control than
for more general purpose fuzzy reasoning applications.
Membership functions convert a scalar number into a grade of membership for a
linguistic term such as Fast or Small which describe a number. The first thing
is to decide how many terms you will need to describe each number. Most people
use a minimum of three and a maximum of five, although there are numerous
exceptions to this. Now define what linguistic terms you will use to describe
each numeric quantity; for speed, you might choose Slow, Medium and Fast. Now
you are ready to define the membership functions for these terms.
We next decide on a general shape for the functions. Most fuzzy control people
use triangular membership functions, although flat-topped trapezoidal functions
are also used. For applications when the output is categorical, as in problems
of classification, flat-topped membership functions may be superior. It is
often good to have membership functions for adjacent terms cross at the 0.5
truth value level; for classification applications, I personally prefer to have
flat-topped membership functions in which at the points where one membership
function starts down from 1, the adjacent membership function just reaches 1,
although this is a minority opinion.
Now you are ready to interrogate an expert if you have one; if you don't, and
sometimes even if you do, you are the expert by default. For each linguistic
term, decide on the value (or range of values) for which you are sure that the
term is applicable with truth value one. Then decide on the values (upper and
lower) for which you are sure that the truth value of that term is zero. Now
just draw straight lines between these points, giving you a triangle or
trapezoid. If you are doing control, we are OK so far; but if you are doing
classification, S-shaped functions (piecewise quadratic) may be better. If you
want a wider range of non-zero truth values, you might try a Gaussian (normal)
membership function; in that case, make your Gaussian function intersect the
triangular (or trapezoidal) first pass at the 0.5 truth value point.
In any event, fine tuning will almost certainly have to be done.
There are also methods for doing all this automatically from data, but I am
distrustful of them.
Good luck and a happy New Year - William Siler.
############################################################################
This message was posted through the fuzzy mailing list.
(1) To subscribe to this mailing list, send a message body of
"SUB FUZZY-MAIL myFirstName mySurname" to listproc@dbai.tuwien.ac.at
(2) To unsubscribe from this mailing list, send a message body of
"UNSUB FUZZY-MAIL" or "UNSUB FUZZY-MAIL yoursubscription@email.address.com"
to listproc@dbai.tuwien.ac.at
(3) To reach the human who maintains the list, send mail to
fuzzy-owner@dbai.tuwien.ac.at
(4) WWW access and other information on Fuzzy Sets and Logic see
http://www.dbai.tuwien.ac.at/ftp/mlowner/fuzzy-mail.info
(5) WWW archive: http://www.dbai.tuwien.ac.at/marchives/fuzzy-mail/index.html