conf-mat


Nameconf-mat JSON
Version 1.0.2 PyPI version JSON
download
home_page
SummarySophisticate Open Confusion Matrix
upload_time2024-02-28 09:40:56
maintainer
docs_urlNone
authorkhiat Mohammed Abderrezzak
requires_python
license
keywords confusion matrix confusion matrix display plot confusion matrix khiat khiat mohamed performance metrics khiat mohammed khiat abderrezzak confusion matrix visualization khiat mohamed abderrezzak khiat mohammed abderrezzak classification report khiat abderrezzak mohamed khiat abderrezzak mohammed heatmap mohamed mohammed machine learning mohamed khiat mohammed khiat deep learning mohamed abderrezzak mohammed abderrezzak data visualization mohamed abderrezzak khiat mohammed abderrezzak khiat data analysis mohamed khiat abderrezzak mohammed khiat abderrezzak beginner-friendly abderrezzak abderrezzak khiat aesthetically pleasing abderrezzak mohamed abderrezzak mohammed accuracy score calculation abderrezzak khiat mohamed abderrezzak khiat mohammed model score calculation abderrezzak mohamed khiat abderrezzak mohammed khiat confusion matrix calculation confusion matrix html display
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


```bash
Confusion Matrix : 
________________

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

╒══════════╤══════════════════════════════════════════════════════╕
│          │ Rate (Score)                                         │
╞══════════╪══════════════════════════════════════════════════════╡
│ Accuracy │ Correct        TP + TN                               │
│          │ _______ : _________________  OR  1 - Error  =  0.53  │
│          │                                                      │
│          │  Total    TP + FP + FN + TN                          │
├──────────┼──────────────────────────────────────────────────────┤
│ Error    │ Wrong        FP + FN                                 │
│          │ _____ : _________________  OR  1 - Accuracy  =  0.47 │
│          │                                                      │
│          │ 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.54 │ _______  = 0.53    │ ___________  = 0.53 │  TP + FN = 501 │
│                  │                 │                    │                     │                │
│                  │ TP + FP         │ TP + FN            │   P1 + R1           │                │
├──────────────────┼─────────────────┼────────────────────┼─────────────────────┼────────────────┤
│ Negative (False) │ P0 (NPV):       │ R0 (Specificity):  │ F0 :                │ S0 :           │
│                  │                 │                    │                     │                │
│                  │   TN            │   TN               │ 2 x P0 x R0         │                │
│                  │ _______  = 0.53 │ _______  = 0.54    │ ___________  = 0.54 │  FP + TN = 499 │
│                  │                 │                    │                     │                │
│                  │ TN + FN         │ TN + FP            │   P0 + R0           │                │
├──────────────────┼─────────────────┼────────────────────┼─────────────────────┼────────────────┤
│ Macro Avg        │ P1 + P0         │ R1 + R0            │ F1 + F0             │ TS = 1000      │
│                  │ _______  = 0.53 │ _______  = 0.53    │ _______  = 0.53     │                │
│                  │                 │                    │                     │                │
│                  │    2            │    2               │    2                │                │
├──────────────────┼─────────────────┼────────────────────┼─────────────────────┼────────────────┤
│ Weighted Avg     │ W1              │ W2                 │ W3                  │ TS = 1000      │
│                  │ __  = 0.53      │ __  = 0.53         │ __  = 0.53          │                │
│                  │                 │                    │                     │                │
│                  │ 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

HTML File Generated Successfully :)

```


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


```bash
Confusion Matrix : 
________________

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

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


Classification Report : 
_____________________

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

HTML File Generated Successfully :)

```


#### 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 Mandatory)
conf_mat_to_html(conf_mat=cm, classes_names=[False, True], detail=False)
```


### Output


```bash
[[227, 260], [254, 259]]

HTML File Generated Succesfuly :)

```


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


```bash
Confusion Matrix : 
________________

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

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.1  │
│          │                                                                │
│          │  Total    Sum Of Yellow And Red Values                         │
├──────────┼────────────────────────────────────────────────────────────────┤
│ Error    │ Wrong        Sum Of Red Values                                 │
│          │ _____ : ____________________________  OR  1 - Accuracy  =  0.9 │
│          │                                                                │
│          │ Total   Sum Of Yellow And Red Values                           │
╘══════════╧════════════════════════════════════════════════════════════════╛


Classification Report : 
_____________________

╒══════════════╤═════════════════╤══════════════╤════════════════╤═══════════════╕
│              │   Precision (P) │   Recall (R) │   F1-Score (F) │   Support (S) │
╞══════════════╪═════════════════╪══════════════╪════════════════╪═══════════════╡
│ C1           │            0.12 │         0.11 │           0.11 │           112 │
├──────────────┼─────────────────┼──────────────┼────────────────┼───────────────┤
│ C2           │            0.13 │         0.13 │           0.13 │           104 │
├──────────────┼─────────────────┼──────────────┼────────────────┼───────────────┤
│ C3           │            0.07 │         0.08 │           0.08 │            84 │
├──────────────┼─────────────────┼──────────────┼────────────────┼───────────────┤
│ C4           │            0.12 │         0.09 │           0.11 │           120 │
├──────────────┼─────────────────┼──────────────┼────────────────┼───────────────┤
│ C5           │            0.08 │         0.07 │           0.07 │            99 │
├──────────────┼─────────────────┼──────────────┼────────────────┼───────────────┤
│ C6           │            0.11 │         0.15 │           0.13 │            86 │
├──────────────┼─────────────────┼──────────────┼────────────────┼───────────────┤
│ C7           │            0.08 │         0.07 │           0.07 │           106 │
├──────────────┼─────────────────┼──────────────┼────────────────┼───────────────┤
│ C8           │            0.11 │         0.12 │           0.11 │           104 │
├──────────────┼─────────────────┼──────────────┼────────────────┼───────────────┤
│ C9           │            0.11 │         0.15 │           0.12 │            80 │
├──────────────┼─────────────────┼──────────────┼────────────────┼───────────────┤
│ C10          │            0.06 │         0.05 │           0.05 │           105 │
├──────────────┼─────────────────┼──────────────┼────────────────┼───────────────┤
│ Macro Avg    │            0.1  │         0.1  │           0.1  │          1000 │
├──────────────┼─────────────────┼──────────────┼────────────────┼───────────────┤
│ Weighted Avg │            0.1  │         0.1  │           0.1  │          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

HTML File Generated Successfully :)

```


#### 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, 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


```bash
Confusion Matrix : 
________________

╒═══════════╤═════╤═════╤═════╤═════╤═════╤═════╤═════╤═════╤═════╤═════╕
│   Classes │   0 │   1 │   2 │   3 │   4 │   5 │   6 │   7 │   8 │   9 │
╞═══════════╪═════╪═════╪═════╪═════╪═════╪═════╪═════╪═════╪═════╪═════╡
│         0 │  13 │  10 │  13 │  11 │  11 │  10 │  11 │  11 │  10 │   8 │
├───────────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
│         1 │  13 │  13 │   6 │   7 │  13 │  11 │  10 │   8 │   4 │   7 │
├───────────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
│         2 │   9 │   8 │  10 │   6 │   9 │  11 │  10 │  13 │  10 │  12 │
├───────────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
│         3 │   9 │  11 │  13 │  17 │   9 │   8 │   9 │   6 │  10 │   4 │
├───────────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
│         4 │  12 │   9 │  12 │  11 │   4 │  12 │  13 │  10 │   9 │  10 │
├───────────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
│         5 │  11 │  13 │   3 │  11 │  13 │   3 │  12 │  12 │  10 │   6 │
├───────────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
│         6 │  11 │   8 │   8 │  15 │  12 │   8 │  11 │  10 │   7 │   9 │
├───────────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
│         7 │  11 │   9 │   5 │  13 │  10 │   7 │   9 │  16 │   9 │  19 │
├───────────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
│         8 │  10 │  13 │   6 │  15 │   5 │   4 │  10 │   9 │   8 │   7 │
├───────────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
│         9 │  14 │  13 │  18 │  11 │   8 │  12 │  11 │  12 │   7 │  10 │
╘═══════════╧═════╧═════╧═════╧═════╧═════╧═════╧═════╧═════╧═════╧═════╛

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


Classification Report : 
_____________________

╒══════════════╤═════════════════╤══════════════╤════════════════╤═══════════════╕
│              │   Precision (P) │   Recall (R) │   F1-Score (F) │   Support (S) │
╞══════════════╪═════════════════╪══════════════╪════════════════╪═══════════════╡
│ 0            │            0.12 │         0.12 │           0.12 │           108 │
├──────────────┼─────────────────┼──────────────┼────────────────┼───────────────┤
│ 1            │            0.12 │         0.14 │           0.13 │            92 │
├──────────────┼─────────────────┼──────────────┼────────────────┼───────────────┤
│ 2            │            0.11 │         0.1  │           0.1  │            98 │
├──────────────┼─────────────────┼──────────────┼────────────────┼───────────────┤
│ 3            │            0.15 │         0.18 │           0.16 │            96 │
├──────────────┼─────────────────┼──────────────┼────────────────┼───────────────┤
│ 4            │            0.04 │         0.04 │           0.04 │           102 │
├──────────────┼─────────────────┼──────────────┼────────────────┼───────────────┤
│ 5            │            0.03 │         0.03 │           0.03 │            94 │
├──────────────┼─────────────────┼──────────────┼────────────────┼───────────────┤
│ 6            │            0.1  │         0.11 │           0.11 │            99 │
├──────────────┼─────────────────┼──────────────┼────────────────┼───────────────┤
│ 7            │            0.15 │         0.15 │           0.15 │           108 │
├──────────────┼─────────────────┼──────────────┼────────────────┼───────────────┤
│ 8            │            0.1  │         0.09 │           0.09 │            87 │
├──────────────┼─────────────────┼──────────────┼────────────────┼───────────────┤
│ 9            │            0.11 │         0.09 │           0.1  │           116 │
├──────────────┼─────────────────┼──────────────┼────────────────┼───────────────┤
│ Macro Avg    │            0.1  │         0.1  │           0.1  │          1000 │
├──────────────┼─────────────────┼──────────────┼────────────────┼───────────────┤
│ Weighted Avg │            0.1  │         0.1  │           0.1  │          1000 │
╘══════════════╧═════════════════╧══════════════╧════════════════╧═══════════════╛

HTML File Generated Successfully :)

```


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


```bash
[[7, 9, 15, 9, 8, 13, 11, 11, 6, 8], [7, 4, 16, 12, 12, 18, 12, 15, 13, 11], [6, 10, 8, 14, 8, 9, 8, 12, 10, 5], [4, 8, 8, 11, 13, 9, 8, 13, 12, 12], [8, 10, 10, 5, 11, 12, 14, 14, 12, 12], [4, 10, 10, 9, 8, 6, 12, 15, 9, 12], [7, 8, 4, 10, 9, 11, 19, 13, 7, 10], [10, 10, 14, 10, 11, 15, 9, 10, 10, 6], [14, 10, 11, 10, 8, 11, 8, 14, 8, 12], [11, 12, 8, 9, 4, 12, 5, 9, 5, 8]]

HTML File Generated Successfully :)

```


### Note


These outputs are specific to the first function only (conf_mat), in both cases. I'll leave it to you to discover the other two functions (conf_mat_disp, conf_mat_to_html) on your own.


## License


This project is licensed under the MIT License - see the LICENSE file for details.

            

Raw data

            {
    "_id": null,
    "home_page": "",
    "name": "conf-mat",
    "maintainer": "",
    "docs_url": null,
    "requires_python": "",
    "maintainer_email": "",
    "keywords": "confusion matrix,confusion matrix display,plot confusion matrix,khiat,khiat mohamed,performance metrics,khiat mohammed,khiat abderrezzak,confusion matrix visualization,khiat mohamed abderrezzak,khiat mohammed abderrezzak,classification report,khiat abderrezzak mohamed,khiat abderrezzak mohammed,heatmap,mohamed,mohammed,machine learning,mohamed khiat,mohammed khiat,deep learning,mohamed abderrezzak,mohammed abderrezzak,data visualization,mohamed abderrezzak khiat,mohammed abderrezzak khiat,data analysis,mohamed khiat abderrezzak,mohammed khiat abderrezzak,beginner-friendly,abderrezzak,abderrezzak khiat,aesthetically pleasing,abderrezzak mohamed,abderrezzak mohammed,accuracy score calculation,abderrezzak khiat mohamed,abderrezzak khiat mohammed,model score calculation,abderrezzak mohamed khiat,abderrezzak mohammed khiat,confusion matrix calculation,confusion matrix html display",
    "author": "khiat Mohammed Abderrezzak",
    "author_email": "khiat.abderrezzak@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/9f/3c/88ddb4ec7e24041652c61cc10c6fad1192094d4134fc9ee9d82fda9d1e54/conf-mat-1.0.2.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```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) : 264  \u2502 False Negative (FN) : 237 \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) : 229 \u2502 True Negative (TN) : 270  \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\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\u2561\n\u2502 Accuracy \u2502 Correct        TP + TN                               \u2502\n\u2502          \u2502 _______ : _________________  OR  1 - Error  =  0.53  \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\u2500\u2524\n\u2502 Error    \u2502 Wrong        FP + FN                                 \u2502\n\u2502          \u2502 _____ : _________________  OR  1 - Accuracy  =  0.47 \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\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.54 \u2502 _______  = 0.53    \u2502 ___________  = 0.53 \u2502  TP + FN = 501 \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.53 \u2502 _______  = 0.54    \u2502 ___________  = 0.54 \u2502  FP + TN = 499 \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.53 \u2502 _______  = 0.53    \u2502 _______  = 0.53     \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.53      \u2502 __  = 0.53         \u2502 __  = 0.53          \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\nHTML File Generated Successfully :)\n\n```\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```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                       249 \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                       243 \u2502                       269 \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.51 \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.49 \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.5  \u2502         0.49 \u2502           0.49 \u2502           488 \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.53 \u2502           0.52 \u2502           512 \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.51 \u2502         0.51 \u2502           0.51 \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.51 \u2502         0.51 \u2502           0.51 \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\nHTML File Generated Successfully :)\n\n```\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 Mandatory)\nconf_mat_to_html(conf_mat=cm, classes_names=[False, True], detail=False)\n```\n\n\n### Output\n\n\n```bash\n[[227, 260], [254, 259]]\n\nHTML File Generated Succesfuly :)\n\n```\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```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   12 \u2502   15 \u2502    9 \u2502    8 \u2502   11 \u2502   15 \u2502   12 \u2502   10 \u2502   14 \u2502     6 \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   12 \u2502   14 \u2502    7 \u2502   12 \u2502   11 \u2502   14 \u2502   11 \u2502   13 \u2502    6 \u2502     4 \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   13 \u2502    8 \u2502    7 \u2502    6 \u2502   12 \u2502    6 \u2502    7 \u2502    8 \u2502    9 \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 C4        \u2502   10 \u2502   13 \u2502   12 \u2502   11 \u2502    5 \u2502   17 \u2502    8 \u2502   15 \u2502   10 \u2502    19 \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   10 \u2502    8 \u2502   11 \u2502    7 \u2502    7 \u2502   11 \u2502    7 \u2502   14 \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 C6        \u2502    7 \u2502   11 \u2502   10 \u2502    7 \u2502    8 \u2502   13 \u2502    6 \u2502    9 \u2502    7 \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 C7        \u2502   10 \u2502    8 \u2502   12 \u2502   10 \u2502    9 \u2502   15 \u2502    7 \u2502   13 \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 C8        \u2502    8 \u2502   11 \u2502   12 \u2502    7 \u2502   11 \u2502   11 \u2502    8 \u2502   12 \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    6 \u2502   12 \u2502   10 \u2502   11 \u2502    5 \u2502    6 \u2502    8 \u2502   12 \u2502     2 \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   15 \u2502    7 \u2502    7 \u2502    8 \u2502   13 \u2502   13 \u2502   12 \u2502   17 \u2502     5 \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\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\u2561\n\u2502 Accuracy \u2502 Correct      Sum Of Yellow Values                              \u2502\n\u2502          \u2502 _______ : ____________________________  OR  1 - Error  =  0.1  \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\u2524\n\u2502 Error    \u2502 Wrong        Sum Of Red Values                                 \u2502\n\u2502          \u2502 _____ : ____________________________  OR  1 - Accuracy  =  0.9 \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\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.12 \u2502         0.11 \u2502           0.11 \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 C2           \u2502            0.13 \u2502         0.13 \u2502           0.13 \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 C3           \u2502            0.07 \u2502         0.08 \u2502           0.08 \u2502            84 \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.12 \u2502         0.09 \u2502           0.11 \u2502           120 \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.07 \u2502           0.07 \u2502            99 \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.11 \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 C7           \u2502            0.08 \u2502         0.07 \u2502           0.07 \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.11 \u2502         0.12 \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 C9           \u2502            0.11 \u2502         0.15 \u2502           0.12 \u2502            80 \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.06 \u2502         0.05 \u2502           0.05 \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 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.1  \u2502         0.1  \u2502           0.1  \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\nHTML File Generated Successfully :)\n\n```\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, 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```bash\nConfusion Matrix : \n________________\n\n\u2552\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2564\u2550\u2550\u2550\u2550\u2550\u2564\u2550\u2550\u2550\u2550\u2550\u2564\u2550\u2550\u2550\u2550\u2550\u2564\u2550\u2550\u2550\u2550\u2550\u2564\u2550\u2550\u2550\u2550\u2550\u2564\u2550\u2550\u2550\u2550\u2550\u2564\u2550\u2550\u2550\u2550\u2550\u2564\u2550\u2550\u2550\u2550\u2550\u2564\u2550\u2550\u2550\u2550\u2550\u2564\u2550\u2550\u2550\u2550\u2550\u2555\n\u2502   Classes \u2502   0 \u2502   1 \u2502   2 \u2502   3 \u2502   4 \u2502   5 \u2502   6 \u2502   7 \u2502   8 \u2502   9 \u2502\n\u255e\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u256a\u2550\u2550\u2550\u2550\u2550\u256a\u2550\u2550\u2550\u2550\u2550\u256a\u2550\u2550\u2550\u2550\u2550\u256a\u2550\u2550\u2550\u2550\u2550\u256a\u2550\u2550\u2550\u2550\u2550\u256a\u2550\u2550\u2550\u2550\u2550\u256a\u2550\u2550\u2550\u2550\u2550\u256a\u2550\u2550\u2550\u2550\u2550\u256a\u2550\u2550\u2550\u2550\u2550\u256a\u2550\u2550\u2550\u2550\u2550\u2561\n\u2502         0 \u2502  13 \u2502  10 \u2502  13 \u2502  11 \u2502  11 \u2502  10 \u2502  11 \u2502  11 \u2502  10 \u2502   8 \u2502\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2524\n\u2502         1 \u2502  13 \u2502  13 \u2502   6 \u2502   7 \u2502  13 \u2502  11 \u2502  10 \u2502   8 \u2502   4 \u2502   7 \u2502\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2524\n\u2502         2 \u2502   9 \u2502   8 \u2502  10 \u2502   6 \u2502   9 \u2502  11 \u2502  10 \u2502  13 \u2502  10 \u2502  12 \u2502\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2524\n\u2502         3 \u2502   9 \u2502  11 \u2502  13 \u2502  17 \u2502   9 \u2502   8 \u2502   9 \u2502   6 \u2502  10 \u2502   4 \u2502\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2524\n\u2502         4 \u2502  12 \u2502   9 \u2502  12 \u2502  11 \u2502   4 \u2502  12 \u2502  13 \u2502  10 \u2502   9 \u2502  10 \u2502\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2524\n\u2502         5 \u2502  11 \u2502  13 \u2502   3 \u2502  11 \u2502  13 \u2502   3 \u2502  12 \u2502  12 \u2502  10 \u2502   6 \u2502\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2524\n\u2502         6 \u2502  11 \u2502   8 \u2502   8 \u2502  15 \u2502  12 \u2502   8 \u2502  11 \u2502  10 \u2502   7 \u2502   9 \u2502\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2524\n\u2502         7 \u2502  11 \u2502   9 \u2502   5 \u2502  13 \u2502  10 \u2502   7 \u2502   9 \u2502  16 \u2502   9 \u2502  19 \u2502\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2524\n\u2502         8 \u2502  10 \u2502  13 \u2502   6 \u2502  15 \u2502   5 \u2502   4 \u2502  10 \u2502   9 \u2502   8 \u2502   7 \u2502\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2524\n\u2502         9 \u2502  14 \u2502  13 \u2502  18 \u2502  11 \u2502   8 \u2502  12 \u2502  11 \u2502  12 \u2502   7 \u2502  10 \u2502\n\u2558\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2567\u2550\u2550\u2550\u2550\u2550\u2567\u2550\u2550\u2550\u2550\u2550\u2567\u2550\u2550\u2550\u2550\u2550\u2567\u2550\u2550\u2550\u2550\u2550\u2567\u2550\u2550\u2550\u2550\u2550\u2567\u2550\u2550\u2550\u2550\u2550\u2567\u2550\u2550\u2550\u2550\u2550\u2567\u2550\u2550\u2550\u2550\u2550\u2567\u2550\u2550\u2550\u2550\u2550\u2567\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.9 \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 0            \u2502            0.12 \u2502         0.12 \u2502           0.12 \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 1            \u2502            0.12 \u2502         0.14 \u2502           0.13 \u2502            92 \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 2            \u2502            0.11 \u2502         0.1  \u2502           0.1  \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 3            \u2502            0.15 \u2502         0.18 \u2502           0.16 \u2502            96 \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 4            \u2502            0.04 \u2502         0.04 \u2502           0.04 \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 5            \u2502            0.03 \u2502         0.03 \u2502           0.03 \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 6            \u2502            0.1  \u2502         0.11 \u2502           0.11 \u2502            99 \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 7            \u2502            0.15 \u2502         0.15 \u2502           0.15 \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 8            \u2502            0.1  \u2502         0.09 \u2502           0.09 \u2502            87 \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 9            \u2502            0.11 \u2502         0.09 \u2502           0.1  \u2502           116 \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.1  \u2502         0.1  \u2502           0.1  \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\nHTML File Generated Successfully :)\n\n```\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```bash\n[[7, 9, 15, 9, 8, 13, 11, 11, 6, 8], [7, 4, 16, 12, 12, 18, 12, 15, 13, 11], [6, 10, 8, 14, 8, 9, 8, 12, 10, 5], [4, 8, 8, 11, 13, 9, 8, 13, 12, 12], [8, 10, 10, 5, 11, 12, 14, 14, 12, 12], [4, 10, 10, 9, 8, 6, 12, 15, 9, 12], [7, 8, 4, 10, 9, 11, 19, 13, 7, 10], [10, 10, 14, 10, 11, 15, 9, 10, 10, 6], [14, 10, 11, 10, 8, 11, 8, 14, 8, 12], [11, 12, 8, 9, 4, 12, 5, 9, 5, 8]]\n\nHTML File Generated Successfully :)\n\n```\n\n\n### Note\n\n\nThese outputs are specific to the first function only (conf_mat), in both cases. I'll leave it to you to discover the other two functions (conf_mat_disp, conf_mat_to_html) on your own.\n\n\n## License\n\n\nThis project is licensed under the MIT License - see the LICENSE file for details.\n",
    "bugtrack_url": null,
    "license": "",
    "summary": "Sophisticate Open Confusion Matrix",
    "version": "1.0.2",
    "project_urls": null,
    "split_keywords": [
        "confusion matrix",
        "confusion matrix display",
        "plot confusion matrix",
        "khiat",
        "khiat mohamed",
        "performance metrics",
        "khiat mohammed",
        "khiat abderrezzak",
        "confusion matrix visualization",
        "khiat mohamed abderrezzak",
        "khiat mohammed abderrezzak",
        "classification report",
        "khiat abderrezzak mohamed",
        "khiat abderrezzak mohammed",
        "heatmap",
        "mohamed",
        "mohammed",
        "machine learning",
        "mohamed khiat",
        "mohammed khiat",
        "deep learning",
        "mohamed abderrezzak",
        "mohammed abderrezzak",
        "data visualization",
        "mohamed abderrezzak khiat",
        "mohammed abderrezzak khiat",
        "data analysis",
        "mohamed khiat abderrezzak",
        "mohammed khiat abderrezzak",
        "beginner-friendly",
        "abderrezzak",
        "abderrezzak khiat",
        "aesthetically pleasing",
        "abderrezzak mohamed",
        "abderrezzak mohammed",
        "accuracy score calculation",
        "abderrezzak khiat mohamed",
        "abderrezzak khiat mohammed",
        "model score calculation",
        "abderrezzak mohamed khiat",
        "abderrezzak mohammed khiat",
        "confusion matrix calculation",
        "confusion matrix html display"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "aace68b7d2d8601252bf267be5c15b3fe66150998bfdae8de8a78628cea6af83",
                "md5": "50e9d190d0355705e8877fcc9ad0e1eb",
                "sha256": "ad72b59ae5d8554de977a6da09601421f2eb5d5a33827d16b91126b029febc91"
            },
            "downloads": -1,
            "filename": "conf_mat-1.0.2-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "50e9d190d0355705e8877fcc9ad0e1eb",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": null,
            "size": 13600,
            "upload_time": "2024-02-28T09:40:53",
            "upload_time_iso_8601": "2024-02-28T09:40:53.905010Z",
            "url": "https://files.pythonhosted.org/packages/aa/ce/68b7d2d8601252bf267be5c15b3fe66150998bfdae8de8a78628cea6af83/conf_mat-1.0.2-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "9f3c88ddb4ec7e24041652c61cc10c6fad1192094d4134fc9ee9d82fda9d1e54",
                "md5": "0b199bfa56ffd33894e8de01cd031ae3",
                "sha256": "10280c8dd477af3444f908d7ae69e96b6afb93c57759b2d6f1890501d2aa439e"
            },
            "downloads": -1,
            "filename": "conf-mat-1.0.2.tar.gz",
            "has_sig": false,
            "md5_digest": "0b199bfa56ffd33894e8de01cd031ae3",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 20328,
            "upload_time": "2024-02-28T09:40:56",
            "upload_time_iso_8601": "2024-02-28T09:40:56.357324Z",
            "url": "https://files.pythonhosted.org/packages/9f/3c/88ddb4ec7e24041652c61cc10c6fad1192094d4134fc9ee9d82fda9d1e54/conf-mat-1.0.2.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-02-28 09:40:56",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "conf-mat"
}
        
Elapsed time: 0.28122s