fuzzyfuns {sets} | R Documentation |
Fuzzy membership and set creator functions.
charfun_generator(FUN, height = 1) fuzzy_tuple(FUN = fuzzy_normal, n = 5, ..., universe = NULL, names = NULL) is.charfun_generator(x) fuzzy_normal(mean = NULL, sd = 1, log = FALSE, height = 1, chop = 0) fuzzy_two_normals(mean = NULL, sd = c(1,1), log = c(FALSE, FALSE), height = 1, chop = 0) fuzzy_bell(center = NULL, cross = NULL, slope = 4, height = 1, chop = 0) fuzzy_sigmoid(cross = NULL, slope = 0.5, height = 1, chop = 0) fuzzy_trapezoid(corners = NULL, height = c(1,1), return_base_corners = TRUE) fuzzy_triangular(corners = NULL, height = 1, return_base_corners = TRUE) fuzzy_cone(center = NULL, radius = 2, height = 1, return_base_corners = TRUE) fuzzy_normal_gset(mean = NULL, sd = 1, log = FALSE, height = 1, chop = 0, universe = NULL) fuzzy_two_normals_gset(mean = NULL, sd = c(1,1), log = c(FALSE, FALSE), height = 1, chop = 0, universe = NULL) fuzzy_bell_gset(center = NULL, cross = NULL, slope = 4, height = 1, chop = 0, universe = NULL) fuzzy_sigmoid_gset(cross = NULL, slope = 0.5, height = 1, chop = 0, universe = NULL) fuzzy_trapezoid_gset(corners = NULL, height = c(1,1), universe = NULL, return_base_corners = TRUE) fuzzy_triangular_gset(corners = NULL, height = 1, universe = NULL, return_base_corners = TRUE) fuzzy_cone_gset(center = NULL, radius = 2, height = 1, universe = NULL, return_base_corners = TRUE)
x |
An R object. |
n |
Positive integer indicating the number of sets to be created, or integer vector of location paramters used to create the sets. |
FUN |
Function to be used for creating a membership function. Needs to be vectorized, i.e., is expected to take a vector of set elements and to return a vector of numeric values. |
height |
Numeric value in the unit interval specifying the height of the set resulting from applying the membership function to the universe, i.e., the maximum value to which the values will be scaled to. |
chop |
Threshold value below which the membership function is truncated, i.e., has a value of 0. |
center, mean |
Numeric mean value(s) used for the resulting membership function. |
sd |
Numeric scale factor(s) (standard deviation(s)) used for the resulting membership function. |
radius |
Double added/subtracted from center to get the
base line corners of the cone. |
log |
Logical (vector), indicating whether normal or log-normal distributions should be used. |
cross |
Double indicating the cross-over point for the sigmoidal distribution. |
slope |
Double indicating the slope at the cross-over point. |
corners |
Double values (vector of length four) indicating the abscisses of the four corners of the resulting trapezoid. |
return_base_corners |
Logical indicating whether membership grades for the base line corner elements should be returned as small values instead of 0. Otherwise, if a set is created from the memberships, the corner elements would be removed from the set. |
universe |
Universal set used for computing the memberships grades. |
names |
optional character vector of component labels for the return value. |
... |
Further arguments passed to FUN . |
These functions can be used to create sets with certain membership patterns.
The core functions are function generators, taking parameters
and returning a corresponding fuzzy function (i.e., with values in the
unit interval). All of them are normalized, i.e., scaled to have a
maximum value of height
(default: 1):
fuzzy_normal
dnorm
.fuzzy_two_normals
fuzzy_bell
fuzzy_sigmoid
fuzzy_trapezoid
corners
elements and two
height
values for the second and third corner (the heights of
the first and fourth corner being fixed at 0).fuzzy_triangular
fuzzy_cone
fuzzy_triangular
,
defining an isosceles triangle with corners (element, membership degree):
(center
- radius
, 0),
(center
, height
), and
(center
+ radius
, 0).
charfun_generator
takes a vectorized function as argument,
returning a function normalized by height
.
The fuzzy_foo_gset
functions directly generate
generalized sets from fuzzy_foo
, using the values defined by
universe
, sets_options("universe")
, or seq(0, 20, by
= 0.1)
(in that order, whichever is not NULL
).
fuzzy_tuple
generates a sequence of n
sets based on any of the generating functions (except
fuzzy_trapezoid
and fuzzy_triangular
). The chosen
generating function FUN
is called with n
different
values chosen along the universe
passed to the
first argument, thus varing the position or the resulting graph.
For charfun_generator
, a generating function
taking an argument list of parameters, and returning a membership
function, mapping elements to membership values (from of the unit
interval).
For fuzzy_tuple
, a tuple of n
fuzzy sets.
For is.charfun_generator
, a logical.
For fuzzy_foo_gset
, a fuzzy set.
For the other functions, a membership function.
set
, gset
, and tuple
for the
set types, and plot.gset
for the available plot functions.
## creating a fuzzy normal function N <- fuzzy_normal(mean = 0, sd = 1) N(-3:3) ## create a fuzzy set with it gset(charfun = N, universe = -3:3) ## same using wrapper fuzzy_normal_gset(universe = -3:3) ## creating a user-defined fuzzy function fuzzy_poisson <- charfun_generator(dpois) gset(charfun = fuzzy_poisson(10), universe = seq(0, 20, 2)) ## creating a series of fuzzy normal sets fuzzy_tuple(fuzzy_normal, 5) ## creating a series of fuzzy cones with specific locations fuzzy_tuple(fuzzy_cone, c(2,3,7))