conf-mat


Nameconf-mat JSON
Version 1.1.0 PyPI version JSON
download
home_pagehttps://pypi.org/project/conf-mat/
SummarySophisticate Confusion Matrix
upload_time2024-10-29 14:32:57
maintainerNone
docs_urlNone
authorkhiat Mohammed Abderrezzak
requires_python>=3.6
licenseMIT
keywords confusion matrix
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # conf-mat


[![PyPI version](https://badge.fury.io/py/conf-mat.svg)](https://badge.fury.io/py/conf-mat)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)


This library was created to address the confusion in confusion matrices and classification reports generated by libraries like scikit-learn. It displays confusion matrices and their heatmaps in a more aesthetically pleasing, intuitive way. It also presents classification reports and accuracy rates in a manner that clarifies the calculation method and how those results were obtained, which can help alleviate confusion for beginners in machine learning


## Installation


You can install `conf-mat` via pip:


```bash
pip install conf-mat
```


## Usage 


### For Binary Classification


```python
from numpy.random import randint
from matplotlib.pyplot import show
from conf_mat import print_conf_mat, plot_conf_mat, conf_mat_to_html


y_true = randint(0, 2, 1000)
y_pred = randint(0, 2, 1000)


# Show The Confusion Matrix On The Console (Classes Names Are Not Mandatory)
print_conf_mat(y_true, y_pred, classes_names=[False, True])


# Show The Confusion Matrix As A Heat Map (Classes Names Are Not Mandatory)
plot_conf_mat(y_true, y_pred, classes_names=[False, True])
show()  # If You Are Using VSCode And You Are Executing The Code Direcctely


# Show The Confusion Matrix As It Appears On The Console And As A Heat Map On The HTML Page (Classes Names Are Not Mandatory)
conf_mat_to_html(y_true, y_pred, classes_names=[False, True])
```


### Output


#### print_conf_mat Output


```bash
Confusion Matrix : 
________________

╒═════════════════════╤═══════════════════════════╤═══════════════════════════╕
│ Classes             │ Predicted Positive (PP)   │ Predicted Negative (PN)   │
╞═════════════════════╪═══════════════════════════╪═══════════════════════════╡
│ Actual Positive (P) │ True Positive (TP) : 240  │ False Negative (FN) : 241 │
│                     │                           │ Type II Error (Missed)    │
├─────────────────────┼───────────────────────────┼───────────────────────────┤
│ Actual Negative (N) │ False Positive (FP) : 259 │ True Negative (TN) : 260  │
│                     │ Type I Error (Wrong)      │                           │
╘═════════════════════╧═══════════════════════════╧═══════════════════════════╛

╒══════════╤═════════════════════════════════════════════════════╕
│          │ Rate (Score)                                        │
╞══════════╪═════════════════════════════════════════════════════╡
│ Accuracy │ Correct        TP + TN                              │
│          │ _______ : _________________  OR  1 - Error  =  0.5  │
│          │                                                     │
│          │  Total    TP + FP + FN + TN                         │
├──────────┼─────────────────────────────────────────────────────┤
│ Error    │ Wrong        FP + FN                                │
│          │ _____ : _________________  OR  1 - Accuracy  =  0.5 │
│          │                                                     │
│          │ Total   TP + FP + FN + TN                           │
╘══════════╧═════════════════════════════════════════════════════╛


Classification Report : 
_____________________

╒══════════════════╤═════════════════╤════════════════════╤═════════════════════╤════════════════╕
│                  │ Precision (P)   │ Recall (R)         │ F1-Score (F)        │ Support (S)    │
╞══════════════════╪═════════════════╪════════════════════╪═════════════════════╪════════════════╡
│ Positive (True)  │ P1 (PPV):       │ R1 (Sensitivity):  │ F1 :                │ S1 :           │
│                  │                 │                    │                     │                │
│                  │   TP            │   TP               │ 2 x P1 x R1         │                │
│                  │ _______  = 0.48 │ _______  = 0.5     │ ___________  = 0.49 │  TP + FN = 481 │
│                  │                 │                    │                     │                │
│                  │ TP + FP         │ TP + FN            │   P1 + R1           │                │
├──────────────────┼─────────────────┼────────────────────┼─────────────────────┼────────────────┤
│ Negative (False) │ P0 (NPV):       │ R0 (Specificity):  │ F0 :                │ S0 :           │
│                  │                 │                    │                     │                │
│                  │   TN            │   TN               │ 2 x P0 x R0         │                │
│                  │ _______  = 0.52 │ _______  = 0.5     │ ___________  = 0.51 │  FP + TN = 519 │
│                  │                 │                    │                     │                │
│                  │ TN + FN         │ TN + FP            │   P0 + R0           │                │
├──────────────────┼─────────────────┼────────────────────┼─────────────────────┼────────────────┤
│ Macro Avg        │ P1 + P0         │ R1 + R0            │ F1 + F0             │ TS = 1000      │
│                  │ _______  = 0.5  │ _______  = 0.5     │ _______  = 0.5      │                │
│                  │                 │                    │                     │                │
│                  │    2            │    2               │    2                │                │
├──────────────────┼─────────────────┼────────────────────┼─────────────────────┼────────────────┤
│ Weighted Avg     │ W1              │ W2                 │ W3                  │ TS = 1000      │
│                  │ __  = 0.5       │ __  = 0.5          │ __  = 0.5           │                │
│                  │                 │                    │                     │                │
│                  │ TS              │ TS                 │ TS                  │                │
╘══════════════════╧═════════════════╧════════════════════╧═════════════════════╧════════════════╛

PPV : Positive Predictive Value

NPV : Negative Predictive Value

W1 = (P1 x S1) + (P0 x S0)

W2 = (R1 x S1) + (R0 x S0)

W3 = (F1 x S1) + (F0 x S0)

TS : Total Support = S1 + S0

Note : All Real Numbers Are Rounded With Two Digits After The Comma
```


#### plot_conf_mat Output


https://drive.google.com/file/d/1IA3ke21FHXBx7hydamouMhS9zvjHcy9B/view?usp=drive_link


#### conf_mat_to_html Output


```bash
HTML File Generated Successfully :)
```
https://drive.google.com/file/d/1TBWlNjMJ89CtrrYRzDCBER97oc7d5xSs/view?usp=drive_link


#### You Can Plot, Generate HTML Page For Confusion Matrix And Classification Report Directly From One Calculation 


```python
from numpy.random import randint
from matplotlib.pyplot import show
from conf_mat import print_conf_mat, plot_conf_mat, conf_mat_to_html


y_true = randint(0, 2, 1000)
y_pred = randint(0, 2, 1000)


# Show The Confusion Matrix On The Console (Classes Names Are Not Mandatory)
cm = print_conf_mat(y_true, y_pred, classes_names=[False, True])


# Show The Confusion Matrix As A Heat Map (Classes Names Are Not Mandatory)
plot_conf_mat(conf_mat=cm, classes_names=[False, True])
show()  # If You Are Using VSCode And You Are Executing The Code Direcctely


# Show The Confusion Matrix As It Appears On The Console And As A Heat Map On The HTML Page (Classes Names Are Not Mandatory)
conf_mat_to_html(conf_mat=cm, classes_names=[False, True])
```


#### You Can Hide Detail Information For Confusion Matrix, Classification Report And Confusion Matrix Heatmap 


```python
from numpy.random import randint
from matplotlib.pyplot import show
from conf_mat import print_conf_mat, plot_conf_mat, conf_mat_to_html


y_true = randint(0, 2, 1000)
y_pred = randint(0, 2, 1000)


# Show The Confusion Matrix On The Console (Classes Names Are Not Mandatory)
cm = print_conf_mat(y_true, y_pred, classes_names=[False, True], detail=False)


# Show The Confusion Matrix As A Heat Map (Classes Names Are Not Mandatory)
plot_conf_mat(conf_mat=cm, classes_names=[False, True], detail=False)
show()  # If You Are Using VSCode And You Are Executing The Code Direcctely


# Show The Confusion Matrix As It Appears On The Console And As A Heat Map On The HTML Page (Classes Names Are Not Mandatory)
conf_mat_to_html(conf_mat=cm, classes_names=[False, True], detail=False)
```


### Output


#### print_conf_mat Output


```bash
Confusion Matrix : 
________________

╒═════════════════════╤═══════════════════════════╤═══════════════════════════╕
│ Classes             │   Predicted Positive (PP) │   Predicted Negative (PN) │
╞═════════════════════╪═══════════════════════════╪═══════════════════════════╡
│ Actual Positive (P) │                       239 │                       246 │
├─────────────────────┼───────────────────────────┼───────────────────────────┤
│ Actual Negative (N) │                       252 │                       263 │
╘═════════════════════╧═══════════════════════════╧═══════════════════════════╛

╒══════════╤════════════════╕
│          │   Rate (Score) │
╞══════════╪════════════════╡
│ Accuracy │            0.5 │
├──────────┼────────────────┤
│ Error    │            0.5 │
╘══════════╧════════════════╛


Classification Report : 
_____________________

╒══════════════════╤═════════════════╤══════════════╤════════════════╤═══════════════╕
│                  │   Precision (P) │   Recall (R) │   F1-Score (F) │   Support (S) │
╞══════════════════╪═════════════════╪══════════════╪════════════════╪═══════════════╡
│ Positive (True)  │            0.49 │         0.49 │           0.49 │           485 │
├──────────────────┼─────────────────┼──────────────┼────────────────┼───────────────┤
│ Negative (False) │            0.52 │         0.51 │           0.51 │           515 │
├──────────────────┼─────────────────┼──────────────┼────────────────┼───────────────┤
│ Macro Avg        │            0.5  │         0.5  │           0.5  │          1000 │
├──────────────────┼─────────────────┼──────────────┼────────────────┼───────────────┤
│ Weighted Avg     │            0.5  │         0.5  │           0.5  │          1000 │
╘══════════════════╧═════════════════╧══════════════╧════════════════╧═══════════════╛
```


#### plot_conf_mat Output


https://drive.google.com/file/d/1L42AslXk-JRHNYpzMLXoRhtuhVWkTibC/view?usp=drive_link


#### conf_mat_to_html Output


```bash
HTML File Generated Successfully :)
```
https://drive.google.com/file/d/1UqMaySEX2WFGF5rA0pmbQGAxGjs-icu5/view?usp=drive_link


#### You Can Plot And Generate HTML Page For Confusion Matrix Directly From One Calculation And Without Print Confusion Matrix And Classification Report


```python
from numpy.random import randint
from matplotlib.pyplot import show
from conf_mat import calc_conf_mat, plot_conf_mat, conf_mat_to_html


y_true = randint(0, 2, 1000)
y_pred = randint(0, 2, 1000)


# Show The Confusion Matrix On The Console (Classes Names Are Not Mandatory)
cm = calc_conf_mat(y_true, y_pred)
print(cm)

# Show The Confusion Matrix As A Heat Map (Classes Names Are Not Mandatory)
plot_conf_mat(conf_mat=cm, classes_names=[False, True], detail=False)
show()  # If You Are Using VSCode And You Are Executing The Code Direcctely


# Show The Confusion Matrix As It Appears On The Console And As A Heat Map On The HTML Page (Classes Names Are Not Mandcatory)
conf_mat_to_html(conf_mat=cm, classes_names=[False, True], detail=False)
```


### Output


#### calc_conf_mat Output


```bash
[[243, 242], [256, 259]]
```


#### plot_conf_mat Output


https://drive.google.com/file/d/1tLBhU1RIlIRFX5YR-nXJMljV_sOVm_SH/view?usp=drive_link


#### conf_mat_to_html Output


```bash
HTML File Generated Successfully :)
```
https://drive.google.com/file/d/1wkRWeC9yc_tuH_cnENXheAOSxTBVkMoG/view?usp=drive_link


### For Multi Classification


```python
from numpy.random import randint
from matplotlib.pyplot import show
from conf_mat import print_conf_mat, plot_conf_mat, conf_mat_to_html


y_true = randint(0, 10, 1000)
y_pred = randint(0, 10, 1000)


# Show The Confusion Matrix On The Console (Classes Names Are Not Mandatory)
print_conf_mat(y_true, y_pred, classes_names=[
    'C1', 'C2', 'C3', 'C4', 'C5', 'C6', 'C7', 'C8', 'C9', 'C10'])


# Show The Confusion Matrix As A Heat Map (Classes Names Are Not Mandatory)
plot_conf_mat(y_true, y_pred, classes_names=[
    'C1', 'C2', 'C3', 'C4', 'C5', 'C6', 'C7', 'C8', 'C9', 'C10'])
show()  # If You Are Using VSCode And You Are Executing The Code Direcctely


# Show The Confusion Matrix As It Appears On The Console And As A Heat Map On The HTML Page (Classes Names Are Not Mandatory)
conf_mat_to_html(y_true, y_pred, classes_names=[
    'C1', 'C2', 'C3', 'C4', 'C5', 'C6', 'C7', 'C8', 'C9', 'C10'])
```


### Output


#### print_conf_mat Output


```bash
Confusion Matrix : 
________________

╒═══════════╤══════╤══════╤══════╤══════╤══════╤══════╤══════╤══════╤══════╤═══════╕
│ Classes   │   C1 │   C2 │   C3 │   C4 │   C5 │   C6 │   C7 │   C8 │   C9 │   C10 │
╞═══════════╪══════╪══════╪══════╪══════╪══════╪══════╪══════╪══════╪══════╪═══════╡
│ C1        │    8 │    9 │   10 │    7 │   13 │   10 │    9 │   12 │   15 │    11 │
├───────────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼───────┤
│ C2        │    9 │    6 │    5 │   15 │   10 │   15 │   13 │   10 │   12 │    10 │
├───────────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼───────┤
│ C3        │   14 │    5 │    8 │   10 │   17 │   10 │   10 │    6 │   17 │    12 │
├───────────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼───────┤
│ C4        │    8 │   10 │    3 │   11 │    7 │    7 │    9 │    8 │    7 │     7 │
├───────────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼───────┤
│ C5        │    5 │   13 │    7 │   11 │    8 │   13 │    7 │   10 │    6 │     8 │
├───────────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼───────┤
│ C6        │    9 │   12 │   13 │    9 │   14 │    9 │    8 │    8 │   13 │    10 │
├───────────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼───────┤
│ C7        │   14 │   11 │   11 │   20 │    6 │    6 │    9 │    9 │   10 │    10 │
├───────────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼───────┤
│ C8        │   10 │   13 │    8 │   12 │   12 │    6 │   10 │    5 │   12 │    14 │
├───────────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼───────┤
│ C9        │   12 │    9 │   13 │    9 │    9 │    8 │   11 │   11 │    9 │     9 │
├───────────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼───────┤
│ C10       │   12 │   13 │   11 │   12 │   10 │   14 │   11 │    4 │    6 │    11 │
╘═══════════╧══════╧══════╧══════╧══════╧══════╧══════╧══════╧══════╧══════╧═══════╛

Yellow  : Not None Correct Values / True Positive (TP) OR True Negative (TN)
Red     : Not None Wrong Values / False Positive (FP) OR False Negative (FN)
Green   : None Correct Values
Blue    : None Wrong Values

╒══════════╤═════════════════════════════════════════════════════════════════╕
│          │ Rate (Score)                                                    │
╞══════════╪═════════════════════════════════════════════════════════════════╡
│ Accuracy │ Correct      Sum Of Yellow Values                               │
│          │ _______ : ____________________________  OR  1 - Error  =  0.08  │
│          │                                                                 │
│          │  Total    Sum Of Yellow And Red Values                          │
├──────────┼─────────────────────────────────────────────────────────────────┤
│ Error    │ Wrong        Sum Of Red Values                                  │
│          │ _____ : ____________________________  OR  1 - Accuracy  =  0.92 │
│          │                                                                 │
│          │ Total   Sum Of Yellow And Red Values                            │
╘══════════╧═════════════════════════════════════════════════════════════════╛


Classification Report : 
_____________________

╒══════════════╤═════════════════╤══════════════╤════════════════╤═══════════════╕
│              │   Precision (P) │   Recall (R) │   F1-Score (F) │   Support (S) │
╞══════════════╪═════════════════╪══════════════╪════════════════╪═══════════════╡
│ C1           │            0.08 │         0.08 │           0.08 │           104 │
├──────────────┼─────────────────┼──────────────┼────────────────┼───────────────┤
│ C2           │            0.06 │         0.06 │           0.06 │           105 │
├──────────────┼─────────────────┼──────────────┼────────────────┼───────────────┤
│ C3           │            0.09 │         0.07 │           0.08 │           109 │
├──────────────┼─────────────────┼──────────────┼────────────────┼───────────────┤
│ C4           │            0.09 │         0.14 │           0.11 │            77 │
├──────────────┼─────────────────┼──────────────┼────────────────┼───────────────┤
│ C5           │            0.08 │         0.09 │           0.08 │            88 │
├──────────────┼─────────────────┼──────────────┼────────────────┼───────────────┤
│ C6           │            0.09 │         0.09 │           0.09 │           105 │
├──────────────┼─────────────────┼──────────────┼────────────────┼───────────────┤
│ C7           │            0.09 │         0.08 │           0.09 │           106 │
├──────────────┼─────────────────┼──────────────┼────────────────┼───────────────┤
│ C8           │            0.06 │         0.05 │           0.05 │           102 │
├──────────────┼─────────────────┼──────────────┼────────────────┼───────────────┤
│ C9           │            0.08 │         0.09 │           0.09 │           100 │
├──────────────┼─────────────────┼──────────────┼────────────────┼───────────────┤
│ C10          │            0.11 │         0.11 │           0.11 │           104 │
├──────────────┼─────────────────┼──────────────┼────────────────┼───────────────┤
│ Macro Avg    │            0.08 │         0.09 │           0.08 │          1000 │
├──────────────┼─────────────────┼──────────────┼────────────────┼───────────────┤
│ Weighted Avg │            0.08 │         0.08 │           0.08 │          1000 │
╘══════════════╧═════════════════╧══════════════╧════════════════╧═══════════════╛

Precision    : Yellow Value / Sum Of Yellow Value Column

Recall       : Yellow Value / Sum Of Yellow Value Row

F1-Score     : (2 x Precision x Recall) / (Precision + Recall)

Support      : Sum Of Each Row

Macro Avg    :

               Precision : (Sum Of Precision Column) / Classes Count

               Recall    : (Sum Of Recall Column) / Classes Count

               F1-Score  : (Sum Of F1-Score Column) / Classes Count

               Support   : Total (Sum Of All Matrix)

Weighted Avg :

               Precision : (Sum Of (Precision x support)) / Total (Sum Of All Matrix)

               Recall    : (Sum Of (Recall x Support)) / Total (Sum Of All Matrix)

               F1-Score  : (Sum Of (F1-Score x Support)) / Total (Sum Of All Matrix)

               Support   : Total (Sum Of All Matrix)

Note : All Real Numbers Are Rounded With Two Digits After The Comma
```


#### plot_conf_mat Output


https://drive.google.com/file/d/1Gp0CcqZwwZdb8ZTELzfKciJasFGNyqTc/view?usp=drive_link


#### conf_mat_to_html Output


```bash
HTML File Generated Successfully :)
```
https://drive.google.com/file/d/1hkxp1ewJ5yXV_Lr3Ba6Qopes5-Yc0chm/view?usp=drive_link


#### You Can Plot, Generate HTML Page For Confusion Matrix And Classification Report Directly From One Calculation 


```python
from numpy.random import randint
from matplotlib.pyplot import show
from conf_mat import print_conf_mat, plot_conf_mat, conf_mat_to_html


y_true = randint(0, 10, 1000)
y_pred = randint(0, 10, 1000)


# Show The Confusion Matrix On The Console (Classes Names Are Not Mandatory)
cm = print_conf_mat(y_true, y_pred, classes_names=[
    'C1', 'C2', 'C3', 'C4', 'C5', 'C6', 'C7', 'C8', 'C9', 'C10'])


# Show The Confusion Matrix As A Heat Map (Classes Names Are Not Mandatory)
plot_conf_mat(conf_mat=cm, classes_names=[
    'C1', 'C2', 'C3', 'C4', 'C5', 'C6', 'C7', 'C8', 'C9', 'C10'])
show()  # If You Are Using VSCode And You Are Executing The Code Direcctely


# Show The Confusion Matrix As It Appears On The Console And As A Heat Map On The HTML Page (Classes Names Are Not Mandatory)
conf_mat_to_html(conf_mat=cm, classes_names=[
    'C1', 'C2', 'C3', 'C4', 'C5', 'C6', 'C7', 'C8', 'C9', 'C10'])
```


#### You Can Hide Detail Information For Confusion Matrix, Classification Report And Confusion Matrix Heatmap


```python
from numpy.random import randint
from matplotlib.pyplot import show
from conf_mat import print_conf_mat, plot_conf_mat, conf_mat_to_html


y_true = randint(0, 10, 1000)
y_pred = randint(0, 10, 1000)


# Show The Confusion Matrix On The Console (Classes Names Are Not Mandatory)
cm = print_conf_mat(y_true, y_pred, classes_names=[
    'C1', 'C2', 'C3', 'C4', 'C5', 'C6', 'C7', 'C8', 'C9', 'C10'], detail=False)


# Show The Confusion Matrix As A Heat Map (Classes Names Are Not Mandatory)
plot_conf_mat(conf_mat=cm, classes_names=[
    'C1', 'C2', 'C3', 'C4', 'C5', 'C6', 'C7', 'C8', 'C9', 'C10'], detail=False)
show()  # If You Are Using VSCode And You Are Executing The Code Direcctely


# Show The Confusion Matrix As It Appears On The Console And As A Heat Map On The HTML Page (Classes Names Are Not Mandatory)
conf_mat_to_html(conf_mat=cm, classes_names=[
    'C1', 'C2', 'C3', 'C4', 'C5', 'C6', 'C7', 'C8', 'C9', 'C10'], detail=False)
```


### Output


#### print_conf_mat Output


```bash
Confusion Matrix : 
________________

╒═══════════╤══════╤══════╤══════╤══════╤══════╤══════╤══════╤══════╤══════╤═══════╕
│ Classes   │   C1 │   C2 │   C3 │   C4 │   C5 │   C6 │   C7 │   C8 │   C9 │   C10 │
╞═══════════╪══════╪══════╪══════╪══════╪══════╪══════╪══════╪══════╪══════╪═══════╡
│ C1        │   10 │    5 │   15 │    6 │    9 │   12 │   13 │    5 │   12 │    13 │
├───────────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼───────┤
│ C2        │   13 │    5 │    9 │    6 │   13 │   11 │   12 │    5 │    6 │    10 │
├───────────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼───────┤
│ C3        │   11 │   16 │    8 │   10 │   12 │   15 │    7 │   11 │   10 │    12 │
├───────────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼───────┤
│ C4        │   10 │    9 │   10 │    7 │   15 │   13 │   12 │   11 │   11 │    11 │
├───────────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼───────┤
│ C5        │   10 │    9 │   12 │    8 │   13 │    7 │    7 │    7 │    9 │     7 │
├───────────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼───────┤
│ C6        │   14 │   13 │   14 │   11 │    6 │   11 │    8 │   13 │   11 │    13 │
├───────────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼───────┤
│ C7        │    9 │   11 │   11 │    9 │    9 │   12 │    9 │   10 │    9 │     9 │
├───────────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼───────┤
│ C8        │   10 │   11 │   12 │   10 │    7 │   10 │   14 │   10 │   13 │    11 │
├───────────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼───────┤
│ C9        │    8 │   14 │    9 │    8 │    9 │    7 │    9 │   11 │    9 │    10 │
├───────────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼───────┤
│ C10       │    8 │   10 │    7 │    4 │    8 │   13 │    8 │    6 │    9 │    13 │
╘═══════════╧══════╧══════╧══════╧══════╧══════╧══════╧══════╧══════╧══════╧═══════╛

╒══════════╤════════════════╕
│          │   Rate (Score) │
╞══════════╪════════════════╡
│ Accuracy │           0.1  │
├──────────┼────────────────┤
│ Error    │           0.91 │
╘══════════╧════════════════╛


Classification Report : 
_____________________

╒══════════════╤═════════════════╤══════════════╤════════════════╤═══════════════╕
│              │   Precision (P) │   Recall (R) │   F1-Score (F) │   Support (S) │
╞══════════════╪═════════════════╪══════════════╪════════════════╪═══════════════╡
│ C1           │            0.1  │         0.1  │           0.1  │           100 │
├──────────────┼─────────────────┼──────────────┼────────────────┼───────────────┤
│ C2           │            0.05 │         0.06 │           0.05 │            90 │
├──────────────┼─────────────────┼──────────────┼────────────────┼───────────────┤
│ C3           │            0.07 │         0.07 │           0.07 │           112 │
├──────────────┼─────────────────┼──────────────┼────────────────┼───────────────┤
│ C4           │            0.09 │         0.06 │           0.07 │           109 │
├──────────────┼─────────────────┼──────────────┼────────────────┼───────────────┤
│ C5           │            0.13 │         0.15 │           0.14 │            89 │
├──────────────┼─────────────────┼──────────────┼────────────────┼───────────────┤
│ C6           │            0.1  │         0.1  │           0.1  │           114 │
├──────────────┼─────────────────┼──────────────┼────────────────┼───────────────┤
│ C7           │            0.09 │         0.09 │           0.09 │            98 │
├──────────────┼─────────────────┼──────────────┼────────────────┼───────────────┤
│ C8           │            0.11 │         0.09 │           0.1  │           108 │
├──────────────┼─────────────────┼──────────────┼────────────────┼───────────────┤
│ C9           │            0.09 │         0.1  │           0.09 │            94 │
├──────────────┼─────────────────┼──────────────┼────────────────┼───────────────┤
│ C10          │            0.12 │         0.15 │           0.13 │            86 │
├──────────────┼─────────────────┼──────────────┼────────────────┼───────────────┤
│ Macro Avg    │            0.1  │         0.1  │           0.1  │          1000 │
├──────────────┼─────────────────┼──────────────┼────────────────┼───────────────┤
│ Weighted Avg │            0.09 │         0.1  │           0.09 │          1000 │
╘══════════════╧═════════════════╧══════════════╧════════════════╧═══════════════╛
```


#### plot_conf_mat Output


https://drive.google.com/file/d/1Card-dZs6sSjgqdiVPUMesXjy3u9nsuY/view?usp=drive_link


#### conf_mat_to_html Output


```bash
HTML File Generated Successfully :)
```
https://drive.google.com/file/d/14H1T4zzrqVR10f40OVD9wunqdcFjG1DU/view?usp=drive_link


#### You Can Plot And Generate HTML Page For Confusion Matrix Directly From One Calculation And Without Print Confusion Matrix And Classification Report


```python
from numpy.random import randint
from matplotlib.pyplot import show
from conf_mat import calc_conf_mat, plot_conf_mat, conf_mat_to_html


y_true = randint(0, 10, 1000)
y_pred = randint(0, 10, 1000)


# Show The Confusion Matrix On The Console (Classes Names Are Not Mandatory)
cm = calc_conf_mat(y_true, y_pred)
print(cm)

# Show The Confusion Matrix As A Heat Map (Classes Names Are Not Mandatory)
plot_conf_mat(conf_mat=cm, classes_names=[
    'C1', 'C2', 'C3', 'C4', 'C5', 'C6', 'C7', 'C8', 'C9', 'C10'], detail=False)
show()  # If You Are Using VSCode And You Are Executing The Code Direcctely


# Show The Confusion Matrix As It Appears On The Console And As A Heat Map On The HTML Page (Classes Names Are Not Mandatory)
conf_mat_to_html(conf_mat=cm, classes_names=[
    'C1', 'C2', 'C3', 'C4', 'C5', 'C6', 'C7', 'C8', 'C9', 'C10'], detail=False)
```


### Output


#### calc_conf_mat Output


```bash
[[16, 11, 8, 6, 4, 11, 12, 9, 10, 6], [12, 15, 14, 7, 20, 7, 17, 8, 6, 10], [13, 13, 11, 12, 11, 10, 11, 9, 8, 9], [12, 11, 5, 15, 9, 10, 8, 10, 13, 9], [8, 13, 11, 8, 8, 8, 12, 15, 7, 12], [13, 8, 17, 14, 8, 7, 10, 6, 8, 6], [7, 21, 7, 7, 10, 11, 10, 12, 11, 8], [9, 10, 15, 11, 7, 6, 9, 6, 9, 9], [9, 13, 7, 14, 7, 10, 5, 11, 5, 7], [13, 9, 11, 8, 12, 12, 9, 7, 6, 13]]
```


#### plot_conf_mat Output


https://drive.google.com/file/d/1wmH3jQj8WZKtf2Vr-7LQgkI1udDFm0Zj/view?usp=drive_link


#### conf_mat_to_html Output


```bash
HTML File Generated Successfully :)
```
https://drive.google.com/file/d/104P1o4tQPZGvZo5UlYdm6vZAfjrBCcHI/view?usp=drive_link


### Note


You can import all functions with the camelCase format in place of snake_case format.


## License


This project is licensed under the MIT LICENSE - see the [LICENSE](https://opensource.org/licenses/MIT) for more details.

            

Raw data

            {
    "_id": null,
    "home_page": "https://pypi.org/project/conf-mat/",
    "name": "conf-mat",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.6",
    "maintainer_email": null,
    "keywords": "confusion matrix",
    "author": "khiat Mohammed Abderrezzak",
    "author_email": "khiat.dev@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/59/9d/758966de03910000e13c28bb0cd98189b82e0612fce6d53de04191b84bcf/conf-mat-1.1.0.tar.gz",
    "platform": null,
    "description": "# conf-mat\n\n\n[![PyPI version](https://badge.fury.io/py/conf-mat.svg)](https://badge.fury.io/py/conf-mat)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\n\nThis library was created to address the confusion in confusion matrices and classification reports generated by libraries like scikit-learn. It displays confusion matrices and their heatmaps in a more aesthetically pleasing, intuitive way. It also presents classification reports and accuracy rates in a manner that clarifies the calculation method and how those results were obtained, which can help alleviate confusion for beginners in machine learning\n\n\n## Installation\n\n\nYou can install `conf-mat` via pip:\n\n\n```bash\npip install conf-mat\n```\n\n\n## Usage \n\n\n### For Binary Classification\n\n\n```python\nfrom numpy.random import randint\nfrom matplotlib.pyplot import show\nfrom conf_mat import print_conf_mat, plot_conf_mat, conf_mat_to_html\n\n\ny_true = randint(0, 2, 1000)\ny_pred = randint(0, 2, 1000)\n\n\n# Show The Confusion Matrix On The Console (Classes Names Are Not Mandatory)\nprint_conf_mat(y_true, y_pred, classes_names=[False, True])\n\n\n# Show The Confusion Matrix As A Heat Map (Classes Names Are Not Mandatory)\nplot_conf_mat(y_true, y_pred, classes_names=[False, True])\nshow()  # If You Are Using VSCode And You Are Executing The Code Direcctely\n\n\n# Show The Confusion Matrix As It Appears On The Console And As A Heat Map On The HTML Page (Classes Names Are Not Mandatory)\nconf_mat_to_html(y_true, y_pred, classes_names=[False, True])\n```\n\n\n### Output\n\n\n#### print_conf_mat Output\n\n\n```bash\nConfusion Matrix : \n________________\n\n\u2552\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2564\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2564\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2555\n\u2502 Classes             \u2502 Predicted Positive (PP)   \u2502 Predicted Negative (PN)   \u2502\n\u255e\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u256a\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u256a\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2561\n\u2502 Actual Positive (P) \u2502 True Positive (TP) : 240  \u2502 False Negative (FN) : 241 \u2502\n\u2502                     \u2502                           \u2502 Type II Error (Missed)    \u2502\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n\u2502 Actual Negative (N) \u2502 False Positive (FP) : 259 \u2502 True Negative (TN) : 260  \u2502\n\u2502                     \u2502 Type I Error (Wrong)      \u2502                           \u2502\n\u2558\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2567\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2567\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u255b\n\n\u2552\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2564\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2555\n\u2502          \u2502 Rate (Score)                                        \u2502\n\u255e\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u256a\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2561\n\u2502 Accuracy \u2502 Correct        TP + TN                              \u2502\n\u2502          \u2502 _______ : _________________  OR  1 - Error  =  0.5  \u2502\n\u2502          \u2502                                                     \u2502\n\u2502          \u2502  Total    TP + FP + FN + TN                         \u2502\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n\u2502 Error    \u2502 Wrong        FP + FN                                \u2502\n\u2502          \u2502 _____ : _________________  OR  1 - Accuracy  =  0.5 \u2502\n\u2502          \u2502                                                     \u2502\n\u2502          \u2502 Total   TP + FP + FN + TN                           \u2502\n\u2558\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2567\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u255b\n\n\nClassification Report : \n_____________________\n\n\u2552\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2564\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2564\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2564\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2564\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2555\n\u2502                  \u2502 Precision (P)   \u2502 Recall (R)         \u2502 F1-Score (F)        \u2502 Support (S)    \u2502\n\u255e\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u256a\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u256a\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u256a\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u256a\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2561\n\u2502 Positive (True)  \u2502 P1 (PPV):       \u2502 R1 (Sensitivity):  \u2502 F1 :                \u2502 S1 :           \u2502\n\u2502                  \u2502                 \u2502                    \u2502                     \u2502                \u2502\n\u2502                  \u2502   TP            \u2502   TP               \u2502 2 x P1 x R1         \u2502                \u2502\n\u2502                  \u2502 _______  = 0.48 \u2502 _______  = 0.5     \u2502 ___________  = 0.49 \u2502  TP + FN = 481 \u2502\n\u2502                  \u2502                 \u2502                    \u2502                     \u2502                \u2502\n\u2502                  \u2502 TP + FP         \u2502 TP + FN            \u2502   P1 + R1           \u2502                \u2502\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n\u2502 Negative (False) \u2502 P0 (NPV):       \u2502 R0 (Specificity):  \u2502 F0 :                \u2502 S0 :           \u2502\n\u2502                  \u2502                 \u2502                    \u2502                     \u2502                \u2502\n\u2502                  \u2502   TN            \u2502   TN               \u2502 2 x P0 x R0         \u2502                \u2502\n\u2502                  \u2502 _______  = 0.52 \u2502 _______  = 0.5     \u2502 ___________  = 0.51 \u2502  FP + TN = 519 \u2502\n\u2502                  \u2502                 \u2502                    \u2502                     \u2502                \u2502\n\u2502                  \u2502 TN + FN         \u2502 TN + FP            \u2502   P0 + R0           \u2502                \u2502\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n\u2502 Macro Avg        \u2502 P1 + P0         \u2502 R1 + R0            \u2502 F1 + F0             \u2502 TS = 1000      \u2502\n\u2502                  \u2502 _______  = 0.5  \u2502 _______  = 0.5     \u2502 _______  = 0.5      \u2502                \u2502\n\u2502                  \u2502                 \u2502                    \u2502                     \u2502                \u2502\n\u2502                  \u2502    2            \u2502    2               \u2502    2                \u2502                \u2502\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n\u2502 Weighted Avg     \u2502 W1              \u2502 W2                 \u2502 W3                  \u2502 TS = 1000      \u2502\n\u2502                  \u2502 __  = 0.5       \u2502 __  = 0.5          \u2502 __  = 0.5           \u2502                \u2502\n\u2502                  \u2502                 \u2502                    \u2502                     \u2502                \u2502\n\u2502                  \u2502 TS              \u2502 TS                 \u2502 TS                  \u2502                \u2502\n\u2558\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2567\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2567\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2567\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2567\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u255b\n\nPPV : Positive Predictive Value\n\nNPV : Negative Predictive Value\n\nW1 = (P1 x S1) + (P0 x S0)\n\nW2 = (R1 x S1) + (R0 x S0)\n\nW3 = (F1 x S1) + (F0 x S0)\n\nTS : Total Support = S1 + S0\n\nNote : All Real Numbers Are Rounded With Two Digits After The Comma\n```\n\n\n#### plot_conf_mat Output\n\n\nhttps://drive.google.com/file/d/1IA3ke21FHXBx7hydamouMhS9zvjHcy9B/view?usp=drive_link\n\n\n#### conf_mat_to_html Output\n\n\n```bash\nHTML File Generated Successfully :)\n```\nhttps://drive.google.com/file/d/1TBWlNjMJ89CtrrYRzDCBER97oc7d5xSs/view?usp=drive_link\n\n\n#### You Can Plot, Generate HTML Page For Confusion Matrix And Classification Report Directly From One Calculation \n\n\n```python\nfrom numpy.random import randint\nfrom matplotlib.pyplot import show\nfrom conf_mat import print_conf_mat, plot_conf_mat, conf_mat_to_html\n\n\ny_true = randint(0, 2, 1000)\ny_pred = randint(0, 2, 1000)\n\n\n# Show The Confusion Matrix On The Console (Classes Names Are Not Mandatory)\ncm = print_conf_mat(y_true, y_pred, classes_names=[False, True])\n\n\n# Show The Confusion Matrix As A Heat Map (Classes Names Are Not Mandatory)\nplot_conf_mat(conf_mat=cm, classes_names=[False, True])\nshow()  # If You Are Using VSCode And You Are Executing The Code Direcctely\n\n\n# Show The Confusion Matrix As It Appears On The Console And As A Heat Map On The HTML Page (Classes Names Are Not Mandatory)\nconf_mat_to_html(conf_mat=cm, classes_names=[False, True])\n```\n\n\n#### You Can Hide Detail Information For Confusion Matrix, Classification Report And Confusion Matrix Heatmap \n\n\n```python\nfrom numpy.random import randint\nfrom matplotlib.pyplot import show\nfrom conf_mat import print_conf_mat, plot_conf_mat, conf_mat_to_html\n\n\ny_true = randint(0, 2, 1000)\ny_pred = randint(0, 2, 1000)\n\n\n# Show The Confusion Matrix On The Console (Classes Names Are Not Mandatory)\ncm = print_conf_mat(y_true, y_pred, classes_names=[False, True], detail=False)\n\n\n# Show The Confusion Matrix As A Heat Map (Classes Names Are Not Mandatory)\nplot_conf_mat(conf_mat=cm, classes_names=[False, True], detail=False)\nshow()  # If You Are Using VSCode And You Are Executing The Code Direcctely\n\n\n# Show The Confusion Matrix As It Appears On The Console And As A Heat Map On The HTML Page (Classes Names Are Not Mandatory)\nconf_mat_to_html(conf_mat=cm, classes_names=[False, True], detail=False)\n```\n\n\n### Output\n\n\n#### print_conf_mat Output\n\n\n```bash\nConfusion Matrix : \n________________\n\n\u2552\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2564\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2564\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2555\n\u2502 Classes             \u2502   Predicted Positive (PP) \u2502   Predicted Negative (PN) \u2502\n\u255e\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u256a\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u256a\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2561\n\u2502 Actual Positive (P) \u2502                       239 \u2502                       246 \u2502\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n\u2502 Actual Negative (N) \u2502                       252 \u2502                       263 \u2502\n\u2558\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2567\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2567\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u255b\n\n\u2552\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2564\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2555\n\u2502          \u2502   Rate (Score) \u2502\n\u255e\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u256a\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2561\n\u2502 Accuracy \u2502            0.5 \u2502\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n\u2502 Error    \u2502            0.5 \u2502\n\u2558\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2567\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u255b\n\n\nClassification Report : \n_____________________\n\n\u2552\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2564\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2564\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2564\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2564\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2555\n\u2502                  \u2502   Precision (P) \u2502   Recall (R) \u2502   F1-Score (F) \u2502   Support (S) \u2502\n\u255e\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u256a\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u256a\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u256a\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u256a\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2561\n\u2502 Positive (True)  \u2502            0.49 \u2502         0.49 \u2502           0.49 \u2502           485 \u2502\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n\u2502 Negative (False) \u2502            0.52 \u2502         0.51 \u2502           0.51 \u2502           515 \u2502\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n\u2502 Macro Avg        \u2502            0.5  \u2502         0.5  \u2502           0.5  \u2502          1000 \u2502\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n\u2502 Weighted Avg     \u2502            0.5  \u2502         0.5  \u2502           0.5  \u2502          1000 \u2502\n\u2558\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2567\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2567\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2567\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2567\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u255b\n```\n\n\n#### plot_conf_mat Output\n\n\nhttps://drive.google.com/file/d/1L42AslXk-JRHNYpzMLXoRhtuhVWkTibC/view?usp=drive_link\n\n\n#### conf_mat_to_html Output\n\n\n```bash\nHTML File Generated Successfully :)\n```\nhttps://drive.google.com/file/d/1UqMaySEX2WFGF5rA0pmbQGAxGjs-icu5/view?usp=drive_link\n\n\n#### You Can Plot And Generate HTML Page For Confusion Matrix Directly From One Calculation And Without Print Confusion Matrix And Classification Report\n\n\n```python\nfrom numpy.random import randint\nfrom matplotlib.pyplot import show\nfrom conf_mat import calc_conf_mat, plot_conf_mat, conf_mat_to_html\n\n\ny_true = randint(0, 2, 1000)\ny_pred = randint(0, 2, 1000)\n\n\n# Show The Confusion Matrix On The Console (Classes Names Are Not Mandatory)\ncm = calc_conf_mat(y_true, y_pred)\nprint(cm)\n\n# Show The Confusion Matrix As A Heat Map (Classes Names Are Not Mandatory)\nplot_conf_mat(conf_mat=cm, classes_names=[False, True], detail=False)\nshow()  # If You Are Using VSCode And You Are Executing The Code Direcctely\n\n\n# Show The Confusion Matrix As It Appears On The Console And As A Heat Map On The HTML Page (Classes Names Are Not Mandcatory)\nconf_mat_to_html(conf_mat=cm, classes_names=[False, True], detail=False)\n```\n\n\n### Output\n\n\n#### calc_conf_mat Output\n\n\n```bash\n[[243, 242], [256, 259]]\n```\n\n\n#### plot_conf_mat Output\n\n\nhttps://drive.google.com/file/d/1tLBhU1RIlIRFX5YR-nXJMljV_sOVm_SH/view?usp=drive_link\n\n\n#### conf_mat_to_html Output\n\n\n```bash\nHTML File Generated Successfully :)\n```\nhttps://drive.google.com/file/d/1wkRWeC9yc_tuH_cnENXheAOSxTBVkMoG/view?usp=drive_link\n\n\n### For Multi Classification\n\n\n```python\nfrom numpy.random import randint\nfrom matplotlib.pyplot import show\nfrom conf_mat import print_conf_mat, plot_conf_mat, conf_mat_to_html\n\n\ny_true = randint(0, 10, 1000)\ny_pred = randint(0, 10, 1000)\n\n\n# Show The Confusion Matrix On The Console (Classes Names Are Not Mandatory)\nprint_conf_mat(y_true, y_pred, classes_names=[\n    'C1', 'C2', 'C3', 'C4', 'C5', 'C6', 'C7', 'C8', 'C9', 'C10'])\n\n\n# Show The Confusion Matrix As A Heat Map (Classes Names Are Not Mandatory)\nplot_conf_mat(y_true, y_pred, classes_names=[\n    'C1', 'C2', 'C3', 'C4', 'C5', 'C6', 'C7', 'C8', 'C9', 'C10'])\nshow()  # If You Are Using VSCode And You Are Executing The Code Direcctely\n\n\n# Show The Confusion Matrix As It Appears On The Console And As A Heat Map On The HTML Page (Classes Names Are Not Mandatory)\nconf_mat_to_html(y_true, y_pred, classes_names=[\n    'C1', 'C2', 'C3', 'C4', 'C5', 'C6', 'C7', 'C8', 'C9', 'C10'])\n```\n\n\n### Output\n\n\n#### print_conf_mat Output\n\n\n```bash\nConfusion Matrix : \n________________\n\n\u2552\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2564\u2550\u2550\u2550\u2550\u2550\u2550\u2564\u2550\u2550\u2550\u2550\u2550\u2550\u2564\u2550\u2550\u2550\u2550\u2550\u2550\u2564\u2550\u2550\u2550\u2550\u2550\u2550\u2564\u2550\u2550\u2550\u2550\u2550\u2550\u2564\u2550\u2550\u2550\u2550\u2550\u2550\u2564\u2550\u2550\u2550\u2550\u2550\u2550\u2564\u2550\u2550\u2550\u2550\u2550\u2550\u2564\u2550\u2550\u2550\u2550\u2550\u2550\u2564\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2555\n\u2502 Classes   \u2502   C1 \u2502   C2 \u2502   C3 \u2502   C4 \u2502   C5 \u2502   C6 \u2502   C7 \u2502   C8 \u2502   C9 \u2502   C10 \u2502\n\u255e\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u256a\u2550\u2550\u2550\u2550\u2550\u2550\u256a\u2550\u2550\u2550\u2550\u2550\u2550\u256a\u2550\u2550\u2550\u2550\u2550\u2550\u256a\u2550\u2550\u2550\u2550\u2550\u2550\u256a\u2550\u2550\u2550\u2550\u2550\u2550\u256a\u2550\u2550\u2550\u2550\u2550\u2550\u256a\u2550\u2550\u2550\u2550\u2550\u2550\u256a\u2550\u2550\u2550\u2550\u2550\u2550\u256a\u2550\u2550\u2550\u2550\u2550\u2550\u256a\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2561\n\u2502 C1        \u2502    8 \u2502    9 \u2502   10 \u2502    7 \u2502   13 \u2502   10 \u2502    9 \u2502   12 \u2502   15 \u2502    11 \u2502\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n\u2502 C2        \u2502    9 \u2502    6 \u2502    5 \u2502   15 \u2502   10 \u2502   15 \u2502   13 \u2502   10 \u2502   12 \u2502    10 \u2502\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n\u2502 C3        \u2502   14 \u2502    5 \u2502    8 \u2502   10 \u2502   17 \u2502   10 \u2502   10 \u2502    6 \u2502   17 \u2502    12 \u2502\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n\u2502 C4        \u2502    8 \u2502   10 \u2502    3 \u2502   11 \u2502    7 \u2502    7 \u2502    9 \u2502    8 \u2502    7 \u2502     7 \u2502\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n\u2502 C5        \u2502    5 \u2502   13 \u2502    7 \u2502   11 \u2502    8 \u2502   13 \u2502    7 \u2502   10 \u2502    6 \u2502     8 \u2502\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n\u2502 C6        \u2502    9 \u2502   12 \u2502   13 \u2502    9 \u2502   14 \u2502    9 \u2502    8 \u2502    8 \u2502   13 \u2502    10 \u2502\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n\u2502 C7        \u2502   14 \u2502   11 \u2502   11 \u2502   20 \u2502    6 \u2502    6 \u2502    9 \u2502    9 \u2502   10 \u2502    10 \u2502\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n\u2502 C8        \u2502   10 \u2502   13 \u2502    8 \u2502   12 \u2502   12 \u2502    6 \u2502   10 \u2502    5 \u2502   12 \u2502    14 \u2502\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n\u2502 C9        \u2502   12 \u2502    9 \u2502   13 \u2502    9 \u2502    9 \u2502    8 \u2502   11 \u2502   11 \u2502    9 \u2502     9 \u2502\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n\u2502 C10       \u2502   12 \u2502   13 \u2502   11 \u2502   12 \u2502   10 \u2502   14 \u2502   11 \u2502    4 \u2502    6 \u2502    11 \u2502\n\u2558\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2567\u2550\u2550\u2550\u2550\u2550\u2550\u2567\u2550\u2550\u2550\u2550\u2550\u2550\u2567\u2550\u2550\u2550\u2550\u2550\u2550\u2567\u2550\u2550\u2550\u2550\u2550\u2550\u2567\u2550\u2550\u2550\u2550\u2550\u2550\u2567\u2550\u2550\u2550\u2550\u2550\u2550\u2567\u2550\u2550\u2550\u2550\u2550\u2550\u2567\u2550\u2550\u2550\u2550\u2550\u2550\u2567\u2550\u2550\u2550\u2550\u2550\u2550\u2567\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u255b\n\nYellow  : Not None Correct Values / True Positive (TP) OR True Negative (TN)\nRed     : Not None Wrong Values / False Positive (FP) OR False Negative (FN)\nGreen   : None Correct Values\nBlue    : None Wrong Values\n\n\u2552\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2564\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2555\n\u2502          \u2502 Rate (Score)                                                    \u2502\n\u255e\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u256a\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2561\n\u2502 Accuracy \u2502 Correct      Sum Of Yellow Values                               \u2502\n\u2502          \u2502 _______ : ____________________________  OR  1 - Error  =  0.08  \u2502\n\u2502          \u2502                                                                 \u2502\n\u2502          \u2502  Total    Sum Of Yellow And Red Values                          \u2502\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n\u2502 Error    \u2502 Wrong        Sum Of Red Values                                  \u2502\n\u2502          \u2502 _____ : ____________________________  OR  1 - Accuracy  =  0.92 \u2502\n\u2502          \u2502                                                                 \u2502\n\u2502          \u2502 Total   Sum Of Yellow And Red Values                            \u2502\n\u2558\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2567\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u255b\n\n\nClassification Report : \n_____________________\n\n\u2552\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2564\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2564\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2564\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2564\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2555\n\u2502              \u2502   Precision (P) \u2502   Recall (R) \u2502   F1-Score (F) \u2502   Support (S) \u2502\n\u255e\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u256a\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u256a\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u256a\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u256a\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2561\n\u2502 C1           \u2502            0.08 \u2502         0.08 \u2502           0.08 \u2502           104 \u2502\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n\u2502 C2           \u2502            0.06 \u2502         0.06 \u2502           0.06 \u2502           105 \u2502\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n\u2502 C3           \u2502            0.09 \u2502         0.07 \u2502           0.08 \u2502           109 \u2502\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n\u2502 C4           \u2502            0.09 \u2502         0.14 \u2502           0.11 \u2502            77 \u2502\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n\u2502 C5           \u2502            0.08 \u2502         0.09 \u2502           0.08 \u2502            88 \u2502\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n\u2502 C6           \u2502            0.09 \u2502         0.09 \u2502           0.09 \u2502           105 \u2502\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n\u2502 C7           \u2502            0.09 \u2502         0.08 \u2502           0.09 \u2502           106 \u2502\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n\u2502 C8           \u2502            0.06 \u2502         0.05 \u2502           0.05 \u2502           102 \u2502\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n\u2502 C9           \u2502            0.08 \u2502         0.09 \u2502           0.09 \u2502           100 \u2502\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n\u2502 C10          \u2502            0.11 \u2502         0.11 \u2502           0.11 \u2502           104 \u2502\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n\u2502 Macro Avg    \u2502            0.08 \u2502         0.09 \u2502           0.08 \u2502          1000 \u2502\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n\u2502 Weighted Avg \u2502            0.08 \u2502         0.08 \u2502           0.08 \u2502          1000 \u2502\n\u2558\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2567\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2567\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2567\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2567\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u255b\n\nPrecision    : Yellow Value / Sum Of Yellow Value Column\n\nRecall       : Yellow Value / Sum Of Yellow Value Row\n\nF1-Score     : (2 x Precision x Recall) / (Precision + Recall)\n\nSupport      : Sum Of Each Row\n\nMacro Avg    :\n\n               Precision : (Sum Of Precision Column) / Classes Count\n\n               Recall    : (Sum Of Recall Column) / Classes Count\n\n               F1-Score  : (Sum Of F1-Score Column) / Classes Count\n\n               Support   : Total (Sum Of All Matrix)\n\nWeighted Avg :\n\n               Precision : (Sum Of (Precision x support)) / Total (Sum Of All Matrix)\n\n               Recall    : (Sum Of (Recall x Support)) / Total (Sum Of All Matrix)\n\n               F1-Score  : (Sum Of (F1-Score x Support)) / Total (Sum Of All Matrix)\n\n               Support   : Total (Sum Of All Matrix)\n\nNote : All Real Numbers Are Rounded With Two Digits After The Comma\n```\n\n\n#### plot_conf_mat Output\n\n\nhttps://drive.google.com/file/d/1Gp0CcqZwwZdb8ZTELzfKciJasFGNyqTc/view?usp=drive_link\n\n\n#### conf_mat_to_html Output\n\n\n```bash\nHTML File Generated Successfully :)\n```\nhttps://drive.google.com/file/d/1hkxp1ewJ5yXV_Lr3Ba6Qopes5-Yc0chm/view?usp=drive_link\n\n\n#### You Can Plot, Generate HTML Page For Confusion Matrix And Classification Report Directly From One Calculation \n\n\n```python\nfrom numpy.random import randint\nfrom matplotlib.pyplot import show\nfrom conf_mat import print_conf_mat, plot_conf_mat, conf_mat_to_html\n\n\ny_true = randint(0, 10, 1000)\ny_pred = randint(0, 10, 1000)\n\n\n# Show The Confusion Matrix On The Console (Classes Names Are Not Mandatory)\ncm = print_conf_mat(y_true, y_pred, classes_names=[\n    'C1', 'C2', 'C3', 'C4', 'C5', 'C6', 'C7', 'C8', 'C9', 'C10'])\n\n\n# Show The Confusion Matrix As A Heat Map (Classes Names Are Not Mandatory)\nplot_conf_mat(conf_mat=cm, classes_names=[\n    'C1', 'C2', 'C3', 'C4', 'C5', 'C6', 'C7', 'C8', 'C9', 'C10'])\nshow()  # If You Are Using VSCode And You Are Executing The Code Direcctely\n\n\n# Show The Confusion Matrix As It Appears On The Console And As A Heat Map On The HTML Page (Classes Names Are Not Mandatory)\nconf_mat_to_html(conf_mat=cm, classes_names=[\n    'C1', 'C2', 'C3', 'C4', 'C5', 'C6', 'C7', 'C8', 'C9', 'C10'])\n```\n\n\n#### You Can Hide Detail Information For Confusion Matrix, Classification Report And Confusion Matrix Heatmap\n\n\n```python\nfrom numpy.random import randint\nfrom matplotlib.pyplot import show\nfrom conf_mat import print_conf_mat, plot_conf_mat, conf_mat_to_html\n\n\ny_true = randint(0, 10, 1000)\ny_pred = randint(0, 10, 1000)\n\n\n# Show The Confusion Matrix On The Console (Classes Names Are Not Mandatory)\ncm = print_conf_mat(y_true, y_pred, classes_names=[\n    'C1', 'C2', 'C3', 'C4', 'C5', 'C6', 'C7', 'C8', 'C9', 'C10'], detail=False)\n\n\n# Show The Confusion Matrix As A Heat Map (Classes Names Are Not Mandatory)\nplot_conf_mat(conf_mat=cm, classes_names=[\n    'C1', 'C2', 'C3', 'C4', 'C5', 'C6', 'C7', 'C8', 'C9', 'C10'], detail=False)\nshow()  # If You Are Using VSCode And You Are Executing The Code Direcctely\n\n\n# Show The Confusion Matrix As It Appears On The Console And As A Heat Map On The HTML Page (Classes Names Are Not Mandatory)\nconf_mat_to_html(conf_mat=cm, classes_names=[\n    'C1', 'C2', 'C3', 'C4', 'C5', 'C6', 'C7', 'C8', 'C9', 'C10'], detail=False)\n```\n\n\n### Output\n\n\n#### print_conf_mat Output\n\n\n```bash\nConfusion Matrix : \n________________\n\n\u2552\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2564\u2550\u2550\u2550\u2550\u2550\u2550\u2564\u2550\u2550\u2550\u2550\u2550\u2550\u2564\u2550\u2550\u2550\u2550\u2550\u2550\u2564\u2550\u2550\u2550\u2550\u2550\u2550\u2564\u2550\u2550\u2550\u2550\u2550\u2550\u2564\u2550\u2550\u2550\u2550\u2550\u2550\u2564\u2550\u2550\u2550\u2550\u2550\u2550\u2564\u2550\u2550\u2550\u2550\u2550\u2550\u2564\u2550\u2550\u2550\u2550\u2550\u2550\u2564\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2555\n\u2502 Classes   \u2502   C1 \u2502   C2 \u2502   C3 \u2502   C4 \u2502   C5 \u2502   C6 \u2502   C7 \u2502   C8 \u2502   C9 \u2502   C10 \u2502\n\u255e\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u256a\u2550\u2550\u2550\u2550\u2550\u2550\u256a\u2550\u2550\u2550\u2550\u2550\u2550\u256a\u2550\u2550\u2550\u2550\u2550\u2550\u256a\u2550\u2550\u2550\u2550\u2550\u2550\u256a\u2550\u2550\u2550\u2550\u2550\u2550\u256a\u2550\u2550\u2550\u2550\u2550\u2550\u256a\u2550\u2550\u2550\u2550\u2550\u2550\u256a\u2550\u2550\u2550\u2550\u2550\u2550\u256a\u2550\u2550\u2550\u2550\u2550\u2550\u256a\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2561\n\u2502 C1        \u2502   10 \u2502    5 \u2502   15 \u2502    6 \u2502    9 \u2502   12 \u2502   13 \u2502    5 \u2502   12 \u2502    13 \u2502\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n\u2502 C2        \u2502   13 \u2502    5 \u2502    9 \u2502    6 \u2502   13 \u2502   11 \u2502   12 \u2502    5 \u2502    6 \u2502    10 \u2502\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n\u2502 C3        \u2502   11 \u2502   16 \u2502    8 \u2502   10 \u2502   12 \u2502   15 \u2502    7 \u2502   11 \u2502   10 \u2502    12 \u2502\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n\u2502 C4        \u2502   10 \u2502    9 \u2502   10 \u2502    7 \u2502   15 \u2502   13 \u2502   12 \u2502   11 \u2502   11 \u2502    11 \u2502\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n\u2502 C5        \u2502   10 \u2502    9 \u2502   12 \u2502    8 \u2502   13 \u2502    7 \u2502    7 \u2502    7 \u2502    9 \u2502     7 \u2502\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n\u2502 C6        \u2502   14 \u2502   13 \u2502   14 \u2502   11 \u2502    6 \u2502   11 \u2502    8 \u2502   13 \u2502   11 \u2502    13 \u2502\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n\u2502 C7        \u2502    9 \u2502   11 \u2502   11 \u2502    9 \u2502    9 \u2502   12 \u2502    9 \u2502   10 \u2502    9 \u2502     9 \u2502\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n\u2502 C8        \u2502   10 \u2502   11 \u2502   12 \u2502   10 \u2502    7 \u2502   10 \u2502   14 \u2502   10 \u2502   13 \u2502    11 \u2502\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n\u2502 C9        \u2502    8 \u2502   14 \u2502    9 \u2502    8 \u2502    9 \u2502    7 \u2502    9 \u2502   11 \u2502    9 \u2502    10 \u2502\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n\u2502 C10       \u2502    8 \u2502   10 \u2502    7 \u2502    4 \u2502    8 \u2502   13 \u2502    8 \u2502    6 \u2502    9 \u2502    13 \u2502\n\u2558\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2567\u2550\u2550\u2550\u2550\u2550\u2550\u2567\u2550\u2550\u2550\u2550\u2550\u2550\u2567\u2550\u2550\u2550\u2550\u2550\u2550\u2567\u2550\u2550\u2550\u2550\u2550\u2550\u2567\u2550\u2550\u2550\u2550\u2550\u2550\u2567\u2550\u2550\u2550\u2550\u2550\u2550\u2567\u2550\u2550\u2550\u2550\u2550\u2550\u2567\u2550\u2550\u2550\u2550\u2550\u2550\u2567\u2550\u2550\u2550\u2550\u2550\u2550\u2567\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u255b\n\n\u2552\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2564\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2555\n\u2502          \u2502   Rate (Score) \u2502\n\u255e\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u256a\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2561\n\u2502 Accuracy \u2502           0.1  \u2502\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n\u2502 Error    \u2502           0.91 \u2502\n\u2558\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2567\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u255b\n\n\nClassification Report : \n_____________________\n\n\u2552\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2564\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2564\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2564\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2564\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2555\n\u2502              \u2502   Precision (P) \u2502   Recall (R) \u2502   F1-Score (F) \u2502   Support (S) \u2502\n\u255e\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u256a\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u256a\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u256a\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u256a\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2561\n\u2502 C1           \u2502            0.1  \u2502         0.1  \u2502           0.1  \u2502           100 \u2502\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n\u2502 C2           \u2502            0.05 \u2502         0.06 \u2502           0.05 \u2502            90 \u2502\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n\u2502 C3           \u2502            0.07 \u2502         0.07 \u2502           0.07 \u2502           112 \u2502\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n\u2502 C4           \u2502            0.09 \u2502         0.06 \u2502           0.07 \u2502           109 \u2502\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n\u2502 C5           \u2502            0.13 \u2502         0.15 \u2502           0.14 \u2502            89 \u2502\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n\u2502 C6           \u2502            0.1  \u2502         0.1  \u2502           0.1  \u2502           114 \u2502\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n\u2502 C7           \u2502            0.09 \u2502         0.09 \u2502           0.09 \u2502            98 \u2502\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n\u2502 C8           \u2502            0.11 \u2502         0.09 \u2502           0.1  \u2502           108 \u2502\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n\u2502 C9           \u2502            0.09 \u2502         0.1  \u2502           0.09 \u2502            94 \u2502\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n\u2502 C10          \u2502            0.12 \u2502         0.15 \u2502           0.13 \u2502            86 \u2502\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n\u2502 Macro Avg    \u2502            0.1  \u2502         0.1  \u2502           0.1  \u2502          1000 \u2502\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n\u2502 Weighted Avg \u2502            0.09 \u2502         0.1  \u2502           0.09 \u2502          1000 \u2502\n\u2558\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2567\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2567\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2567\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2567\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u255b\n```\n\n\n#### plot_conf_mat Output\n\n\nhttps://drive.google.com/file/d/1Card-dZs6sSjgqdiVPUMesXjy3u9nsuY/view?usp=drive_link\n\n\n#### conf_mat_to_html Output\n\n\n```bash\nHTML File Generated Successfully :)\n```\nhttps://drive.google.com/file/d/14H1T4zzrqVR10f40OVD9wunqdcFjG1DU/view?usp=drive_link\n\n\n#### You Can Plot And Generate HTML Page For Confusion Matrix Directly From One Calculation And Without Print Confusion Matrix And Classification Report\n\n\n```python\nfrom numpy.random import randint\nfrom matplotlib.pyplot import show\nfrom conf_mat import calc_conf_mat, plot_conf_mat, conf_mat_to_html\n\n\ny_true = randint(0, 10, 1000)\ny_pred = randint(0, 10, 1000)\n\n\n# Show The Confusion Matrix On The Console (Classes Names Are Not Mandatory)\ncm = calc_conf_mat(y_true, y_pred)\nprint(cm)\n\n# Show The Confusion Matrix As A Heat Map (Classes Names Are Not Mandatory)\nplot_conf_mat(conf_mat=cm, classes_names=[\n    'C1', 'C2', 'C3', 'C4', 'C5', 'C6', 'C7', 'C8', 'C9', 'C10'], detail=False)\nshow()  # If You Are Using VSCode And You Are Executing The Code Direcctely\n\n\n# Show The Confusion Matrix As It Appears On The Console And As A Heat Map On The HTML Page (Classes Names Are Not Mandatory)\nconf_mat_to_html(conf_mat=cm, classes_names=[\n    'C1', 'C2', 'C3', 'C4', 'C5', 'C6', 'C7', 'C8', 'C9', 'C10'], detail=False)\n```\n\n\n### Output\n\n\n#### calc_conf_mat Output\n\n\n```bash\n[[16, 11, 8, 6, 4, 11, 12, 9, 10, 6], [12, 15, 14, 7, 20, 7, 17, 8, 6, 10], [13, 13, 11, 12, 11, 10, 11, 9, 8, 9], [12, 11, 5, 15, 9, 10, 8, 10, 13, 9], [8, 13, 11, 8, 8, 8, 12, 15, 7, 12], [13, 8, 17, 14, 8, 7, 10, 6, 8, 6], [7, 21, 7, 7, 10, 11, 10, 12, 11, 8], [9, 10, 15, 11, 7, 6, 9, 6, 9, 9], [9, 13, 7, 14, 7, 10, 5, 11, 5, 7], [13, 9, 11, 8, 12, 12, 9, 7, 6, 13]]\n```\n\n\n#### plot_conf_mat Output\n\n\nhttps://drive.google.com/file/d/1wmH3jQj8WZKtf2Vr-7LQgkI1udDFm0Zj/view?usp=drive_link\n\n\n#### conf_mat_to_html Output\n\n\n```bash\nHTML File Generated Successfully :)\n```\nhttps://drive.google.com/file/d/104P1o4tQPZGvZo5UlYdm6vZAfjrBCcHI/view?usp=drive_link\n\n\n### Note\n\n\nYou can import all functions with the camelCase format in place of snake_case format.\n\n\n## License\n\n\nThis project is licensed under the MIT LICENSE - see the [LICENSE](https://opensource.org/licenses/MIT) for more details.\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Sophisticate Confusion Matrix",
    "version": "1.1.0",
    "project_urls": {
        "Homepage": "https://pypi.org/project/conf-mat/"
    },
    "split_keywords": [
        "confusion",
        "matrix"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "1970f36bbae15f914fedcbc0ce26650184d50236e3f3a855f8be8eed97469f2e",
                "md5": "d8d53e8bd5b0b433217958c1702e5e18",
                "sha256": "6b624d331c5559c4bbe4f3d73b2dcdc2564d9557e9fb0f5f68d59e315b2c3c07"
            },
            "downloads": -1,
            "filename": "conf_mat-1.1.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "d8d53e8bd5b0b433217958c1702e5e18",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.6",
            "size": 276246,
            "upload_time": "2024-10-29T14:32:53",
            "upload_time_iso_8601": "2024-10-29T14:32:53.238894Z",
            "url": "https://files.pythonhosted.org/packages/19/70/f36bbae15f914fedcbc0ce26650184d50236e3f3a855f8be8eed97469f2e/conf_mat-1.1.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "599d758966de03910000e13c28bb0cd98189b82e0612fce6d53de04191b84bcf",
                "md5": "2ebb037583af629b9bc8a47fd8f9280a",
                "sha256": "356e0af8b783ebb7fa6aae42348aaae497ce6d8618fa091b4cf0bdb47dd81503"
            },
            "downloads": -1,
            "filename": "conf-mat-1.1.0.tar.gz",
            "has_sig": false,
            "md5_digest": "2ebb037583af629b9bc8a47fd8f9280a",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.6",
            "size": 284908,
            "upload_time": "2024-10-29T14:32:57",
            "upload_time_iso_8601": "2024-10-29T14:32:57.977989Z",
            "url": "https://files.pythonhosted.org/packages/59/9d/758966de03910000e13c28bb0cd98189b82e0612fce6d53de04191b84bcf/conf-mat-1.1.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-10-29 14:32:57",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "conf-mat"
}
        
Elapsed time: 0.47147s