Metadata-Version: 2.1
Name: TOPSIS-IshaanMarjara-101853028
Version: 0.0.1
Summary: TOPSIS Implementation
Home-page: UNKNOWN
Author: Ishaan Marjara
Author-email: 
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

## 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-IshaanMarjara-101853028
```

## 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/)







