BruteAggreg: Weighted Rank Aggregation via brute force algorithm

Description Usage Arguments Details Value Author(s) References See Also Examples

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

1
2
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

RankAggreg

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
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)

Example output

Loading required package: gtools
The optimal list is: 
        A B D C E

  Algorithm:   BruteForce
  Distance:    Spearman
  Score:       4 
The optimal list is: 
        B A D C E

  Algorithm:   BruteForce
  Distance:    Spearman
  Score:       0.8934616 
The optimal list is: 
        A B D C E

  Algorithm:   BruteForce
  Distance:    Kendall
  Score:       0.05868012 

RankAggreg documentation built on July 8, 2020, 6:20 p.m.