heuristic.ls.capa.ident {kappalab} | R Documentation |
Creates an object of class capacity
or game
by means of the heuristic algorithm proposed by Grabisch (1995). More
precisely, given a set of data under the form:
datum=(score on criterion 1, ..., score on criterion
n, overall score), this function heuristically determines a capacity
that should be close to minimizing the sum of squared errors between overall scores
as given by the data and the output of the Choquet integral for those
data. See reference hereafter for more details.
heuristic.ls.capa.ident(n, mu, C, g, Integral="Choquet", maxiter = 500, alpha = 0.01, epsilon = 1e-6)
n |
Object of class numeric containing the
number of elements of the set on which the object of class
Mobius.capacity is to be defined. |
mu |
Object of class capacity containing the initial capacity. It
should be initialized to the equidistributed capacity. |
C |
Object of class matrix containing the
n -column criteria matrix. Each line of this matrix
corresponds to a vector of the form: (score on criterion 1, ..., score on
criterion n). |
g |
Object of class numeric containg the global
scores associated with the vectors given in the criteria matrix. |
Integral |
Object of class character indicating whether the
model is based on the asymmetric Choquet integral (Integral =
"Choquet" ) or the symmetric Choquet integral (Integral =
"Sipos" ). |
maxiter |
Maximum number of iterations. |
alpha |
Object of class numeric containing the coefficient of the
gradient (multiplicative coefficient of the partial derivative). Its value
lies in [0,1]. The higher the value, the larger the move of the capacity at
each iteration. |
epsilon |
Object of class numeric used for defining a stopping
criterion. Iterations are stopped if one of the following cases happen: 1)
itmax iterations have been performed 2) the error criterion is growing up 3)
normax < epsilon, where normax is the maximum absolute normalized model error,
i.e., the maximum over all data of the quantity |e|/outmax, where e=desired
output - model output, and outmax is the highest value of the absolute value
of the model output |
The algorithm is explained in details in the reference hereafter.
The function returns a list structured as follows:
solution |
Object of class capacity if the solution is
montone or of class game otherwise. |
n.iter |
Number of iterations taken by the algorithm. |
residuals |
Differences between the provided global evaluations and those returned by the obtained model. |
mse |
Mean square error between the provided global evaluations and those returned by the obtained model. |
M. Grabisch (1995), A new algorithm for identifying fuzzy measures and its application to pattern recognition, Int. Joint Conf. of the 4th IEEE Int. Conf. on Fuzzy Systems and the 2nd Int. Fuzzy Engineering Symposium, Yokohama, Japan, 145-150.
capacity-class
,
least.squares.capa.ident
,
lin.prog.capa.ident
,
mini.var.capa.ident
,
mini.dist.capa.ident
,
ls.sorting.capa.ident
,
ls.ranking.capa.ident
,
entropy.capa.ident
.
## number of criteria n <- 4 ## the number of alternatives n.a <- 1000 ## a randomly generated 5-criteria matrix C <- matrix(rnorm(n*n.a,10,2),n.a,n) ## the corresponding global scores g <- numeric(n.a) ## generate a random capacity x <- runif(2^n-1) for (i in 2:(2^n-1)) x[i] <- x[i] + x[i-1] mu <- normalize(capacity(c(0,x))) for (i in 1:n.a) g[i] <- Choquet.integral(mu,C[i,]) ## the initial capacity ## here the uniform capacity mu.in <- as.capacity(uniform.capacity(n)) ## the solution hlsc <- heuristic.ls.capa.ident(n,mu.in,C,g) mu.sol <- hlsc$solution ## the difference between mu and mu.sol mu@data - mu.sol@data hlsc