heuristic.ls.capa.ident {kappalab} | R Documentation |
Heuristic least squares capacity identification
Description
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.
Usage
heuristic.ls.capa.ident(n, mu, C, g, Integral="Choquet", maxiter = 500,
alpha = 0.01, epsilon = 1e-6)
Arguments
n |
Object of class |
mu |
Object of class |
C |
Object of class |
g |
Object of class |
Integral |
Object of class |
maxiter |
Maximum number of iterations. |
alpha |
Object of class |
epsilon |
Object of class |
Details
The algorithm is explained in details in the reference hereafter.
Value
The function returns a list structured as follows:
solution |
Object of class |
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. |
References
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.
See Also
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
.
Examples
## 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