This function executes the Preference Relations weighted rank aggregation method of Desarkar et al., 2016. The method is implemented in accordance to the following paper:

  • M.S. Desarkar, S. Sarkar, P. Mitra, "Preference relations based unsupervised rank aggregation for metasearch", Expert Systems with Applications, vol. 49, pp. 86-98, 2016.

The Preference Relations algorithm belongs to the weighted rank aggregation methods. It employs exploratory analysis to automatically identify the expert voters in an unsupervised fashion. Then, it assigns higher weights to the voters who were identified as experts, thus boosting the scores of their submitted elements.

The method constructs a preference relations graph which contains the individual elements as vertices and their weights as edges.

Function Definitions

void PrefRel(const char inf[], const char relf[], const int evpts,
     const char ranstr[], const char out[], const float alpha, const float beta)

and

__declspec(dllexport) void __cdecl PrefRel(const char inf[], const char relf[], const int evpts,
     const char ranstr[], const char out[], const float alpha, const float beta)

Implementation Files

Input arguments

  • const char inf[]: The path of the input file that stores the preference lists to be aggregated.
  • const char relf[]: The path of the input file that stores the element relevance judgments.
  • const int evpts: the elements in the aggregate list on which the evaluation measures (i.e. Precision, and nDCG) will be computed.
  • const char ranstr[]: A string that is embedded in the names of the output files. Used when FLAGR is compiled as a shared library.
  • const char out[]: The file system location where the output file with the aggregate list will be stored.
  • const float alpha: The \(\alpha\) hyper-parameter.
  • const float beta: The \(\beta\) hyper-parameter.

Description
The input parameters are parsed and stored in a special C structure called UserParams that is defined in src/InputParams.h. Then, UserParams is passed to the execution driver and the rank aggregation process starts.