This repository hosts the code for WMSDTransformer - a scikit-learn compatible python library, that lets you create TOPSIS rankings of alternatives, visualize rankings in WMSD space, and get suggestions for improvement actions.
WMSDTransformer uses PySCIPOpt to determine exact WMSD boundaries quickly. If you use conda, you should be fine performing the follwoing command (easier option):
conda install --channel conda-forge pyscipopt
If you use PyPI, then you will need a working installation of the SCIP Optimization Suite (harder option, but might run faster). Please, make sure that your SCIP installation works, before installing WMSDTransformer. For more details on how to install SCIP, please refer to the PySCIPOpt documentation.
After installing PySCIPOpt (or if you already have SCIP installed), you can install the other dependencies by running:
pip install -r requirements.txt
Once you have all the dependencies, you can install WMSDTransformer from source. To do so, clone the repository and run the following command in the root directory of the repository:
pip install .
import pandas as pd
from WMSDTransformer import WMSDTransformer
df = pd.read_csv("../data/students.csv", sep=';', index_col= 0)
students_transformer = WMSDTransformer("R") # Relative distance
students_transformer.fit(df, expert_range=[[0,100],[1,6],[1,6]])
students_transformer.transform(df)
students_transformer.show_ranking()
students_transformer.plot()
You can learn about our library using one of those notebooks in Google Colab: https://colab.research.google.com/drive/1umFWSW7hMTGI-3br8GUzaYYSIAADBj6p?usp=sharing https://colab.research.google.com/drive/1UvjUU6iUpkm0oiwi8v-Stn8lVxnAIpvX?usp=sharing https://colab.research.google.com/drive/1UiyJOv11c0YlMctPCSQ7-wZfGVvCixPH?usp=sharing https://colab.research.google.com/drive/1qzZ2g18oR9l2abD16SDbZRx1LoCl33sh?usp=sharing
If you use this project in your research, please consider citing the following papers: