Take a fuzzy set in the form of a vector of membership degrees and a vector of numeric values that correspond to that degrees and perform a selected type of defuzzification, i.e. conversion of the fuzzy set into a single crisp value.
defuzz(degrees,
values,
type=c('mom', 'fom', 'lom', 'dee'))
A fuzzy set in the form of a numeric vector of membership degrees. Membership degrees must
correspond to crisp values in the values
argument.
Crisp values that correspond to memberhsip degrees in the degrees
vector.
Function assumes that the values are sorted in the ascending order.
Type of requested defuzzification method. The possibilities are:
'mom'
Mean of Maxima - maximum membership degrees are found and a mean of
values that correspond to that degrees is returned;
'fom'
First of Maxima - first value with maximum membership degree is
returned;
'lom'
Last of Maxima - last value with maximum membership degree is
returned;
'dee'
Defuzzification of Evaluative Expressions - method used by the
pbld
inference mechanism that combines the former three approaches
accordingly to the shape of the degrees
vector: If degrees
is
non-increasing then 'lom'
type is used, if it is non-decreasing then 'fom'
is applied, else 'mom'
is selected.
A crisp value computed from values
with respect to degrees
and a type of
defuzzification.
Function converts input fuzzy set into a crisp value. The definition of input fuzzy set is
provided by the arguments degrees
and values
. These arguments should be numeric
vectors of the same length, the former containing memberhsip degrees in the interval \([0,
1]\) and the latter containing the corresponding crisp values; the fuzzy set is interpreted as
values[i]
to have the memberhsip degree degrees[i]
. The values
vector is
assumed to be sorted in ascending order.
# NOT RUN {
defuzz(c(0, 0, 0, 0.1, 0.3, 0.9, 0.9, 0.9, 0.2, 0), 1:10, type='mom')
# }
Run the code above in your browser using DataLab