Metadata-Version: 2.1
Name: ERTool
Version: 0.1.5
Summary: A Python package for simple and efficient implementation of Evidential Reasoning (ER) methods.
Home-page: UNKNOWN
Author: Tongyue Shi
Author-email: tyshipku@gmail.com
License: UNKNOWN
Description: # ERTool
        
        **ERTool** is a Python package designed for simple and efficient implementation of Evidential Reasoning (ER) methods. It aims to provide an intuitive and flexible approach for integrating ER processes, particularly suitable for data analysis and decision support systems.
        
        ## Features
        
        - Easy-to-use implementation of Evidential Reasoning.
        - Efficient in handling complex ER tasks.
        - Flexible interface suitable for various application scenarios.
        
        ## Installation
        
        You can install **ERTool** directly from PyPI using pip:
        
        ```
        pip install ertool
        ```
        
        ## Using Instruction
        
        ```
        ertool.er.er_algorithm(W, DBF, numOfChildren, numOfGrades) -> B
        ```
        
        #### Introduction to Input Variables
        - ***W***: A one-dimensional numpy array of floats. It represents the weights of each child node. These weights are used in the algorithm to adjust the influence of each child node.
        
        - ***DBF***: A two-dimensional numpy array of floats. It stands for "Degrees of Belief" and is one of the main inputs to the algorithm, used to represent the initial belief degrees for each category or grade.
        - ***numOfChildren***: An integer. It indicates the number of child nodes. In the DBF array, this typically corresponds to the number of rows.
        - ***numOfGrades***: An integer. It indicates the number of categories or grades. In the DBF array, this typically corresponds to the number of columns.
        
        #### Introduction to Output Values
        - ***B Array***: Upon completion of the algorithm, the B array is the final calculation result. It reflects the degrees of belief that have been weighted and normalized.
        - ***False (Boolean)***: It returns B Array if the algorithm successfully executes and completes all computations. If any error is encountered during execution (e.g., division by zero), it returns False.
        
        
        ## Quick Start
        Here is a basic usage example of **ERTool**.
        
        Consider a medical scenario. 
        There are three medical experts (weights 10, 8, and 5). For one patient, the three experts rated the different likelihood of the diagnosis of cold, common pneumonia, COVID-19, and uncertain. As shown in the table.
        
        | Experts & Diseases | Expert 1 | Expert 2 | Expert 3 |
        | :---:        |    :----:   |  :---: |  :---: | 
        | Cold | 90% | 0 | 0 |
        | Common Pneumonia |0 | 90% | 0|
        | COVID-19 | 0 | 0 | 90% |
        | Uncertain | 10% | 10% | 10% |
        
        In this case, the ***numOfChildren*** is 3 (the number of experts) and the ***numOfGrades*** is 4 (cold, common pneumonia, COVID-19, and uncertain).
        
        The ***W*** array is the weights array of every expert and the **ERTool** package can normalize them automatically.
        
        We can write the code using the **ERTool** package:
        
        ```python
        import ertool
        import numpy as np
        
        W = np.array([10,8,5])
        DBF = np.array([[0.9, 0, 0, 0.1], 
                        [0, 0.9, 0, 0.1], 
                        [0, 0, 0.9, 0.1]])
        
        # List or numpy array are both OK.
        # W = [10,8,5]
        # DBF = [[0.9, 0, 0, 0.1], 
        #        [0, 0.9, 0, 0.1], 
        #        [0, 0, 0.9, 0.1]]
        
        numOfChildren = 3
        numOfGrades = 4
        B = ertool.er.er_algorithm(W, DBF, numOfChildren, numOfGrades)
        print("B:", B)
        ```
        With the code, we can calculate the probability that the patient will be diagnosed with each disease using evidential reasoning.
        
        ```
        B: [0.43591353 0.30223338 0.15741322 0.10443986]
        ```
        According to the result, we can know that combining the opinions of the three experts, the probability of the patient being diagnosed with cold, common pneumonia, COVID-19 and uncertain are 0.43591353, 0.30223338, 0.15741322 and 0.10443986.
        
        
        ## Contributing
        Contributions to **ERTool** are welcome. Please contact us for how to contribute to the project.
        
        ## Contact
        This project is supported by the **[National Institute of Health Data Science](https://www.nihds.pku.edu.cn/en/), [Peking University](https://english.pku.edu.cn/)**. For any questions or suggestions, please contact us at *tyshipku@gmail.com*. 
        
Platform: UNKNOWN
Description-Content-Type: text/markdown
