semvec/pypi-packages huggingface dataset:
Topsis-Amrita-102017017 1.0.0
A command line tool to perform TOPSIS, a multi-criteria decision making technique
Requires Python: >=3.5
Keywords: python,TOPSIS,MCDM,MCDA,statistics,prescriptive analytics,cli

# TOPSIS
TOPSIS (Technique for Order of Preference by Similarity to Ideal Solution) is a decision-making technique applied in order to rank potential solutions on the basis of multiple criteria.

## Installation
This package requires [Python](https://www.python.org/downloads/) v3.5+ to run.
Use ```pip``` to install:
```
pip install topsis-amrita-102017017
```

## OS Compatibility
It should work on any Python implementation and operating system and is compatible with Python version 3.5 and upwards.

## Usage
Run ```topsis``` in the input file's directory as follows:
```
topsis <input_file_name> <weights> <impacts> <output_file_name>
```
For example,
```
topsis data.csv 1,1,1,1 +,-,+,- result.csv
```
Use quotation marks while including spaces in any argument:
```
topsis data.csv "1, 1, 1, 1" "+, -, +, -" result.csv
```

- Input and output file format should be .CSV
- First column in the input file should be the object name
- Input file must have at least 2 criteria, and all criterion values should be numeric
- Weights must be numeric and comma-separated. For example, ```0.25,0.25,1.0,0.25``` or ```"0.25,0.25,1.0,0.25"```.
- Impacts must be comma-separated with ```+``` for criteria that are to be maximised, and ```-``` for criteria that are to be minimised. For example, ```+,-,+,-``` or ```"+, -, +, -"```

## Example
Consider **input.csv**:
|Model|Corr|R2|RMSE|Accuracy|
|---|---|---|---|---|
|M1|0.79|0.62|1.25|60.89|
|M2|0.66|0.44|2.89|63.07|
|M3|0.56|0.31|1.57|62.87|
|M4|0.82|0.67|2.68|70.19|
|M5|0.75|0.56|1.3|80.39|

If we run the following command:
```
topsis input.csv "1, 1, 1, 1" "+, +, -, +" result.csv
```
we get a file named **result.csv** in the directory with an additional 2 columns containing the TOPSIS score and the rank of each object:
|Model|Corr|R2|RMSE|Accuracy|TOPSIS Score|Rank|
|---|---|---|---|---|---|---|
|M1|0.79|0.62|1.25|60.89|0.7722097345612788|2.0|
|M2|0.66|0.44|2.89|63.07|0.22559875426413367|5.0|
|M3|0.56|0.31|1.57|62.87|0.43889731728018605|4.0|
|M4|0.82|0.67|2.68|70.19|0.5238778712729114|3.0|
|M5|0.75|0.56|1.3|80.39|0.8113887082429979|1.0|

## License
MIT
batcore 0.1.1
BaTCoRe
Requires Python: >=3.7

# BaT CoRe: Baselines and testing framework for code reviewer recommendations



## Framework
This repository provides a framework for testing code review recommendation algorithms.


### Model creation
* **RecommenderBase** is a simple interface for a generic recommender algorithm. It has a `fit` method that trains model on a given data and a `predict` method that predicts reviewers for the given pulls.
* **BanRecommenderBase** is an in interface derived from RecommenderBase that implements by candidate filtering by their activity and ownership of the pull request

### Dataset creation

* **DatasetBase** is an interface that encapsulates any preprocessing needed for the dataset with a method `preprocess`. 
* **GerritLoader** is a class that deals with the data loader from the PullExtractor tool: loads it, reformats it, and performs some high-level preprocessing (empty data removal, bot removal, alias matching, user encoding)
* **StandardDataset** an implementation of DatasetBase. Receives GerritLoader object and performs all the preprocessing that can be needed for a specific model
* **SpecialDatasets** has implementations of datasets that are unique to a specific recommender
* **get_gerrit_dataset** helping function for dataset creation. Dataset for a specific model can be created as `get_gerrit_dataset(gerritloader_object, model_cls=RecommenderBase_class)`

* **StreamLoaderBase** is an interface that encapsulates iteration over data. The interface views data as a temporal stream of events and 
yields pairs of consecutive segments of the stream - train (any set of events), test (a pull request event)

### Testing of models
* **TesterBase** is class that has `test_recommender` method. This method takes `RecommenderBase` and `StreamLoaderBase` and iterates over the dataset, retrains model on new train data, and calculates its predictions.
* **RecTester** an implementation of TesterBase that calculates metrics standard for recommendation systems (mrr, accuracy, etc)
* **SimulTester**  an implementation of TesterBase that tester for project-based metrics on a simulated history (*Mirsaeedi, Rigby, 2020*). Metrics for the simulated testing can be found in `Counter`.

An example of usage can be found in `example.py`
## Baselines

Framework contains implementations of the following models (`baselines\models`)

* RevFinder, *Who Should Review My Code?, Thongtanunam et al., 2015*
* Tie, *Who Should Review This Change?, Xin Xia et al., 2015*
* ACRec, *Who Should Comment on This Pull Request?, Jiang et al. 2017*
* cHRec, *Automatically Recommending Peer Reviewers in Modern Code Review, Zanjani et al., 2015*
* CN, *What Can We Learn from Code Review and Bug Assignment?, Yu et al., 2015*
* RevRec, *Search-Based Peer Reviewers Recommendation in Modern Code Review, Ouni et al., 2016*
* WRC, *Automatically Recommending Code Reviewers Based on Their Expertise: An Empirical Comparison, Hannebauer et al., 2016*
* xFinder, *Assigning change requests to software developers, Kagdi et al., 2011*