Metadata-Version: 2.1
Name: TOPSIS-Apurv-101803594
Version: 1.0.0
Summary: TOPSIS Implementation
Home-page: https://github.com/
Author: Apurv Madaan
Author-email: madaanapurv@gmail.com
License: UNKNOWN
Platform: UNKNOWN
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.1
Classifier: Programming Language :: Python :: 3.2
Classifier: Programming Language :: Python :: 3.3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Description-Content-Type: text/markdown
Requires-Dist: numpy (>=1.18.1)
Requires-Dist: pandas (>=1.0.5)
Provides-Extra: dev
Requires-Dist: pytest (>=3.7) ; extra == 'dev'


# TOPSIS - Apurv Madaan - 101803594
Submitted By: Apurv Madaan(101803594)

## What is TOPSIS?
Technique for Order Preference by Similarity to Ideal Solution (TOPSIS) originated in the 1980s as a multi-criteria decision making method. TOPSIS chooses the alternative of shortest Euclidean distance from the ideal solution, and greatest distance from the negative-ideal solution.
## Installation

Use the package manager [pip](https://pip.pypa.io/en/stable/) to install **TOPSIS**.
Dependencies and devDependencies will be installed automatically.

```bash
pip install TOPSIS-Apurv-101803594
```

## Usage
##### 1) As a Library:
Import in your python File:
```python
from TOPSIS import topsis
topsis()
```
Run the python file by typing in terminal/cmd:
```sh
python nameOfFile.py nameOfDataFile.csv "weights" "impacts" nameOfOutputFile.csv
```
##### 2) Using Command Promt:

Command line args:
- name of input File(csv format)
- weights(as a string)
- impacts(as a string)
- name of output file(csv format)
Eg. 
```bash
topsis data.csv "1,1,1,1" "+,+,-,+" output.csv
```

# Input file (data.csv)
The decision matrix should be constructed with each row representing a Model alternative, and each column representing a criterion like Accuracy, R2, Root Mean Squared Error, Correlation, and many more.
|Model|Corr|Rseq|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   |
Weights (`weights`) is not already normalised will be normalised later in the code.

Information of benefit positive(+) or negative(-) impact criteria should be provided in impacts.
# Output file (output.csv)
|Model|Corr|Rseq|RMSE|Accuracy|Topsis_score       |Rank|
|-----|----|----|----|--------|-------------------|----|
|M1   |0.79|0.62|1.25|60.89   |0.7722097345612788 |2   |
|M2   |0.66|0.44|2.89|63.07   |0.22559875426413367|5   |
|M3   |0.56|0.31|1.57|62.87   |0.43889731728018605|4   |
|M4   |0.82|0.67|2.68|70.19   |0.5238778712729114 |3   |
|M5   |0.75|0.56|1.3 |80.39   |0.8113887082429979 |1   |
The output file contains columns of input file along with two additional columns having **Topsis_score** and **Rank**
## License
[MIT](https://choosealicense.com/licenses/mit/)







