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