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