BruteAggreg {RankAggreg} | R Documentation |
Weighted Rank Aggregation via brute force algorithm
Description
Weighted rank aggregation of ordered lists is performed using the brute force approach, i.e. generating all possible ordered lists and finding the list with the minimum value of the objective function
Usage
BruteAggreg(x, k, weights = NULL, distance = c("Spearman", "Kendall"),
importance=rep(1,nrow(x)), standardizeWeights = TRUE)
Arguments
x |
a matrix of ordered lists to be combined (lists must be in rows) |
k |
size of the top-k list |
weights |
scores (weights) to be used in the aggregation process |
distance |
distance which "measures" the similarity between the ordered lists |
importance |
a vector of weights indicating the importance of each ordered list in x |
standardizeWeights |
boolean, default is true which standardizes weights to [0,1] |
Details
The function performs rank aggregation using the old-fashion brute force approach. This approach works for small problems only and should not be attempted if k is relatively large (k > 10). To generate all possible ordered lists, the permutation function from the gtools package is used. Both weighted and unweighted rank aggregation can be performed. Please refer to the documentation for RankAggreg function as the same constraints on x and index.weights apply to both functions.
Value
top.list |
Top-k aggregated list |
optimal.value |
the minimum value of the objective function corresponding to the top-k list |
distance |
distance used by the algorithm |
method |
method used: BruteForce |
importance |
importance vector used |
lists |
original lists to be combined |
weights |
scaled weights used in aggregation |
sample |
objective function values |
sample.size |
number of all possible solutions |
summary |
contains minimum and median values of sample |
Author(s)
Vasyl Pihur, Somnath Datta, Susmita Datta
References
Pihur, V., Datta, S., and Datta, S. (2007) "Weighted rank aggregation of cluster validation measures: a Monte Carlo cross-entropy approach" Bioinformatics, 23(13):1607-1615
See Also
Examples
require(gtools)
# rank aggregation without weights
x <- matrix(c("A", "B", "C", "D", "E",
"B", "D", "A", "E", "C",
"B", "A", "E", "C", "D",
"A", "D", "B", "C", "E"), byrow=TRUE, ncol=5)
(toplist <- BruteAggreg(x, 5))
# weighted rank aggregation
set.seed(100)
w <- matrix(rnorm(20), ncol=5)
w <- t(apply(w, 1, sort))
(toplist <- BruteAggreg(x,5,w,"Spearman")) # using the Spearman distance
(toplist <- BruteAggreg(x,5,w,"Kendall")) #using the Kendall distance
plot(toplist)