L.X. Wang and J.M. Mendel. Generating Fuzzy Rules by Learning
from Examples. IEEE Trans. Syst. Man. Cybern., Vol. 22, No. 6.
1992.
You might find some help in:
http://www.infm.ulst.ac.uk/~jgc/papers/fz1094.a but be careful to avoid
my attempts to link fuzzy rule-bases with classical propositional logic
-- it's not all that helpful, is probably wrong, and the diagrams for,
e.g., relations, are impossible to read.
Some fuzzy rule-base software which uses employs the Wang-Mendel
training rule is described in:
http://www.infm.ulst.ac.uk/~jgc/papers/fzsm2194.a
Attempt at quick explanation.
Let our fuzzy rule-based approximator be mapping R^p -> R i.e. input x=
(x1, x2, ... xp)^T -> y, output. We have a set of n training pairs:
{x^i, y^i} i=1,n -- where superscript i denotes training datum i.
Let xj (input dimension j) be partitioned into Kj fuzzy sets; likewise y
into Ky fuzzy sets.
1. Fuzzy rule-base. The input universe (subset of R^p) is thus
partitioned into Kx= K1*K2...*Kp `product' fuzzy sets, and the output,
as above, into Ky. The fuzzy rule-base consists of a fuzzy relation,
i.e. links with memberships, between the input sets (Kx of them) and the
output sets (Ky of them). Thus, there are potentially K= Kx*Ky rules.
Initialise all rules to zero degree/membership, mk=0, k= 1, K.
2. Training using Wang-Mendel rule. For each pair {x^i, y^i} i=1,n, for
x, for each dimension j, find the *maximum* membership for xj^i in
partitioning j, mj(xj^i). This chooses a *single* `product' set, k, and
x^i's membership is mx(x^i)= product j=1, p { mj(xj^i)}. Likewise for y:
my(y). Now, the degree/membership of this `firing' of the rule is m'k=
mx(.)*my(.).
If m'k > mk (current), mk= m'k.
[Note: only *one* input product set, and only one output, are selected,
those of maximum membership -- some argue that this causes loss of
information]
3. Application. Input vector x'.
Fuzzify x': Find the membership mxkx(x') of x' in (each) product
antecedent set kx= 1, Kx. Let the rule-base link the set kx with
consequent set ky, with degree mkx (from training, 2.). The *overall*
degree of implication of consequent ky is mky= mxkx(x')*mkx.
Defuzzify: Take a weighted sum of mky*centroid(ky), for each ky.
[There are alternative defuzzifications, but this is the one contained
in the paper]
Hope this helps -- last weekend, I converted my fuzzy rule-base software
from C to Java, so I think (hope!) the algorithm is clear in my mind;
but maybe the foregoing indicates otherwise ;-)
Best regards,
Jon Campbell
-- Jonathan G Campbell Univ. Ulster Magee College Derry BT48 7JL N. Ireland +44 1504 375367 JG.Campbell@ulst.ac.uk http://www.infm.ulst.ac.uk/~jgc/
############################################################################ 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